Thread (19 messages) 19 messages, 3 authors, 2023-05-24

Re: [PATCH tests 2/5] tests: add a new test for rdev lifetime

From: Mariusz Tkaczyk <hidden>
Date: 2023-05-24 10:39:04

On Wed, 24 May 2023 17:05:43 +0800
Yu Kuai [off-list ref] wrote:
Hi,

在 2023/05/24 16:33, Mariusz Tkaczyk 写道:
quoted
On Tue, 23 May 2023 21:38:57 +0800
Yu Kuai [off-list ref] wrote:
  
quoted
From: Yu Kuai <redacted>

This test add and remove a underlying disk to raid concurretly, verify
that the following problem is fixed:  
As in previous patch, feel free to move it into separate directory.

This test is limited only to this particular problem you resolved because
you are verifying error message in dmesg. It has no additional value because
probability that this issue will ever more occur in the same shape is
minimal.

IMO you should check how "remove" and "add" are handled, if errors are
returned, if there is no trace in dmesg or if processes are not blocked in
kernel.  
It's a litter hard to do that, the problem is that after removing a disk
from array, add it back might fail. But if I follow this order,
it'll be hard to trigger the race, simply based on how quickly kernel
finish queued work. So I just remove and add the disk concurrently, and
return errors is not concerned as long as kernel doesn't WARN.
Ok, makes sense. All I really care about is to not grep dmesg for particular
error message. We should make verification flexible because in the future error
may come from different place in the same test. That is the main objection here.
Maybe we can do check like in generic mdadm do_test() :
dmesg | grep -iq "error\|call trace\|segfault"

I know that it is done anyway because do_test() is involved but I would prefer
to have this verification in this test anyway to make reported error message
possibility the most meaningful.

But, as we discussed in other patch, probably mdadm is not perfect place not
tests like that so please be aware of it if you will decide to add this test
to kernel.
quoted
You can check for this error message as a additional step at the end of test
but not as a mandatory test pass criteria.

In current form it gives as a knowledge that particular kernel doesn't have
your fix, that is all. Because it is race, probably it is not impacting
real life scenarios, so that gives a weak motivation to backport the fix
(only security reasons matters).

I don't see that this particular scenario requires test. You need to make it
more valuable for the future.  
This is just a regression test for a kerenl problem(also for all the
tests in this patchset) that is solved recently, and I write this test
from the kernel perspective, not user, I think this is the main
difference, because I'm not quite familiar how mdadm works, I just know
how to use it. (I still wonder why not these kernel regression tests is
not landed in blktests)

There are more regression tests that I'm planing to add, and is this the
wrong place to add such tests?
I think we cleared it up in patch#4.

Thanks for quick feedback,
Mariusz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help