Skip to content

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

Open
BoehserWolf wants to merge 1 commit intoHardySimpson:masterfrom
BoehserWolf:master
Open

Bugfix: Deadlock in zlog_fini() while entering pthread_rwlock_wrlock() in multithreaded environment#184
BoehserWolf wants to merge 1 commit intoHardySimpson:masterfrom
BoehserWolf:master

Conversation

@BoehserWolf
Copy link
Copy Markdown

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