[PATCH blktests] nvme/039: avoid failure by error message rate limit

Shin'ichiro Kawasaki shinichiro at fastmail.com
Wed Apr 12 17:20:10 PDT 2023


On Apr 12, 2023 / 10:49, alan.adamson at oracle.com wrote:
> 
> On 4/12/23 1:59 AM, Shin'ichiro Kawasaki wrote:
> > From: Shin'ichiro Kawasaki <shinichiro.kawasaki at wdc.com>
> > 
> > The test case nvme/039 tests that expected error messages are printed
> > for errors injected to the nvme driver. However, the test case fails by
> > chance when previous test cases generate many error messages. In this
> > case, the kernel function pr_err_ratelimited() may suppress the error
> > messages that the test case expects. Also, it may print messages that
> > the test case does not expect, such as "blk_print_req_error: xxxx
> > callbacks suppressed".
> > 
> > To avoid the failure, make two improvements for the test case. Firstly,
> > wait DEFAULT_RATE_LIMIT seconds at the beginning of the test to ensure
> > the expected error messages are not suppressed. Secondly, exclude the
> > unexpected message for the error message check. Introduce a helper
> > function last_dmesg() for the second improvement.
> 
> Why are we seeing the callback messages?  By the time the test starts
> generating errors (after a 5 sec delay) we should be able to log 10 messages
> without any being suppressed.

That is because other test cases before nvme/039 can generate errors. For
instance, block/014 generates many errors. When I ran block/014 and nvme/039 in
sequence, I always observe nvme/039 failure even with the 5 seconds wait in
nvme/039. I suggest to excldue the "callbacks message" to avoid the nvme/038
failure regardless of the errors generated before nvme/039.




More information about the Linux-nvme mailing list