Messages in this thread | | | Date | Fri, 31 Aug 2012 17:51:03 -0400 | From | paul.clements@steeleye ... | Subject | [PATCH 0/1] nbd: fix dangling requests bug |
| |
This patch fixes a serious, but uncommon bug in nbd. This should probably be considered for backport to one or more stable branches.
The bug occurs when there is heavy I/O going to the nbd device while, at the same time, a failure (server, network) or manual disconnect of the nbd connection occurs.
There is a small window between the time that the nbd_thread is stopped and the socket is shutdown where requests can continue to be queued to nbd's internal waiting_queue. When this happens, those requests are never completed or freed.
The fix is to clear the waiting_queue on shutdown of the nbd device, in the same way that the nbd request queue (queue_head) is already being cleared.
-- Paul
| |