46 lines
1.8 KiB
Diff
46 lines
1.8 KiB
Diff
From 7a1eb2ead5d441e3604070e8fe89cce475cc45a8 Mon Sep 17 00:00:00 2001
|
|
From: "Daniel P. Berrange" <berrange@redhat.com>
|
|
Date: Thu, 1 Dec 2011 11:33:50 -0500
|
|
Subject: [PATCH] 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=<optimized out>, argv=<optimized out>) 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/
|
|
---
|
|
tests/shunloadtest.c | 2 +-
|
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/tests/shunloadtest.c b/tests/shunloadtest.c
|
|
index 2cdb8b8..ab6e56f 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;
|
|
}
|
|
--
|
|
1.7.7.4
|
|
|