All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fei Li <lifei1214@126.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Stefan Weil <sw@weilnetz.de>,
	qemu-devel@nongnu.org, shirley17fei@gmail.com
Subject: Re: [Qemu-devel] [PATCH for-4.0 v9 16/16] qemu_thread_join: fix segmentation fault
Date: Wed, 9 Jan 2019 22:01:28 +0800	[thread overview]
Message-ID: <cc1bec76-7724-2d0d-733c-e84f029776e4@126.com> (raw)
In-Reply-To: <87pnt7awhg.fsf@dusky.pond.sub.org>


在 2019/1/9 上午1:29, Markus Armbruster 写道:
> fei <lifei1214@126.com> writes:
>
>>> 在 2019年1月8日,01:55,Markus Armbruster <armbru@redhat.com> 写道:
>>>
>>> Fei Li <fli@suse.com> writes:
>>>
>>>> To avoid the segmentation fault in qemu_thread_join(), just directly
>>>> return when the QemuThread *thread failed to be created in either
>>>> qemu-thread-posix.c or qemu-thread-win32.c.
>>>>
>>>> Cc: Stefan Weil <sw@weilnetz.de>
>>>> Signed-off-by: Fei Li <fli@suse.com>
>>>> Reviewed-by: Fam Zheng <famz@redhat.com>
>>>> ---
>>>> util/qemu-thread-posix.c | 3 +++
>>>> util/qemu-thread-win32.c | 2 +-
>>>> 2 files changed, 4 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c
>>>> index 39834b0551..3548935dac 100644
>>>> --- a/util/qemu-thread-posix.c
>>>> +++ b/util/qemu-thread-posix.c
>>>> @@ -571,6 +571,9 @@ void *qemu_thread_join(QemuThread *thread)
>>>>      int err;
>>>>      void *ret;
>>>>
>>>> +    if (!thread->thread) {
>>>> +        return NULL;
>>>> +    }
>>> How can this happen?
>> I think I have answered this earlier, please check the following link to see whether it helps:
>> http://lists.nongnu.org/archive/html/qemu-devel/2018-11/msg06554.html
> Thanks for the pointer.  Unfortunately, I don't understand your
> explanation.  You also wrote there "I will remove this patch in next
> version"; looks like you've since changed your mind.
Emm, issues left over from history.. The background is I was hurry to 
make those five
Reviewed-by patches be merged, including this v9 16/16 patch but not the 
real
qemu_thread_create() modification. But actually this patch is to fix the 
segmentation
fault after we modified qemu_thread_create() related functions although 
it has got a
Reviewed-by earlier. :) Thus to not make troube, I wrote the "remove..." 
sentence
to separate it from those 5 Reviewed-by patches, and were plan to send 
only four patches.
But later I got a message that these five patches are not that urgent to 
catch qemu v3.1,
thus I joined the earlier 5 R-b patches into the later v8 & v9 to have a 
better review.

Sorry for the trouble, I need to explain it without involving too much 
background..

Back at the farm: in our current qemu code, some cleanups use a loop to 
join()
the total number of threads if caller fails. This is not a problem until 
applying the
qemu_thread_create() modification. E.g. when compress_threads_save_setup()
fails while trying to create the last do_data_compress thread, 
segmentation fault
will occur when join() is called (sadly there's not enough condition to 
filter this
unsuccessful created thread) as this thread is actually not be created.

Hope the above makes it clear. :)

Have a nice day
Fei
>
> What exactly breaks if we omit this patch?  Assuming something does
> break: imagine we did omit this patch, then forgot we ever saw it, and
> now you've discovered the breakage.  Write us the bug report, complete
> with reproducer.
>
> [...]

  reply	other threads:[~2019-01-09 14:01 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-25 14:04 [Qemu-devel] [PATCH for-4.0 v9 00/16] qemu_thread_create: propagate the error to callers to handle Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 01/16] Fix segmentation fault when qemu_signal_init fails Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 02/16] migration: fix the multifd code when receiving less channels Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 03/16] migration: remove unused &local_err parameter in multifd_save_cleanup Fei Li
2019-01-07 16:50   ` Markus Armbruster
2019-01-08 15:58     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 04/16] migration: add more error handling for postcopy_ram_enable_notify Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 05/16] migration: unify error handling for process_incoming_migration_co Fei Li
2019-01-03 11:25   ` Dr. David Alan Gilbert
2019-01-03 13:27     ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 06/16] qemu_thread: Make qemu_thread_create() handle errors properly Fei Li
2019-01-07 17:18   ` Markus Armbruster
2019-01-08 15:55     ` fei
2019-01-08 17:07       ` Markus Armbruster
2019-01-09 13:19         ` Fei Li
2019-01-09 14:36           ` Markus Armbruster
2019-01-09 14:42             ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 07/16] qemu_thread: supplement error handling for qemu_X_start_vcpu Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 08/16] qemu_thread: supplement error handling for qmp_dump_guest_memory Fei Li
2019-01-07 17:21   ` Markus Armbruster
2019-01-08 16:00     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 09/16] qemu_thread: supplement error handling for pci_edu_realize Fei Li
2019-01-07 17:29   ` Markus Armbruster
2019-01-08  6:14     ` Jiri Slaby
2019-01-08  6:51       ` Peter Xu
2019-01-08  8:43         ` Markus Armbruster
2019-01-10 13:29           ` Fei Li
2019-01-11  2:49             ` Peter Xu
2019-01-11 13:19               ` Fei Li
2019-01-13 15:44     ` Fei Li
2019-01-14 12:36       ` Markus Armbruster
2019-01-14 13:38         ` Fei Li
2019-01-15 12:55           ` Markus Armbruster
2019-01-16  4:43             ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 10/16] qemu_thread: supplement error handling for h_resize_hpt_prepare Fei Li
2019-01-02  2:36   ` David Gibson
2019-01-02  6:44     ` 李菲
2019-01-03  3:43       ` David Gibson
2019-01-03 13:41         ` Fei Li
2019-01-04  5:21           ` David Gibson
2019-01-04  6:20             ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 11/16] qemu_thread: supplement error handling for emulated_realize Fei Li
2019-01-07 17:31   ` Markus Armbruster
2019-01-09 13:21     ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 12/16] qemu_thread: supplement error handling for iothread_complete/qemu_signalfd_compat Fei Li
2019-01-07 17:50   ` Markus Armbruster
2019-01-08 16:18     ` fei
2019-01-13 16:16       ` Fei Li
2019-01-14 12:53         ` Markus Armbruster
2019-01-14 13:52           ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 13/16] qemu_thread: supplement error handling for migration Fei Li
2019-01-03 12:35   ` Dr. David Alan Gilbert
2019-01-03 12:47     ` Fei Li
2019-01-09 15:26   ` Markus Armbruster
2019-01-09 16:01     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 14/16] qemu_thread: supplement error handling for vnc_start_worker_thread Fei Li
2019-01-07 17:54   ` Markus Armbruster
2019-01-08 16:24     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 15/16] qemu_thread: supplement error handling for touch_all_pages Fei Li
2019-01-07 18:13   ` Markus Armbruster
2019-01-09 16:13     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 16/16] qemu_thread_join: fix segmentation fault Fei Li
2019-01-07 17:55   ` Markus Armbruster
2019-01-08 16:50     ` fei
2019-01-08 17:29       ` Markus Armbruster
2019-01-09 14:01         ` Fei Li [this message]
2019-01-09 15:24           ` Markus Armbruster
2019-01-09 15:57             ` fei
2019-01-10  9:20               ` Markus Armbruster
2019-01-10 13:24                 ` Fei Li
2019-01-10 16:06                   ` Markus Armbruster
2019-01-11 14:01                     ` Fei Li
2019-01-02 13:46 ` [Qemu-devel] [PATCH for-4.0 v9 00/16] qemu_thread_create: propagate the error to callers to handle no-reply
2019-01-07 12:44   ` Fei Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cc1bec76-7724-2d0d-733c-e84f029776e4@126.com \
    --to=lifei1214@126.com \
    --cc=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shirley17fei@gmail.com \
    --cc=sw@weilnetz.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.