OpenAFS Master Repository branch, openafs-stable-1_8_x, updated. openafs-stable-1_8_6-12-g6824d45
Gerrit Code Review
gerrit@openafs.org
Thu, 20 Aug 2020 13:25:31 -0400
The following commit has been merged in the openafs-stable-1_8_x branch:
commit 6824d45c2ab83e52350c3f366e4cb6f1eb263088
Author: Kailas Zadbuke <kailashsz@in.ibm.com>
Date: Wed Jun 3 15:44:08 2020 +0530
util: Handle serverLogMutex lock across forks
If a process forks when another thread has serverLogMutex locked, the
child process inherits the locked serverLogMutex. This causes a deadlock
when code in the child process tries to lock serverLogMutex, since we
can never unlock serverLogMutex because the locking thread no longer
exists. This can happen in the salvageserver, since the salvageserver
locks serverLogMutex in different threads, and forks to handle salvage
jobs.
To avoid this deadlock, we register handlers using pthread_atfork()
so that the serverLogMutex will be held during the fork. The fork will
be blocked until the worker thread releases the serverLogMutex. Hence the
serverLogMutex will be held until the fork is complete and it will be
released in the parent and child threads.
Thanks to Yadavendra Yadav(yadayada@in.ibm.com) for working with me
on this issue.
Reviewed-on: https://gerrit.openafs.org/14239
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit e44d6441c8786fdaaa1fad1b1ae77704c12f7d60)
Change-Id: I09c04c0bd99b10433857ccdaeb4ee6a4cd50f768
Reviewed-on: https://gerrit.openafs.org/14283
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Kailas Zadbuke <kailashsz@in.ibm.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/util/serverLog.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
--
OpenAFS Master Repository