Skip to content

Thread Deadlock when placing #4

@JanCantCode

Description

@JanCantCode

Server Implementation

Paper

Server Version

1.21.11

Describe the bug

We are running the newest version of your FAWE fork on canvas 1.21.11, in combination with a plugin that uses the FAWE api to frequently place certain schematics in the world (fixing stuff that gets broken in the pvp area)
This works fine for a certain amount of time, but after a few hours FAWE becomes completely unresponsive, i.e most commands stop working without any error being thrown. this is becaues the Threads responsible for placing chunks in the world appear to be running into a deadlock, where they are waiting for some other thread to free up a chunk section.

Image I have taken the time to create a thread dump but due to the nature of StampedLock's, it doesnt give much information in regards to who is holding the relevant locks.

To Reproduce

I have not yet attempted to create a setup where this behaviour can be reproduced consistently, but i am assuming its related to a race condition that occurs when multiple invocations of the FAWE api in an async context overlap and attempt to touch the same regions? I have search our logs for FAWE related exceptions that would imply that some exception in the critical code of the section swapping causes the lock to not be released, but have found nothing.

Expected behaviour

FAWE should not deadlock itsself.

Screenshots / Videos

No response

Error log (if applicable)

No response

Fawe Debugpaste

abc

Are you interested in contributing a fix?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions