qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH RFC 0/5] Fix accidental crash in iotest 30


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH RFC 0/5] Fix accidental crash in iotest 30
Date: Fri, 20 Nov 2020 19:43:23 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0

20.11.2020 19:36, Kevin Wolf wrote:
Am 20.11.2020 um 17:16 hat Vladimir Sementsov-Ogievskiy geschrieben:
Hi all!

As Peter recently noted, iotest 30 accidentally fails.

I found that Qemu crashes due to interleaving of graph-update
operations of parallel mirror and stream block-jobs.

I haven't found the time yet to properly look into this or your other
thread where you had a similar question, but there is one thing I'm
wondering: Why can the nested job even make progress and run its
completion handler?

When we modify the graph, we should have drained the subtree in
question, so in theory while one job finishes and modifies the graph,
there should be no way for the other job to make progress and get
interleaved - it shouldn't be able to start I/O requests and much less
to run its completion handler and modify the graph.

Are we missing drained sections somewhere or do they fail to achieve
what I think they should achieve?


It all looks like both jobs are reached their finish simultaneously. So, all 
progress is done in both jobs. And they go concurrently to completion 
procedures which interleaves. So, there no more io through blk, which is 
restricted by drained sections.


--
Best regards,
Vladimir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]