Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix: Deadlock in zlog_fini() while entering pthread_rwlock_wrlock() in multithreaded environment #184

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

BoehserWolf
Copy link

The freeze happened in zlog_fini() while entering the final pthread_rwlock_wrlock(). This happens to me in a multithreaded binary.
Had a hard time to identify this deadlock. However, I did not find the root cause since all trace messages regarding entering/leaving the lock did not lead to a root cause problem.
Was initially thinking that this glibc bug could have been the root cause but the problem described there was not exactly the problem I was facing.
However the the inital pthread_rwlock_trywrlock() is mandatory to not run into the deadlock. Additionally EDEADLK and EBUSY needs to be handled correctly to prevent the lock.
With this fix it was possible for me to stop/start my application for around 26000 times over the weekend without any deadlock.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant