[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] segfault in parallel blockjobs (iotest 30)
From: |
John Snow |
Subject: |
Re: [Qemu-block] segfault in parallel blockjobs (iotest 30) |
Date: |
Tue, 21 Nov 2017 19:13:47 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
CC Jeff Cody
... who may or may not be preoccupied with Thanksgiving travel now.
Convenient URL for reading past replies:
https://lists.nongnu.org/archive/html/qemu-devel/2017-11/msg03844.html
On 11/21/2017 10:31 AM, Alberto Garcia wrote:
> On Tue 21 Nov 2017 04:18:13 PM CET, Anton Nefedov wrote:
>
>>>> Or, perhaps another approach, keep BlockJob referenced while it is
>>>> paused (by block_job_pause/resume_all()). That should prevent it
>>>> from deleting the BB.
>>>
>>> Yes, I tried this and it actually solves the issue. But I still think
>>> that the problem is that block jobs are allowed to finish when they
>>> are paused.
>>
>> Agree, but
>>
>>> Adding block_job_pause_point(&s->common) at the end of stream_run()
>>> fixes the problem too.
>>
>> would be a nice fix, but it only works unless the job is already
>> deferred, right?
>
> Right, I didn't mean to propose it as the proper solution (it would
> still leave mirror job vulnerable because it's already paused by the
> time it calls defer_to_main_loop()).
>
>> This:
>>
>> >> keep BlockJob referenced while it is
>> >> paused (by block_job_pause/resume_all()). That should prevent it from
>> >> deleting the BB.
>>
>> looks kind of hacky; maybe referencing in block_job_pause() (and not
>> just pause_all) seems more correct? I think it didn't work for me
>> right away though. But I can look more.
>
> You have to be careful when you unref the block job because you may
> destroy it, and therefore block_job_next() in block_job_resume_all()
> would be using freed memory.
>
> Berto
>
- Re: [Qemu-block] [Qemu-devel] segfault in parallel blockjobs (iotest 30), (continued)
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/09
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Fam Zheng, 2017/11/09
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/15
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Anton Nefedov, 2017/11/15
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/16
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Anton Nefedov, 2017/11/16
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/21
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Anton Nefedov, 2017/11/21
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/21
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30),
John Snow <=
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/22
- Re: [Qemu-block] [Qemu-devel] segfault in parallel blockjobs (iotest 30), John Snow, 2017/11/22
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), John Snow, 2017/11/16
- Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/17
Re: [Qemu-block] segfault in parallel blockjobs (iotest 30), Alberto Garcia, 2017/11/22