On 2017年04月20日 15:46, zhanghailiang wrote:
If some errors happen before main_loop is initialized in colo
compare thread, qemu will go into finalizing process where
we call g_main_loop_quit(s->main_loop), if main_loop is NULL, there
will be an error report:
"(process:14861): GLib-CRITICAL **: g_main_loop_quit: assertion 'loop != NULL' 
failed".

We need to check if main_loop is NULL or not before call g_main_loop_quit().

Do we need check and fail early in colo_compare_thread() too?

Thanks


Signed-off-by: zhanghailiang <zhang.zhanghaili...@huawei.com>
---
  net/colo-compare.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/colo-compare.c b/net/colo-compare.c
index a6bf419..d6a5e4c 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -770,7 +770,9 @@ static void colo_compare_finalize(Object *obj)
                               s->worker_context, true);
      qemu_chr_fe_deinit(&s->chr_out);
- g_main_loop_quit(s->compare_loop);
+    if (s->compare_loop) {
+        g_main_loop_quit(s->compare_loop);
+    }
      qemu_thread_join(&s->thread);
/* Release all unhandled packets after compare thead exited */


Reply via email to