Guoqing Jiang
41a9504112
md-cluster: release RESYNC lock after the last resync message
All the RESYNC messages are sent with resync lock held, the only
exception is resync_finish which releases resync_lockres before
send the last resync message, this should be changed as well.
Otherwise, we can see deadlock issue as follows:
clustermd2-gqjiang2:~ # cat /proc/mdstat
Personalities : [raid10] [raid1]
md0 : active raid1 sdg[0] sdf[1]
134144 blocks super 1.2 [2/2] [UU]
[===================>.] resync = 99.6% (134144/134144) finish=0.0min speed=26K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk
unused devices: <none>
clustermd2-gqjiang2:~ # ps aux|grep md|grep D
root 20497 0.0 0.0 0 0 ? D 16:00 0:00 [md0_raid1]
clustermd2-gqjiang2:~ # cat /proc/20497/stack
[<ffffffffc05ff51e>] dlm_lock_sync+0x8e/0xc0 [md_cluster]
[<ffffffffc05ff7e8>] __sendmsg+0x98/0x130 [md_cluster]
[<ffffffffc05ff900>] sendmsg+0x20/0x30 [md_cluster]
[<ffffffffc05ffc35>] resync_info_update+0xb5/0xc0 [md_cluster]
[<ffffffffc0593e84>] md_reap_sync_thread+0x134/0x170 [md_mod]
[<ffffffffc059514c>] md_check_recovery+0x28c/0x510 [md_mod]
[<ffffffffc060c882>] raid1d+0x42/0x800 [raid1]
[<ffffffffc058ab61>] md_thread+0x121/0x150 [md_mod]
[<ffffffff9a0a5b3f>] kthread+0xff/0x140
[<ffffffff9a800235>] ret_from_fork+0x35/0x40
[<ffffffffffffffff>] 0xffffffffffffffff
clustermd-gqjiang1:~ # ps aux|grep md|grep D
root 20531 0.0 0.0 0 0 ? D 16:00 0:00 [md0_raid1]
root 20537 0.0 0.0 0 0 ? D 16:00 0:00 [md0_cluster_rec]
root 20676 0.0 0.0 0 0 ? D 16:01 0:00 [md0_resync]
clustermd-gqjiang1:~ # cat /proc/mdstat
Personalities : [raid10] [raid1]
md0 : active raid1 sdf[1] sdg[0]
134144 blocks super 1.2 [2/2] [UU]
[===================>.] resync = 97.3% (131072/134144) finish=8076.8min speed=0K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk
unused devices: <none>
clustermd-gqjiang1:~ # cat /proc/20531/stack
[<ffffffffc080974d>] metadata_update_start+0xcd/0xd0 [md_cluster]
[<ffffffffc079c897>] md_update_sb.part.61+0x97/0x820 [md_mod]
[<ffffffffc079f15b>] md_check_recovery+0x29b/0x510 [md_mod]
[<ffffffffc0816882>] raid1d+0x42/0x800 [raid1]
[<ffffffffc0794b61>] md_thread+0x121/0x150 [md_mod]
[<ffffffff9e0a5b3f>] kthread+0xff/0x140
[<ffffffff9e800235>] ret_from_fork+0x35/0x40
[<ffffffffffffffff>] 0xffffffffffffffff
clustermd-gqjiang1:~ # cat /proc/20537/stack
[<ffffffffc0813222>] freeze_array+0xf2/0x140 [raid1]
[<ffffffffc080a56e>] recv_daemon+0x41e/0x580 [md_cluster]
[<ffffffffc0794b61>] md_thread+0x121/0x150 [md_mod]
[<ffffffff9e0a5b3f>] kthread+0xff/0x140
[<ffffffff9e800235>] ret_from_fork+0x35/0x40
[<ffffffffffffffff>] 0xffffffffffffffff
clustermd-gqjiang1:~ # cat /proc/20676/stack
[<ffffffffc080951e>] dlm_lock_sync+0x8e/0xc0 [md_cluster]
[<ffffffffc080957f>] lock_token+0x2f/0xa0 [md_cluster]
[<ffffffffc0809622>] lock_comm+0x32/0x90 [md_cluster]
[<ffffffffc08098f5>] sendmsg+0x15/0x30 [md_cluster]
[<ffffffffc0809c0a>] resync_info_update+0x8a/0xc0 [md_cluster]
[<ffffffffc08130ba>] raid1_sync_request+0xa9a/0xb10 [raid1]
[<ffffffffc079b8ea>] md_do_sync+0xbaa/0xf90 [md_mod]
[<ffffffffc0794b61>] md_thread+0x121/0x150 [md_mod]
[<ffffffff9e0a5b3f>] kthread+0xff/0x140
[<ffffffff9e800235>] ret_from_fork+0x35/0x40
[<ffffffffffffffff>] 0xffffffffffffffff
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
2018-08-31 17:38:10 -07:00
..
2018-08-22 15:06:29 -06:00
2018-08-01 15:49:38 -07:00
2018-06-08 11:53:14 -04:00
2017-06-09 09:27:32 -06:00
2018-06-08 11:53:14 -04:00
2017-03-07 11:30:16 -05:00
2017-08-23 12:49:55 -06:00
2018-04-30 11:51:39 -04:00
2017-11-02 11:10:55 +01:00
2018-04-30 15:40:40 -04:00
2017-03-07 13:28:31 -05:00
2016-12-16 00:13:41 +02:00
2018-08-09 12:14:32 -04:00
2017-03-07 13:28:31 -05:00
2017-03-07 13:28:31 -05:00
2018-06-12 16:19:22 -07:00
2014-01-16 13:44:11 -05:00
2017-03-07 13:28:31 -05:00
2018-07-31 17:33:21 -04:00
2018-06-08 11:53:14 -04:00
2018-08-13 15:28:41 -04:00
2018-07-27 15:24:19 -04:00
2018-04-03 15:04:10 -04:00
2015-11-04 21:19:53 -08:00
2016-01-08 20:03:05 -05:00
2018-04-04 12:12:39 -04:00
2018-07-27 15:24:27 -04:00
2018-06-05 08:47:43 -06:00
2018-06-08 09:50:15 -04:00
2018-08-08 09:16:24 -04:00
2018-05-22 23:18:31 -07:00
2018-05-30 15:33:32 -06:00
2015-04-15 12:10:20 -04:00
2018-05-22 23:18:31 -07:00
2016-11-01 09:43:26 -06:00
2018-05-14 08:55:12 -06:00
2011-10-31 19:31:18 -04:00
2016-02-22 22:34:42 -05:00
2018-01-29 13:44:58 -05:00
2018-07-31 17:33:21 -04:00
2018-08-18 16:48:07 -07:00
2018-06-12 18:28:00 -07:00
2017-02-17 00:54:09 -05:00
2018-05-30 15:33:32 -06:00
2017-08-28 10:23:28 -04:00
2018-01-29 13:44:58 -05:00
2018-04-03 15:04:23 -04:00
2016-01-08 20:03:05 -05:00
2018-08-08 20:50:58 -04:00
2018-06-12 16:19:22 -07:00
2017-11-02 11:10:55 +01:00
2018-05-22 23:18:31 -07:00
2018-06-12 16:19:22 -07:00
2016-06-10 15:15:44 -04:00
2018-06-28 16:06:14 -04:00
2018-04-03 15:04:15 -04:00
2018-06-22 14:51:11 -04:00
2016-07-20 12:43:35 -04:00
2018-08-07 14:30:29 -04:00
2011-10-31 19:31:19 -04:00
2018-04-03 15:04:15 -04:00
2018-06-05 10:48:05 -07:00
2018-05-30 15:33:32 -06:00
2018-06-12 16:19:22 -07:00
2018-04-03 15:04:29 -04:00
2018-08-25 18:13:10 -07:00
2017-06-09 09:27:32 -06:00
2018-01-17 09:16:15 -05:00
2018-07-31 17:33:21 -04:00
2018-06-22 14:51:12 -04:00
2017-06-19 11:05:20 -04:00
2018-07-18 08:44:20 -06:00
2018-01-17 09:16:06 -05:00
2018-06-08 11:59:51 -04:00
2018-06-08 11:59:51 -04:00
2018-08-18 16:48:07 -07:00
2018-08-01 15:49:39 -07:00
2018-08-31 17:38:10 -07:00
2017-11-02 11:10:55 +01:00
2018-05-30 15:33:32 -06:00
2018-05-30 15:33:32 -06:00
2017-11-14 16:07:26 -08:00
2018-06-12 16:19:22 -07:00
2018-05-30 15:33:32 -06:00
2018-08-18 16:48:07 -07:00
2018-07-05 11:17:01 -07:00
2018-06-12 16:19:22 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-08-18 16:48:07 -07:00
2018-05-30 15:33:32 -06:00
2018-08-18 16:48:07 -07:00
2018-08-31 17:38:09 -07:00
2018-05-30 15:33:32 -06:00
2018-08-31 17:38:09 -07:00
2018-06-09 12:01:36 -07:00
2018-08-31 17:38:10 -07:00
2018-05-30 15:33:32 -06:00