1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/daemons
Alasdair G Kergon f2eda36cfa clvmd: Fix client list corruption
Centralise editing of the client list into _add_client() and
_del_client().  Introduce _local_client_count to track the size of the
list for debugging purposes.  Simplify and standardise the various ways
the list gets walked.

While processing one element of the list in main_loop(),
cleanup_zombie() may be called and remove a different element, so make
sure main_loop() refreshes its list state on return.  Prior to this
patch, the list edits for clients disappearing could race against the
list edits for new clients connecting and corrupt the list and cause a
variety of segfaults.

An easy way to trigger such failures was by repeatedly running shell
commands such as:
  lvs &; lvs &; lvs &;...;killall -9 lvs; lvs &; lvs &;...

Situations that occasionally lead to the failures can be spotted by
looking for 'EOF' with 'inprogress=1' in the clvmd debug logs.
2017-07-01 01:34:38 +01:00
..
clvmd clvmd: Fix client list corruption 2017-07-01 01:34:38 +01:00
cmirrord Typo: change loose to lose 2017-04-12 10:28:19 -05:00
dmeventd libdm: use rounded float for percent print 2017-06-24 17:44:42 +02:00
dmfilemapd coverity: checked_return of close 2017-06-28 14:42:11 +02:00
lvmdbusd lvmdbusd: Prevent stall when update thread gets exception 2017-06-02 12:39:04 -05:00
lvmetad lvmetad: fix bug in snprintf of disable reason 2017-03-16 12:15:40 -05:00
lvmlockd config: use config_tree_from_string_without_dup_node_check throughout code to construct metadata trees 2016-09-21 18:18:15 +02:00
lvmpolld cleanup: drop double const specifier 2017-02-11 20:30:16 +01:00
Makefile.in daemons: add dmfilemapd 2017-03-09 18:50:15 +00:00