[Drbd-dev] About "LOGIC BUG for enr = X"
sekim at mantech.co.kr
Mon Oct 30 02:12:05 CET 2017
Thank you for your reply.
The al-extents were set to a minimum value of 67, and the volume I/O was
sequenced to induce AL to cause -ENOBUF. It was reproduced three times in
this environment (although it is not reproduced well).
The thread context that caused the problem is:
1. volume I/O thread context
00 ffffd000`214227f0 fffff800`012dcf7e drbd!__lc_get+0x232
01 ffffd000`21422850 fffff800`0125aef4 drbd!lc_try_get+0x1e
02 ffffd000`21422880 fffff800`0125c3c6 drbd!_al_get+0xb4
03 ffffd000`214228d0 fffff800`012b7ae5 drbd!drbd_al_begin_io_fastpath+0xe6
04 ffffd000`21422920 fffff800`012b32b7 drbd!drbd_request_prepare+0x1e5
05 ffffd000`21422990 fffff800`012b5710 drbd!__drbd_make_request+0x27
06 ffffd000`214229d0 fffff800`012eaabf drbd!drbd_make_request+0x50
2. do_submit thread context
Child-SP RetAddr Call Site
ffffd000`25fa2998 fffff800`013489ba drbd!drbd_al_begin_io_nonblock
ffffd000`25fa2a60 fffff800`013738d4 drbd!do_submit+0x137
ffffd000`25fa2b80 fffff801`a4b022e4 drbd!run_singlethread_workqueue+0xf4
To summarize again, when the al_used value in drbd! __lc_get in volume I/O
thread context exceeds the value of nr_elements, it affects the operation
result of drbd_al_begin_io_nonblock in do_submit. al_lock serializes the
access of AL but I think that al_lock does not prevent al_used from
exceeding the value of nr_elements.
Current issues are based on drbd9 9.0.4 level AL code commit. If this
problem is not a problem in drbd9's latest code, you can ignore this report.
More information about the drbd-dev