From: Daniel P. Berrange Date: Thu, 1 Dec 2011 16:33:50 +0000 (-0500) Subject: Avoid crash in shunloadtest X-Git-Tag: v0.9.8-rc2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24d9792821af4c6b304e5b0ee83f7b233cfa314e;p=thirdparty%2Flibvirt.git Avoid crash in shunloadtest For unknown reasons, the shunloadtest will crash on Fedora 16 inside dlopen() (gdb) bt #0 0x00000000000050e6 in ?? () #1 0x00007ff61a77b9d5 in floor () from /lib64/libm.so.6 #2 0x00007ff61e522963 in _dl_relocate_object () from /lib64/ld-linux-x86-64.so.2 #3 0x00007ff61e5297e6 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2 #4 0x00007ff61e525006 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #5 0x00007ff61e52917a in _dl_open () from /lib64/ld-linux-x86-64.so.2 #6 0x00007ff61e0f6f26 in dlopen_doit () from /lib64/libdl.so.2 #7 0x00007ff61e525006 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2 #8 0x00007ff61e0f752f in _dlerror_run () from /lib64/libdl.so.2 #9 0x00007ff61e0f6fc1 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2 #10 0x0000000000400a15 in main (argc=, argv=) at shunloadtest.c:105 Changing from RTLD_NOW to RTLD_LAZY avoids this problem, but quite possibly does not fix the root cause. * shunloadtest.c: s/NOW/LAZY/ --- diff --git a/tests/shunloadtest.c b/tests/shunloadtest.c index 2cdb8b8bb1..ab6e56fced 100644 --- a/tests/shunloadtest.c +++ b/tests/shunloadtest.c @@ -102,7 +102,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv) fprintf(stderr, " .%*s 1 ", 39, ""); signal(SIGSEGV, sigHandler); - if (!(lib = dlopen("./.libs/libshunload.so", RTLD_NOW))) { + if (!(lib = dlopen("./.libs/libshunload.so", RTLD_LAZY))) { fprintf(stderr, "Cannot load ./.libs/libshunload.so %s\n", dlerror()); return 1; }