[Libguestfs] [libnbd PATCH] api: Allow completion callbacks to auto-retire

Richard W.M. Jones rjones at redhat.com
Thu Jul 25 11:48:05 UTC 2019


The new server-death test fails when run under valgrind.  I guess it's
a race because valgrind will make the test run slightly more slowly.
The log is attached.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
-------------- next part --------------
========================================
   libnbd 0.1.8: tests/test-suite.log
========================================

# TOTAL: 30
# PASS:  29
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: server-death
==================

==21447== Memcheck, a memory error detector
==21447== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==21447== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==21447== Command: /home/rjones/d/libnbd/tests/.libs/lt-server-death
==21447== 
libnbd: debug: nbd_connect_command: event CmdConnectCommand: START -> CONNECT_COMMAND.START
libnbd: debug: nbd_connect_command: transition: CONNECT_COMMAND.START -> MAGIC.START
libnbd: debug: nbd_connect_command: transition: MAGIC.START -> MAGIC.RECV_MAGIC
libnbd: debug: nbd_connect_command: poll start: events=1
libnbd: debug: nbd_connect_command: poll end: r=1 revents=1
libnbd: debug: nbd_connect_command: transition: MAGIC.RECV_MAGIC -> MAGIC.CHECK_MAGIC
libnbd: debug: nbd_connect_command: transition: MAGIC.CHECK_MAGIC -> NEWSTYLE.START
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.START -> NEWSTYLE.RECV_GFLAGS
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.RECV_GFLAGS -> NEWSTYLE.CHECK_GFLAGS
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.CHECK_GFLAGS -> NEWSTYLE.SEND_CFLAGS
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.SEND_CFLAGS -> NEWSTYLE.OPT_STARTTLS.START
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STARTTLS.START -> NEWSTYLE.OPT_STRUCTURED_REPLY.START
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STRUCTURED_REPLY.START -> NEWSTYLE.OPT_STRUCTURED_REPLY.SEND
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STRUCTURED_REPLY.SEND -> NEWSTYLE.OPT_STRUCTURED_REPLY.RECV_REPLY
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STRUCTURED_REPLY.RECV_REPLY -> NEWSTYLE.OPT_STRUCTURED_REPLY.RECV_REPLY_PAYLOAD
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STRUCTURED_REPLY.RECV_REPLY_PAYLOAD -> NEWSTYLE.OPT_STRUCTURED_REPLY.CHECK_REPLY
libnbd: debug: nbd_connect_command: negotiated structured replies on this connection
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_STRUCTURED_REPLY.CHECK_REPLY -> NEWSTYLE.OPT_SET_META_CONTEXT.START
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_SET_META_CONTEXT.START -> NEWSTYLE.OPT_GO.START
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.START -> NEWSTYLE.OPT_GO.SEND
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.SEND -> NEWSTYLE.OPT_GO.SEND_EXPORTNAMELEN
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.SEND_EXPORTNAMELEN -> NEWSTYLE.OPT_GO.SEND_EXPORT
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.SEND_EXPORT -> NEWSTYLE.OPT_GO.SEND_NRINFOS
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.SEND_NRINFOS -> NEWSTYLE.OPT_GO.RECV_REPLY
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.RECV_REPLY -> NEWSTYLE.OPT_GO.RECV_REPLY_PAYLOAD
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.RECV_REPLY_PAYLOAD -> NEWSTYLE.OPT_GO.CHECK_REPLY
libnbd: debug: nbd_connect_command: exportsize: 1048576 eflags: 0x5ed
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.CHECK_REPLY -> NEWSTYLE.OPT_GO.RECV_REPLY
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.RECV_REPLY -> NEWSTYLE.OPT_GO.RECV_REPLY_PAYLOAD
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.RECV_REPLY_PAYLOAD -> NEWSTYLE.OPT_GO.CHECK_REPLY
libnbd: debug: nbd_connect_command: transition: NEWSTYLE.OPT_GO.CHECK_REPLY -> READY
libnbd: debug: nbd_aio_pread: event CmdIssue: READY -> ISSUE_COMMAND.START
libnbd: debug: nbd_aio_pread: transition: ISSUE_COMMAND.START -> ISSUE_COMMAND.SEND_REQUEST
libnbd: debug: nbd_aio_pread: transition: ISSUE_COMMAND.SEND_REQUEST -> ISSUE_COMMAND.PREPARE_WRITE_PAYLOAD
libnbd: debug: nbd_aio_pread: transition: ISSUE_COMMAND.PREPARE_WRITE_PAYLOAD -> ISSUE_COMMAND.FINISH
libnbd: debug: nbd_aio_pread: transition: ISSUE_COMMAND.FINISH -> READY
libnbd: debug: nbd_aio_trim_callback: event CmdIssue: READY -> ISSUE_COMMAND.START
libnbd: debug: nbd_aio_trim_callback: transition: ISSUE_COMMAND.START -> ISSUE_COMMAND.SEND_REQUEST
libnbd: debug: nbd_aio_trim_callback: transition: ISSUE_COMMAND.SEND_REQUEST -> ISSUE_COMMAND.PREPARE_WRITE_PAYLOAD
libnbd: debug: nbd_aio_trim_callback: transition: ISSUE_COMMAND.PREPARE_WRITE_PAYLOAD -> ISSUE_COMMAND.FINISH
libnbd: debug: nbd_aio_trim_callback: transition: ISSUE_COMMAND.FINISH -> READY
libnbd: debug: nbd_poll: poll start: events=1
libnbd: debug: nbd_poll: poll end: r=1 revents=11
libnbd: debug: nbd_poll: event NotifyRead: READY -> REPLY.START
libnbd: debug: nbd_poll: transition: REPLY.START -> REPLY.RECV_REPLY
libnbd: debug: nbd_poll: transition: REPLY.RECV_REPLY -> REPLY.CHECK_SIMPLE_OR_STRUCTURED_REPLY
libnbd: debug: nbd_poll: transition: REPLY.CHECK_SIMPLE_OR_STRUCTURED_REPLY -> REPLY.SIMPLE_REPLY.START
libnbd: debug: nbd_poll: transition: REPLY.SIMPLE_REPLY.START -> REPLY.FINISH_COMMAND
/home/rjones/d/libnbd/tests/.libs/lt-server-death: unexpected error in trim callback: Success
libnbd: debug: nbd_poll: transition: REPLY.FINISH_COMMAND -> READY
libnbd: debug: nbd_poll: poll start: events=1
libnbd: debug: nbd_poll: poll end: r=1 revents=11
libnbd: debug: nbd_poll: event NotifyRead: READY -> REPLY.START
libnbd: debug: nbd_poll: transition: REPLY.START -> CLOSED
/home/rjones/d/libnbd/tests/.libs/lt-server-death: test failed: nbd_aio_peek_command_completed
==21447== 
==21447== HEAP SUMMARY:
==21447==     in use at exit: 5,220 bytes in 17 blocks
==21447==   total heap usage: 1,356 allocs, 1,339 frees, 118,725 bytes allocated
==21447== 
==21447== 1 bytes in 1 blocks are still reachable in loss record 1 of 9
==21447==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==21447==    by 0x4C7074E: strdup (in /usr/lib64/libc-2.29.so)
==21447==    by 0x4851A4A: nbd_create (handle.c:63)
==21447==    by 0x401297: main (server-death.c:82)
==21447== 
==21447== 24 bytes in 1 blocks are still reachable in loss record 2 of 9
==21447==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==21447==    by 0x485155E: allocate_last_error_on_demand (errors.c:83)
==21447==    by 0x485155E: allocate_last_error_on_demand (errors.c:78)
==21447==    by 0x4851588: nbd_internal_reset_error (errors.c:96)
==21447==    by 0x484B89D: nbd_connect_command (api.c:509)
==21447==    by 0x4012B0: main (server-death.c:89)
==21447== 
==21447== 71 bytes in 1 blocks are still reachable in loss record 4 of 9
==21447==    at 0x483AD19: realloc (vg_replace_malloc.c:836)
==21447==    by 0x4C60C03: __vasprintf_internal (in /usr/lib64/libc-2.29.so)
==21447==    by 0x4C3A519: asprintf (in /usr/lib64/libc-2.29.so)
==21447==    by 0x484AB2C: nbd_unlocked_aio_peek_command_completed (aio.c:126)
==21447==    by 0x484EA75: nbd_aio_peek_command_completed (api.c:2130)
==21447==    by 0x40134D: main (server-death.c:114)
==21447== 
==21447== 80 bytes in 1 blocks are still reachable in loss record 5 of 9
==21447==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==21447==    by 0x485B242: nbd_internal_copy_string_list (utils.c:69)
==21447==    by 0x484F7B2: nbd_unlocked_aio_connect_command (connect.c:396)
==21447==    by 0x484F868: nbd_unlocked_connect_command (connect.c:109)
==21447==    by 0x484B8C3: nbd_connect_command (api.c:516)
==21447==    by 0x4012B0: main (server-death.c:89)
==21447== 
==21447== 96 bytes in 1 blocks are still reachable in loss record 6 of 9
==21447==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==21447==    by 0x4852729: nbd_internal_command_common (rw.c:202)
==21447==    by 0x4852AAD: nbd_unlocked_aio_pread_callback (rw.c:272)
==21447==    by 0x4852B30: nbd_unlocked_aio_pread (rw.c:251)
==21447==    by 0x484D487: nbd_aio_pread (api.c:1431)
==21447==    by 0x401314: main (server-death.c:106)
==21447== 
==21447== 96 bytes in 1 blocks are still reachable in loss record 7 of 9
==21447==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==21447==    by 0x4852729: nbd_internal_command_common (rw.c:202)
==21447==    by 0x4853071: nbd_unlocked_aio_trim_callback (rw.c:417)
==21447==    by 0x484E041: nbd_aio_trim_callback (api.c:1781)
==21447==    by 0x40133B: main (server-death.c:110)
==21447== 
==21447== 117 bytes in 9 blocks are still reachable in loss record 8 of 9
==21447==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==21447==    by 0x4C7074E: strdup (in /usr/lib64/libc-2.29.so)
==21447==    by 0x485B261: nbd_internal_copy_string_list (utils.c:74)
==21447==    by 0x484F7B2: nbd_unlocked_aio_connect_command (connect.c:396)
==21447==    by 0x484F868: nbd_unlocked_connect_command (connect.c:109)
==21447==    by 0x484B8C3: nbd_connect_command (api.c:516)
==21447==    by 0x4012B0: main (server-death.c:89)
==21447== 
==21447== 4,704 bytes in 1 blocks are still reachable in loss record 9 of 9
==21447==    at 0x483AB1A: calloc (vg_replace_malloc.c:762)
==21447==    by 0x48519C8: nbd_create (handle.c:48)
==21447==    by 0x401297: main (server-death.c:82)
==21447== 
==21447== LEAK SUMMARY:
==21447==    definitely lost: 0 bytes in 0 blocks
==21447==    indirectly lost: 0 bytes in 0 blocks
==21447==      possibly lost: 0 bytes in 0 blocks
==21447==    still reachable: 5,189 bytes in 16 blocks
==21447==         suppressed: 31 bytes in 1 blocks
==21447== 
==21447== For lists of detected and suppressed errors, rerun with: -s
==21447== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
FAIL server-death (exit status: 1)



More information about the Libguestfs mailing list