On 25 September 2018 at 18:09, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 25 September 2018 at 16:14, Max Reitz <mre...@redhat.com> wrote: >> The following changes since commit 506e4a00de01e0b29fa83db5cbbc3d154253b4ea: >> >> Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.1-20180925' >> into staging (2018-09-25 13:30:45 +0100) >> >> are available in the Git repository at: >> >> https://git.xanclic.moe/XanClic/qemu.git tags/pull-block-2018-09-25 >> >> for you to fetch changes up to 9c76ff9c16be890e70fce30754b096ff9950d1ee: >> >> Merge remote-tracking branch 'kevin/tags/for-upstream' into block >> (2018-09-25 16:12:44 +0200) >> >> ---------------------------------------------------------------- >> Block layer patches: >> - Drain fixes >> - node-name parameters for block-commit >> - Refactor block jobs to use transactional callbacks for exiting >> >> ---------------------------------------------------------------- > > Applied, thanks.
I'm finding that test-bdrv-drain hangs intermittently on my OSX host. It hangs using CPU, not stopped completely, but when I attach with lldb it says that we got a NULL pointer deref in one of the threads, so why the whole thing didn't exit with a signal I have no idea. Anyway: manooth$ lldb -p 40546 (lldb) process attach --pid 40546 Process 40546 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x00007fff59f17d82 libsystem_kernel.dylib`__semwait_signal + 10 libsystem_kernel.dylib`__semwait_signal: -> 0x7fff59f17d82 <+10>: jae 0x7fff59f17d8c ; <+20> 0x7fff59f17d84 <+12>: movq %rax, %rdi 0x7fff59f17d87 <+15>: jmp 0x7fff59f0eb0e ; cerror 0x7fff59f17d8c <+20>: retq thread #4, stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x0000000000000000 error: memory read failed for 0x0 Target 0: (test-bdrv-drain) stopped. Executable module set to "/Users/pm215/src/qemu-for-merges/build/all/tests/test-bdrv-drain". Architecture set to: x86_64-apple-macosx. (lldb) thread backtrace all warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available. * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00007fff59f17d82 libsystem_kernel.dylib`__semwait_signal + 10 frame #1: 0x00007fff5a0e3824 libsystem_pthread.dylib`_pthread_join + 626 frame #2: 0x00000001024a2112 test-bdrv-drain`qemu_thread_join(thread=<unavailable>) at qemu-thread-posix.c:565 [opt] frame #3: 0x0000000102465171 test-bdrv-drain`iothread_join(iothread=0x00007f868dd00a90) at iothread.c:62 [opt] frame #4: 0x00000001023cbb41 test-bdrv-drain`test_iothread_common(drain_type=BDRV_SUBTREE_DRAIN, drain_thread=<unavailable>) at test-bdrv-drain.c:762 [opt] frame #5: 0x0000000102622a47 libglib-2.0.0.dylib`g_test_run_suite_internal + 697 frame #6: 0x0000000102622c0a libglib-2.0.0.dylib`g_test_run_suite_internal + 1148 frame #7: 0x0000000102622c0a libglib-2.0.0.dylib`g_test_run_suite_internal + 1148 frame #8: 0x0000000102622020 libglib-2.0.0.dylib`g_test_run_suite + 121 frame #9: 0x0000000102621f73 libglib-2.0.0.dylib`g_test_run + 17 frame #10: 0x00000001023c7cda test-bdrv-drain`main(argc=1, argv=0x00007ffeed839a90) at test-bdrv-drain.c:1606 [opt] frame #11: 0x00007fff59dc7015 libdyld.dylib`start + 1 thread #2 frame #0: 0x00007fff59f17a16 libsystem_kernel.dylib`__psynch_cvwait + 10 frame #1: 0x00007fff5a0e0589 libsystem_pthread.dylib`_pthread_cond_wait + 732 frame #2: 0x00000001024a1dec test-bdrv-drain`qemu_event_wait [inlined] qemu_futex_wait(ev=<unavailable>, val=4294967295) at qemu-thread-posix.c:347 [opt] frame #3: 0x00000001024a1dcc test-bdrv-drain`qemu_event_wait(ev=0x00000001025029c8) at qemu-thread-posix.c:442 [opt] frame #4: 0x00000001024b4c88 test-bdrv-drain`call_rcu_thread(opaque=<unavailable>) at rcu.c:261 [opt] frame #5: 0x00007fff5a0df661 libsystem_pthread.dylib`_pthread_body + 340 frame #6: 0x00007fff5a0df50d libsystem_pthread.dylib`_pthread_start + 377 frame #7: 0x00007fff5a0debf9 libsystem_pthread.dylib`thread_start + 13 thread #3 frame #0: 0x00007fff59f1803a libsystem_kernel.dylib`__sigwait + 10 frame #1: 0x00007fff5a0e1ad9 libsystem_pthread.dylib`sigwait + 61 frame #2: 0x000000010249fdcb test-bdrv-drain`sigwait_compat(opaque=0x00007f868dc0efd0) at compatfd.c:36 [opt] frame #3: 0x00007fff5a0df661 libsystem_pthread.dylib`_pthread_body + 340 frame #4: 0x00007fff5a0df50d libsystem_pthread.dylib`_pthread_start + 377 frame #5: 0x00007fff5a0debf9 libsystem_pthread.dylib`thread_start + 13 thread #4 frame #0: 0x0000000000000000 frame #1: 0x00000001024af579 test-bdrv-drain`notifier_list_notify(list=<unavailable>, data=0x0000000000000000) at notify.c:40 [opt] frame #2: 0x00000001024a1f35 test-bdrv-drain`qemu_thread_atexit_run(arg=<unavailable>) at qemu-thread-posix.c:473 [opt] frame #3: 0x00007fff5a0e1163 libsystem_pthread.dylib`_pthread_tsd_cleanup + 463 frame #4: 0x00007fff5a0e0ee9 libsystem_pthread.dylib`_pthread_exit + 79 frame #5: 0x00007fff5a0df66c libsystem_pthread.dylib`_pthread_body + 351 frame #6: 0x00007fff5a0df50d libsystem_pthread.dylib`_pthread_start + 377 frame #7: 0x00007fff5a0debf9 libsystem_pthread.dylib`thread_start + 13 thread #5 frame #0: 0x00007fff59f17cf2 libsystem_kernel.dylib`__select + 10 frame #1: 0x000000010260fb60 libglib-2.0.0.dylib`g_poll + 430 frame #2: 0x000000010249f7ec test-bdrv-drain`aio_poll(ctx=0x00007f868dc32a10, blocking=true) at aio-posix.c:645 [opt] frame #3: 0x00000001024652dd test-bdrv-drain`iothread_run(opaque=0x00007f868dd000a0) at iothread.c:51 [opt] frame #4: 0x00007fff5a0df661 libsystem_pthread.dylib`_pthread_body + 340 frame #5: 0x00007fff5a0df50d libsystem_pthread.dylib`_pthread_start + 377 frame #6: 0x00007fff5a0debf9 libsystem_pthread.dylib`thread_start + 13 (lldb) thread select 4 * thread #4 frame #0: 0x0000000000000000 error: memory read failed for 0x0 (lldb) frame select 1 test-bdrv-drain was compiled with optimization - stepping may behave oddly; variables may not be available. frame #1: 0x00000001024af579 test-bdrv-drain`notifier_list_notify(list=<unavailable>, data=0x0000000000000000) at notify.c:40 [opt] 37 Notifier *notifier, *next; 38 39 QLIST_FOREACH_SAFE(notifier, &list->notifiers, node, next) { -> 40 notifier->notify(notifier, data); 41 } 42 } 43 (lldb) print notifier (Notifier *) $0 = 0x0000000000000000 Non-debug build so debug info not very helpful, I'm afraid. thanks -- PMM