[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xen qemu on nfs livelock



Dear users,

We have a ganeti/xen cluster set up with shared file storage, the nfs server is a freenas server.

It has happend the second time that vm's hosted on the shared file storage got blocked:

Sep 29 05:50:49 node-5 kernel: [564977.898152] INFO: task qemu-system-i38:8138 blocked for more than 120 seconds. Sep 29 05:50:49 node-5 kernel: [564977.898178] Not tainted 3.16.0-4-amd64 #1 Sep 29 05:50:49 node-5 kernel: [564977.898192] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Sep 29 05:50:49 node-5 kernel: [564977.898212] qemu-system-i38 D ffff88002339cfb8 0 8138 1 0x00000000 Sep 29 05:50:49 node-5 kernel: [564977.898216] ffff88002339cb60 0000000000000286 0000000000012f00 ffff88001adabfd8 Sep 29 05:50:49 node-5 kernel: [564977.898220] 0000000000012f00 ffff88002339cb60 ffff88002ae61c08 ffff88001adabdf0 Sep 29 05:50:49 node-5 kernel: [564977.898223] ffff88002ae61c0c ffff88002339cb60 00000000ffffffff ffff88002ae61c10
Sep 29 05:50:49 node-5 kernel: [564977.898226] Call Trace:
Sep 29 05:50:49 node-5 kernel: [564977.898238] [<ffffffff8150e225>] ? schedule_preempt_disabled+0x25/0x70 Sep 29 05:50:49 node-5 kernel: [564977.898241] [<ffffffff8150fcd3>] ? __mutex_lock_slowpath+0xd3/0x1c0 Sep 29 05:50:49 node-5 kernel: [564977.898243] [<ffffffff8150fddb>] ? mutex_lock+0x1b/0x2a Sep 29 05:50:49 node-5 kernel: [564977.898247] [<ffffffff8113ef0e>] ? generic_file_write_iter+0x2e/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898256] [<ffffffffa054e9d3>] ? nfs_file_write+0x83/0x1a0 [nfs] Sep 29 05:50:49 node-5 kernel: [564977.898260] [<ffffffff811a7ad4>] ? new_sync_write+0x74/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898263] [<ffffffff811a8212>] ? vfs_write+0xb2/0x1f0 Sep 29 05:50:49 node-5 kernel: [564977.898267] [<ffffffff810d469e>] ? SyS_futex+0x6e/0x150 Sep 29 05:50:49 node-5 kernel: [564977.898269] [<ffffffff811a8eb3>] ? SyS_pwrite64+0x63/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898272] [<ffffffff8151164d>] ? system_call_fast_compare_end+0x10/0x15 Sep 29 05:50:49 node-5 kernel: [564977.898274] INFO: task qemu-system-i38:8142 blocked for more than 120 seconds. Sep 29 05:50:49 node-5 kernel: [564977.898290] Not tainted 3.16.0-4-amd64 #1 Sep 29 05:50:49 node-5 kernel: [564977.898302] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Sep 29 05:50:49 node-5 kernel: [564977.898319] qemu-system-i38 D ffff880018f69808 0 8142 1 0x00000000 Sep 29 05:50:49 node-5 kernel: [564977.898321] ffff880018f693b0 0000000000000286 0000000000012f00 ffff880006ce7fd8 Sep 29 05:50:49 node-5 kernel: [564977.898323] 0000000000012f00 ffff880018f693b0 ffff88002ae61c08 ffff880006ce7df0 Sep 29 05:50:49 node-5 kernel: [564977.898325] ffff88002ae61c0c ffff880018f693b0 00000000ffffffff ffff88002ae61c10
Sep 29 05:50:49 node-5 kernel: [564977.898327] Call Trace:
Sep 29 05:50:49 node-5 kernel: [564977.898329] [<ffffffff8150e225>] ? schedule_preempt_disabled+0x25/0x70 Sep 29 05:50:49 node-5 kernel: [564977.898331] [<ffffffff8150fcd3>] ? __mutex_lock_slowpath+0xd3/0x1c0 Sep 29 05:50:49 node-5 kernel: [564977.898333] [<ffffffff8150fddb>] ? mutex_lock+0x1b/0x2a Sep 29 05:50:49 node-5 kernel: [564977.898335] [<ffffffff8113ef0e>] ? generic_file_write_iter+0x2e/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898340] [<ffffffffa054e9d3>] ? nfs_file_write+0x83/0x1a0 [nfs] Sep 29 05:50:49 node-5 kernel: [564977.898342] [<ffffffff811a7ad4>] ? new_sync_write+0x74/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898345] [<ffffffff811a8212>] ? vfs_write+0xb2/0x1f0 Sep 29 05:50:49 node-5 kernel: [564977.898346] [<ffffffff811a8eb3>] ? SyS_pwrite64+0x63/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898349] [<ffffffff8151164d>] ? system_call_fast_compare_end+0x10/0x15 Sep 29 05:50:49 node-5 kernel: [564977.898350] INFO: task qemu-system-i38:8143 blocked for more than 120 seconds. Sep 29 05:50:49 node-5 kernel: [564977.898367] Not tainted 3.16.0-4-amd64 #1 Sep 29 05:50:49 node-5 kernel: [564977.898378] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Sep 29 05:50:49 node-5 kernel: [564977.898395] qemu-system-i38 D ffff880024e31908 0 8143 1 0x00000000 Sep 29 05:50:49 node-5 kernel: [564977.898397] ffff880024e314b0 0000000000000286 0000000000012f00 ffff880006c47fd8 Sep 29 05:50:49 node-5 kernel: [564977.898399] 0000000000012f00 ffff880024e314b0 ffff88002ae61c08 ffff880006c47d40 Sep 29 05:50:49 node-5 kernel: [564977.898401] ffff88002ae61c0c ffff880024e314b0 00000000ffffffff ffff88002ae61c10
Sep 29 05:50:49 node-5 kernel: [564977.898403] Call Trace:
Sep 29 05:50:49 node-5 kernel: [564977.898405] [<ffffffff8150e225>] ? schedule_preempt_disabled+0x25/0x70 Sep 29 05:50:49 node-5 kernel: [564977.898407] [<ffffffff8150fcd3>] ? __mutex_lock_slowpath+0xd3/0x1c0 Sep 29 05:50:49 node-5 kernel: [564977.898409] [<ffffffff8150fddb>] ? mutex_lock+0x1b/0x2a Sep 29 05:50:49 node-5 kernel: [564977.898411] [<ffffffff8113ef0e>] ? generic_file_write_iter+0x2e/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898415] [<ffffffffa054e9d3>] ? nfs_file_write+0x83/0x1a0 [nfs] Sep 29 05:50:49 node-5 kernel: [564977.898418] [<ffffffff811a7a60>] ? new_sync_read+0xa0/0xa0 Sep 29 05:50:49 node-5 kernel: [564977.898420] [<ffffffff811a7b5f>] ? do_iter_readv_writev+0x5f/0x90
...


The nfs server was alive, as 6 other nodes in the cluster was working well. Also I could access the mounted share on the local machine, I could list directories, and also was able to copy files from the share. The strange was that copying a file from the share to /tmp was really _slow_, at around 128k/sec. But neither the local disks neither the nfs server was under load. Packet captures on the ethernet interface showed no nfs traffic, while the destination file in /tmp/ was just growing very slowly. This means to me that the nfs read command was fast, was finished in time, but somewhere in the kernel processing that reply was blocked or slowed somehow.

Actually I did not test whether I could write to the nfs share.

As the vm's were blocked, I decided to move (failover) the running instances to another node, and keep this node running for later debugging.

I killed one instance with 'xl destroy' and then did a 'ganeti-instance failover' on it, and after all I've noticed that all vm's have recovered, the block on io has disappeared.

Now I dont know if I chose another vm to kill/move, would I get the same results, would the deadlock/livelock disappear also.

Actually I cannot reproduce the problem, I am just waiting to happen it again and collect more information.

The node is a very minimal debian/jessie, with ganeti and xen installed.

Has someone else experienced such issues?

Thanks in advance,

Kojedzinszky Richard
Euronet Magyarorszag Informatika Zrt.


Reply to: