On 08/29/2013 07:08 PM, Eric Blake wrote: > We are already providing an LD_PRELOAD override of > dbus_message_set_reply_serial as part of that test, which SHOULD be > avoiding that assert (at least, it did so on both RHEL 5 and current > Fedora) (see commit 524f52c). Can you do some debugging under gdb to > see why the preload is not being used on Ubuntu's version of dbus? > The mechanism itself is working fine, but looking at the backtrace it seems that dbus_message_set_reply_serial is called from within a function that's not part of the mock library: Breakpoint 1, 0x00007ffff5aaf8e0 in dbus_message_set_reply_serial () from /lib/x86_64-linux-gnu/libdbus-1.so.3 (gdb) bt #0 0x00007ffff5aaf8e0 in dbus_message_set_reply_serial () from /lib/x86_64-linux-gnu/libdbus-1.so.3 #1 0x00007ffff5ab2a28 in dbus_message_new_method_return () from /lib/x86_64-linux-gnu/libdbus-1.so.3 #2 0x00007ffff770c71f in virDBusCallMethod (conn=0x1, replyout=0x0, destination=<optimized out>, path=<optimized out>, iface=0x7ffff791c8f0 "org.freedesktop.machine1.Manager", member=<optimized out>, types=0x7ffff791c9cb "sayssusa(sv)") at ../../src/util/virdbus.c:1151 #3 0x00007ffff77459c1 in virSystemdCreateMachine (name=<optimized out>, drivername=0x411d3d "lxc", privileged=<optimized out>, uuid=0x7fffffffded0 "\001\001\001\001\002\002\002\002\003\003\003\003\004\004\004\004", rootdir=<optimized out>, pidleader=123, iscontainer=true, partition=0x411db2 "highpriority.slice") at ../../src/util/virsystemd.c:213 #4 0x00000000004031e9 in testCreateContainer (opaque=<optimized out>) at ../../tests/virsystemdtest.c:39 #5 0x0000000000403f9d in virtTestRun (title=<optimized out>, nloops=1, body=0x403150 <testCreateContainer>, data=0x0) at ../../tests/testutils.c:169 #6 0x0000000000402bc1 in mymain () at ../../tests/virsystemdtest.c:178 #7 0x000000000040468b in virtTestMain (argc=1, argv=<optimized out>, func=0x402b90 <mymain>) at ../../tests/testutils.c:772 #8 0x00000000004029e0 in main (argc=1, argv=0x7fffffffe168) at ../../tests/virsystemdtest.c:207 as can be seen here: ldd -r .libs/virsystemdmock.so undefined symbol: dbus_set_error (.libs/virsystemdmock.so) linux-vdso.so.1 => (0x00007fff69bb2000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd46ecf0000) /lib64/ld-linux-x86-64.so.2 (0x00007fd46f2d2000) undefined symbol: dbus_message_new_error (.libs/virsystemdmock.so) undefined symbol: dbus_message_new_method_return (.libs/virsystemdmock.so) although the callstack seems to have fallen prey to the optimizer, virDBusCallMethod calls the mock dbus_connection_send_with_reply_and_block which in turn calls the real dbus_message_new_method_return which again calls dbus_message_set_reply_serial, but the real one instead of the mock version. On RHEL it's calling the mock ...reply_serial. On other occcasions I have observed that libtool on Ubuntu behaves differently than on RHEL or Fedora and maybe that's why the LD_PRELOAD works differently for intra-library calls there. But here I am entering the realm of wild speculations... -- Mit freundlichen Grüßen/Kind Regards Viktor Mihajlovski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martina Köderitz Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list