Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
Hello list, I am experiencing online verification stall on our two-node DRBD (RHCS) cluster, running RHEL 6.0 (2.6.32-71.el6.x86_64), and DRDB 8.3.10 (api:88). SATA disks are configured as RAID 1, 1TB, and have one LVM device as a DRBD resource, which is formatted as ext4. The servers are connected directly (bypassing the switch), using two GigE network cards in bonded load balancing (round-robin) mode, on both servers. When I run the online verification, I see a fair amount of drbd0_worker sock_sendmsg time expired messages my first guess is that drbd0 worker process got stuck while trying to send some blocks? I've noticed this originally previous morning, and the output of /proc/drbd was: ----------%<---------- # cat /proc/drbd version: 8.3.10 (api:88/proto:86-96) GIT-hash: 5c0b0469666682443d4785d90a2c603378f9017b build by root at node01, 2011-02-23 17:38:20 0: cs:VerifyS ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:295912 nr:94208 dw:390256 dr:490915949 al:38 bm:19 lo:1 pe:61424 ua:2048 ap:6 ep:1 wo:b oos:0 [=========>..........] verified: 51.9% (444468/923796)M finish: 434147:56:06 speed: 0 (124) want: 112,640 K/sec (stalled) ----------%<---------- I had to restart the servers to resolve the problem... I have run the verification once again, but the problems are the same. I even can't do a 'ls' on the DRBD partition (the command just hangs). So today, when I've run the verification again, the logs on primary node print the following: ----------%<---------- Apr 20 11:03:01 node02 kernel: block drbd0: conn( Connected -> VerifyS ) Apr 20 11:03:01 node02 kernel: block drbd0: Starting Online Verify from sector 0 Apr 20 11:04:20 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967295 Apr 20 11:04:26 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967294 . . . Apr 20 11:07:50 node02 kernel: INFO: task jbd2/drbd0-8:3571 blocked for more than 120 seconds. Apr 20 11:07:50 node02 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Apr 20 11:07:50 node02 kernel: jbd2/drbd0-8 D ffff88013fc24300 0 3571 2 0x00000080 Apr 20 11:07:50 node02 kernel: ffff88013957fd10 0000000000000046 0000000000000000 0000000000000008 Apr 20 11:07:50 node02 kernel: 0000000000016980 0000000000016980 ffff88002be10d80 00000001001f1d4f Apr 20 11:07:50 node02 kernel: ffff880128149a98 ffff88013957ffd8 0000000000010518 ffff880128149a98 Apr 20 11:07:50 node02 kernel: Call Trace: Apr 20 11:07:50 node02 kernel: [<ffffffffa00d88f0>] jbd2_journal_commit_transaction+0x1c0/0x14e0 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffff810116e0>] ? __switch_to+0xd0/0x320 Apr 20 11:07:50 node02 kernel: [<ffffffff8107d5ac>] ? lock_timer_base+0x3c/0x70 Apr 20 11:07:50 node02 kernel: [<ffffffff81091ca0>] ? autoremove_wake_function+0x0/0x40 Apr 20 11:07:50 node02 kernel: [<ffffffffa00df0b8>] kjournald2+0xb8/0x220 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffff81091ca0>] ? autoremove_wake_function+0x0/0x40 Apr 20 11:07:50 node02 kernel: [<ffffffffa00df000>] ? kjournald2+0x0/0x220 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffff81091936>] kthread+0x96/0xa0 Apr 20 11:07:50 node02 kernel: [<ffffffff810141ca>] child_rip+0xa/0x20 Apr 20 11:07:50 node02 kernel: [<ffffffff810918a0>] ? kthread+0x0/0xa0 Apr 20 11:07:50 node02 kernel: [<ffffffff810141c0>] ? child_rip+0x0/0x20 Apr 20 11:07:50 node02 kernel: INFO: task touch:4825 blocked for more than 120 seconds. Apr 20 11:07:50 node02 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Apr 20 11:07:50 node02 kernel: touch D ffffffff8119dcf0 0 4825 4770 0x00000080 Apr 20 11:07:50 node02 kernel: ffff88012623fa08 0000000000000086 ffff88012623f988 00000000a0192deb Apr 20 11:07:50 node02 kernel: ffff880136b91400 ffff8801362e94e0 ffff8801369b1c00 0000000000000002 Apr 20 11:07:50 node02 kernel: ffff880138a045f8 ffff88012623ffd8 0000000000010518 ffff880138a045f8 Apr 20 11:07:50 node02 kernel: Call Trace: Apr 20 11:07:50 node02 kernel: [<ffffffff8109b9a9>] ? ktime_get_ts+0xa9/0xe0 Apr 20 11:07:50 node02 kernel: [<ffffffff8119dcf0>] ? sync_buffer+0x0/0x50 Apr 20 11:07:50 node02 kernel: [<ffffffff814c8a23>] io_schedule+0x73/0xc0 Apr 20 11:07:50 node02 kernel: [<ffffffff8119dd30>] sync_buffer+0x40/0x50 Apr 20 11:07:50 node02 kernel: [<ffffffff814c914a>] __wait_on_bit_lock+0x5a/0xc0 Apr 20 11:07:50 node02 kernel: [<ffffffff8119dcf0>] ? sync_buffer+0x0/0x50 Apr 20 11:07:50 node02 kernel: [<ffffffff814c9228>] out_of_line_wait_on_bit_lock+0x78/0x90 Apr 20 11:07:50 node02 kernel: [<ffffffff81091ce0>] ? wake_bit_function+0x0/0x50 Apr 20 11:07:50 node02 kernel: [<ffffffff8119ded6>] __lock_buffer+0x36/0x40 Apr 20 11:07:50 node02 kernel: [<ffffffffa00d82b3>] do_get_write_access+0x473/0x500 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffff8119d3fc>] ? __getblk+0x2c/0x2e0 Apr 20 11:07:50 node02 kernel: [<ffffffff81200840>] ? security_inode_alloc+0x40/0x60 Apr 20 11:07:50 node02 kernel: [<ffffffffa00d8491>] jbd2_journal_get_write_access+0x31/0x50 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffffa012bd48>] __ext4_journal_get_write_access+0x38/0x80 [ext4] Apr 20 11:07:50 node02 kernel: [<ffffffffa01036c2>] ext4_new_inode+0x3a2/0x10e0 [ext4] Apr 20 11:07:50 node02 kernel: [<ffffffffa00d74e5>] ? jbd2_journal_start+0xb5/0x100 [jbd2] Apr 20 11:07:50 node02 kernel: [<ffffffffa0111a60>] ext4_create+0xc0/0x150 [ext4] Apr 20 11:07:50 node02 kernel: [<ffffffff81179c24>] vfs_create+0xb4/0xe0 Apr 20 11:07:50 node02 kernel: [<ffffffff8117d766>] do_filp_open+0xa46/0xd40 Apr 20 11:07:50 node02 kernel: [<ffffffff81135837>] ? handle_pte_fault+0xf7/0xad0 Apr 20 11:07:50 node02 kernel: [<ffffffff811892f2>] ? alloc_fd+0x92/0x160 Apr 20 11:07:50 node02 kernel: [<ffffffff81169929>] do_sys_open+0x69/0x140 Apr 20 11:07:50 node02 kernel: [<ffffffff81169a40>] sys_open+0x20/0x30 Apr 20 11:07:50 node02 kernel: [<ffffffff81013172>] system_call_fastpath+0x16/0x1b Apr 20 11:07:50 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967260 Apr 20 11:07:56 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967259 Apr 20 11:08:02 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967258 Apr 20 11:08:08 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967257 Apr 20 11:08:14 node02 kernel: block drbd0: [drbd0_worker/1851] sock_sendmsg time expired, ko = 4294967256 . . . ----------%<---------- The logs on secondary print the same "sock_sendmsg time expired" messages, but without the blocked tasks messages for jbd2 and touch... /proc/drbd on primary node: ----------%<---------- # cat /proc/drbd version: 8.3.10 (api:88/proto:86-96) GIT-hash: 5c0b0469666682443d4785d90a2c603378f9017b build by root at node02, 2011-02-23 17:37:52 0: cs:VerifyS ro:Primary/Secondary ds:UpToDate/UpToDate C r----- ns:2120 nr:0 dw:2140 dr:6689633 al:7 bm:0 lo:1 pe:9356 ua:2048 ap:5 ep:1 wo:b oos:0 [>....................] verified: 0.8% (917276/923796)M finish: 642:35:47 speed: 404 (1,464) want: 112,640 K/sec ----------%<---------- DRDB configuration: ----------%<---------- global { usage-count no; } common { protocol C; } resource shared_partition { handlers { split-brain "/lib/drbd/notify-split-brain.sh root"; } syncer { rate 110M; verify-alg sha1; } on node01. { device /dev/drbd0; disk /dev/vg_node01/lv_shared; address 10.2.30.141:7789; meta-disk internal; } on node02. { device /dev/drbd0; disk /dev/vg_node02/lv_shared; address 10.2.30.142:7789; meta-disk internal; } } ----------%<---------- Processes on primary: ----------%<---------- # ps -eo pid,args,state,wchan | grep drbd 1851 [drbd0_worker] S sk_stream_wait_memory 1859 [drbd0_receiver] S drbd_pp_alloc 1878 [drbd0_asender] S sk_wait_data 3571 [jbd2/drbd0-8] D jbd2_journal_commit_transaction 5872 grep drbd R - ----------%<---------- Processes on secondary: ----------%<---------- # ps -e -o pid,args,stat,wchan | grep drbd 1862 [drbd0_worker] S sk_stream_wait_memory 1870 [drbd0_receiver] S drbd_pp_alloc 1889 [drbd0_asender] S sk_wait_data 5159 grep drbd S+ pipe_wait ----------%<---------- I have also tested the network throughput via bonded interface (which DRBD uses for synchronization and verification), and it is around 40MBps. Anyone has an idea what is behind this problem?