LuckPerms

LuckPerms

41.4k Downloads

Luckperms cannot connect to PostgreSQL database

Hai-tun opened this issue · 1 comments

commented

Description

Luckperms cannot connect to PostgreSQL database

Reproduction steps

  1. Open the config.yml file and set storage-method to PostgreSQL, enter address, database, username and password.
  2. Restart the server
  3. See error
[18:34:37 ERROR]: [LuckPerms] Failed to init storage implementation
java.sql.SQLTransientConnectionException: luckperms-hikari - Connection is not available, request timed out after 5001ms.
        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:197) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:162) ~[?:?]
        at me.lucko.luckperms.lib.hikari.HikariDataSource.getConnection(HikariDataSource.java:100) ~[?:?]
        at me.lucko.luckperms.common.storage.implementation.sql.connection.hikari.HikariConnectionFactory.getConnection(HikariConnectionFactory.java:171) ~[?:?]
        at me.lucko.luckperms.common.storage.implementation.sql.SqlStorage.init(SqlStorage.java:164) ~[?:?]
        at me.lucko.luckperms.common.storage.Storage.init(Storage.java:116) ~[?:?]
        at me.lucko.luckperms.common.storage.StorageFactory.getInstance(StorageFactory.java:88) ~[?:?]
        at me.lucko.luckperms.common.plugin.AbstractLuckPermsPlugin.enable(AbstractLuckPermsPlugin.java:156) ~[?:?]
        at me.lucko.luckperms.bukkit.LPBukkitBootstrap.onEnable(LPBukkitBootstrap.java:162) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:500) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:414) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:208) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:938) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:175) ~[patched_1.16.5.jar:git-Tuinity-"a539774"]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275]
Caused by: me.lucko.luckperms.lib.postgresql.util.PSQLException: 不支援 10 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。
        at me.lucko.luckperms.lib.postgresql.Driver$ConnectThread.getResult(Driver.java:355) ~[?:?]
        at me.lucko.luckperms.lib.postgresql.Driver.connect(Driver.java:279) ~[?:?]
        at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_275]
        at java.sql.DriverManager.getConnection(DriverManager.java:247) ~[?:1.8.0_275]
        at me.lucko.luckperms.lib.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:86) ~[?:?]
        at me.lucko.luckperms.lib.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:71) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool.access$100(HikariPool.java:71) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:725) ~[?:?]
        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:711) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_275]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_275]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_275]
        ... 1 more
[18:34:42 WARN]: java.util.concurrent.CompletionException: java.sql.SQLTransientConnectionException: luckperms-hikari - Connection is not available, request timed out after 5001ms.
[18:34:42 WARN]:        at me.lucko.luckperms.common.storage.Storage.lambda$future$1(Storage.java:105)
[18:34:42 WARN]:        at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
[18:34:42 WARN]:        at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1632)
[18:34:42 WARN]:        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[18:34:42 WARN]:        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[18:34:42 WARN]:        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[18:34:42 WARN]:        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:175)
[18:34:42 WARN]: Caused by: java.sql.SQLTransientConnectionException: luckperms-hikari - Connection is not available, request timed out after 5001ms.
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:197)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:162)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
[18:34:42 WARN]:        at me.lucko.luckperms.common.storage.implementation.sql.connection.hikari.HikariConnectionFactory.getConnection(HikariConnectionFactory.java:171)
[18:34:42 WARN]:        at me.lucko.luckperms.common.storage.implementation.sql.SqlStorage.loadAllGroups(SqlStorage.java:463)
[18:34:42 WARN]:        at me.lucko.luckperms.common.storage.Storage.lambda$loadAllGroups$10(Storage.java:194)
[18:34:42 WARN]:        at me.lucko.luckperms.common.storage.Storage.lambda$future$1(Storage.java:100)
[18:34:42 WARN]:        ... 6 more
[18:34:42 WARN]: Caused by: me.lucko.luckperms.lib.postgresql.util.PSQLException: 不支援 10 验证类型。请核对您已经组态 pg_hba.conf 文件包含客户端的IP位址或网路区段,以及驱动程序所支援的验证架构模式已被支援。
[18:34:42 WARN]:        at me.lucko.luckperms.lib.postgresql.Driver$ConnectThread.getResult(Driver.java:355)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.postgresql.Driver.connect(Driver.java:279)
[18:34:42 WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:664)
[18:34:42 WARN]:        at java.sql.DriverManager.getConnection(DriverManager.java:247)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:86)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.postgresql.ds.common.BaseDataSource.getConnection(BaseDataSource.java:71)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool.access$100(HikariPool.java:71)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:725)
[18:34:42 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:711)
[18:34:42 WARN]:        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[18:34:42 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[18:34:42 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[18:34:42 WARN]:        at java.lang.Thread.run(Thread.java:748)

Expected behaviour

The database connection is normal and can be used normally.

Environment details

  • Server type/version: Tuinity running version 1.16.5 build git-Tuinity-a539774
  • LuckPerms version: Bukkit-5.2.76
  • Platform: Windows 10
  • PostgreSQL version: PostgreSQL 13.1, compiled by Visual C++ build 1914, 64-bit

Any other relevant details

N/A

My perception

PostgreSQL 13.1 The connection method used by PostgreSQL 13.1 is scram-sha-256, while the old version uses md5. There is no current problem when testing PostgreSQL 10 on the same Linux CentOS 8 Stream platform, so it is a database client version problem, please upgrade PostgreSQL Driver and HikariCP version, thank you.

commented

Seems like a duplicate of #2749

Unfortunately I don't have time to look into this myself at the moment, but will gladly accept a PR for it! :)