LuckPerms

LuckPerms

41.4k Downloads

Luckperms don't stop correctly and lock my thread on "Goodbye" message

SwartZCoding opened this issue · 4 comments

commented

Description

Luckperms don't stop correctly and lock my thread on "Goodbye" message. When i use /stop command after a while of server running (like 12H running)

Reproduction Steps

Don't know how to reproduce.
I used lp bungee & lp bukkit on my backend server on latest version [v5.4.108

Expected Behaviour

Stop correctly

Server Details

Purpur 1.19.1

LuckPerms Version

v5.4.108

Logs and Configs

My pool settings :

maximum-pool-size: 10

# Sets the minimum number of idle connections that the pool will try to maintain.
# - For maximum performance and responsiveness to spike demands, it is recommended to not set
#   this value and instead allow the pool to act as a fixed size connection pool.
#   (set this value to the same as 'maximum-pool-size')
minimum-idle: 10

# This setting controls the maximum lifetime of a connection in the pool in milliseconds.
# - The value should be at least 30 seconds less than any database or infrastructure imposed
#   connection time limit.
maximum-lifetime: 1800000 # 30 minutes

# This setting controls how frequently the pool will 'ping' a connection in order to prevent it
# from being timed out by the database or network infrastructure, measured in milliseconds.
# - The value should be less than maximum-lifetime and greater than 30000 (30 seconds).
# - Setting the value to zero will disable the keepalive functionality.
keepalive-time: 0

# This setting controls the maximum number of milliseconds that the plugin will wait for a
# connection from the pool, before timing out.
connection-timeout: 5000 # 5 seconds

# This setting allows you to define extra properties for connections.
#
# By default, the following options are set to enable utf8 encoding. (you may need to remove
# these if you are using PostgreSQL)
#   useUnicode: true
#   characterEncoding: utf8
#
# You can also use this section to disable SSL connections, by uncommenting the 'useSSL' and
# 'verifyServerCertificate' options below.
properties:
  useUnicode: true
  characterEncoding: utf8
  #useSSL: false
  #verifyServerCertificate: false

Extra Details

No response

commented

Hello ! Îm here with some more details.
It’s happened after few hours. For exemple if i start my server and wait 1-2H it works correctly but for 8-12H he don’t want to stop.

I have try to rollback to V104 and i have the same issue too.

What the plugin do when Goodbye message is logged ?

commented

Currently have again the issue… If someone can help … @lucko

commented

There is my jstack @lucko. That's all i have about luckperms :

`"luckperms-command-executor" #3226 daemon prio=5 os_prio=0 cpu=101.12ms elapsed=78388.55s tid=0x00007f47f11a0c90 nid=0x3889f2 waiting on condition [0x00007f47f54fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x00007f4aaf268c30> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:341)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block([email protected]/AbstractQueuedSynchronizer.java:506)
at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3465)
at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3436)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await([email protected]/AbstractQueuedSynchronizer.java:1623)
at java.util.concurrent.LinkedBlockingQueue.take([email protected]/LinkedBlockingQueue.java:435)
at java.util.concurrent.ThreadPoolExecutor.getTask([email protected]/ThreadPoolExecutor.java:1062)
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1122)
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)
at java.lang.Thread.run([email protected]/Thread.java:840)

Locked ownable synchronizers:
- None`

commented

Would need to see all threads from the dump, that right there only suggests that some thread is awaiting for tasks to run. The Server Thread is gonna provide some info but the whole picture would be ideal.