summaryrefslogtreecommitdiffstats
path: root/autogen.sh
diff options
context:
space:
mode:
authorKotresh HR <khiremat@redhat.com>2018-08-10 08:14:14 -0400
committerShyamsundar Ranganathan <srangana@redhat.com>2018-09-21 13:25:43 +0000
commit72514f20d2ae947529cd1c4b4b009f27bae7032a (patch)
treeabe9f9399113fae47519ecd91f373b6f89ca4760 /autogen.sh
parent380ec25fdf439a0fd6a6fd01743625269ff85fa3 (diff)
geo-rep: Fix deadlock during worker start
Analysis: Monitor process spawns monitor threads (one per brick). Each monitor thread, forks worker and agent processes. Each monitor thread, while intializing, updates the monitor status file. It is synchronized using flock. The race is that, some thread can fork worker while other thread opened the status file resulting in holding the reference of fd in worker process. Cause: flock gets unlocked either by specifically unlocking it or by closing all duplicate fds referring to the file. The code was relying on fd close, hence a reference in worker/agent process by fork could cause the deadlock. Fix: 1. flock is unlocked specifically. 2. Also made sure to update status file in approriate places so that the reference is not leaked to worker/agent process. With this fix, both the deadlock and possible fd leaks is solved. Backport of: > Patch: https://review.gluster.org/20704 > BUG: bz#1614799 > Change-Id: I0d1ce93072dab07d0dbcc7e779287368cd9f093d > Signed-off-by: Kotresh HR <khiremat@redhat.com> fixes: bz#1630145 Change-Id: I0d1ce93072dab07d0dbcc7e779287368cd9f093d Signed-off-by: Kotresh HR <khiremat@redhat.com>
Diffstat (limited to 'autogen.sh')
0 files changed, 0 insertions, 0 deletions