From: Seth L. <se...@br...> - 2003-03-21 16:14:01
|
Hello, I'm attempting to run valgrind 1.9.4 on redhat 8.1 beta, using gcc 3.2.1. I'm trying to run a program under it, but I get a Assertion failed message. The full text of the output is included below. I checked the mailing list archives, and the nano-faq, but didn't see this mentioned. Does any of this ring a bell? Is there something I can do? Thanks very much, Seth [root@disheveled .libs]# valgrind -v ./state testmode shell-init: could not get current directory: getcwd: cannot access parent direct ories: No such file or directory sh_makepath: could not get current directory: getcwd: cannot access parent direc tories: No such file or directory ==15339== Memcheck, a.k.a. Valgrind, a memory error detector for x86-linux. ==15339== Copyright (C) 2002, and GNU GPL'd, by Julian Seward. ==15339== Using valgrind-1.9.4, a program instrumentation system for x86-linux. ==15339== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward. ==15339== Startup, with flags: ==15339== --suppressions=/usr/local/lib/valgrind/default.supp ==15339== -v ==15339== Reading suppressions file: /usr/local/lib/valgrind/default.supp ==15339== Estimated CPU clock rate is 865 MHz ==15339== valgrind: vg_ldt.c:167 (vgPlain_do_useseg): Assertion `(seg_selector & 7) == 7' failed. sched status: Thread 1: status = Runnable, associated_mx = 0x0, associated_cv = 0x0 ==15339== Reading syms from /home/seth/code/G4/src/.libs/state ==15339== Reading syms from /lib/ld-2.3.1.so ==15339== Reading syms from /usr/local/lib/valgrind/vgskin_memcheck.so ==15339== Reading syms from /usr/local/lib/valgrind/valgrind.so ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libcomms.so.0.0 .0 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libcurl.so.2.0. 2 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libssl.so.0.9.7 ==15339== Reading syms from /lib/libdl-2.3.1.so ==15339== object doesn't have any debug info ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libcore.so.0.0. 0 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libbrivodb.so.0 .0.0 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/librdf.so.0.0.0 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libraptor.so.0. 0.0 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libxml2.so.2.5. 3 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libz.so.1.1.4 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libcrypto.so.0. 9.7 ==15339== Reading syms from /home/seth/code/G4/external/dist/lib/libinterface.so .0.0.0 ==15339== Reading syms from /usr/local/lib/valgrind/libpthread.so ==15339== Reading syms from /usr/lib/libstdc++.so.5.0.2 ==15339== Reading syms from /lib/tls/libm-2.3.1.so ==15339== Reading syms from /lib/libgcc_s-3.2.1-20021208.so.1 ==15339== Reading syms from /lib/tls/libc-2.3.1.so ==15339== at 0x42029BA1: __new_exitfn (in /lib/tls/libc-2.3.1.so) ==15339== by 0x42029B58: __cxa_atexit_internal (in /lib/tls/libc-2.3.1.so) ==15339== by 0x404767E7: __static_initialization_and_destruction_0(int, int) (/usr/src/build/177318-i386/BUILD/gcc-3.2.1-20021208/obj-i386-redhat-linux/i386- redhat-linux/libstdc++-v3/include/iostream:63) ==15339== by 0x40476839: _GLOBAL__I__ZThn8_NSt14basic_iostreamIwSt11char_trai tsIwEED0Ev.._.._.._.._libstdc___v3_src_io_inst.ccJGVYgb (/usr/src/build/177318-i 386/BUILD/gcc-3.2.1-20021208/obj-i386-redhat-linux/i386-redhat-linux/libstdc++-v 3/include/bits/locale_facets.h:107) Please report this bug to: js...@ac... [root@disheveled .libs]# gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.1/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux Thread model: posix gcc version 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2) |
From: Tom H. <th...@cy...> - 2003-03-21 16:54:51
|
In message <3E7...@br...> Seth Ladd <se...@br...> wrote: > I'm attempting to run valgrind 1.9.4 on redhat 8.1 beta, using gcc > 3.2.1. I'm trying to run a program under it, but I get a Assertion > failed message. The full text of the output is included below. I > checked the mailing list archives, and the nano-faq, but didn't see > this mentioned. Does any of this ring a bell? Is there something I > can do? RedHat 8.1 uses glibc 2.3 with the NPTL thread package instead of the linuxthreads thread package and valgrind is therefore highly unlikely to work with threaded programs under RedHat 8.1 until some work is done to make it handle the changes to threading. The fact that this assertion is talking about segment selectors suggests that thread local storage is involved, and hence this is probably a threading related problem. Before anybody worries about the update to glibc 2.3.2 that was released for RedHat 8.0 the other day, that version was built with linuxthreads so there is no problem there. Tom -- Tom Hughes (th...@cy...) Software Engineer, Cyberscience Corporation http://www.cyberscience.com/ |
From: Julian S. <js...@ac...> - 2003-03-21 19:16:23
|
> > valgrind: vg_ldt.c:167 (vgPlain_do_useseg): Assertion `(seg_selector & > > 7) == 7' > The fact that this assertion is talking about segment selectors > suggests that thread local storage is involved, and hence this is > probably a threading related problem. The lowest 3 bits of the segment selector is a tag which indicates some properties of the segment (iirc). 111b means a LDT selector, and that's what the above assertion tests. I think you've probably hit a GDT selector (011b iirc). But anyway, as Tom says, R H 8.1 contains NPTL, which V can't emulate well enough to be useful, and we don't have an ETA on fixing it either. Best advice is to avoid 8.1 if you want to use V. At least for the moment. J |
From: Tom H. <th...@cy...> - 2003-03-21 19:50:37
|
In message <200...@ac...> Julian Seward <js...@ac...> wrote: > But anyway, as Tom says, R H 8.1 contains NPTL, which V can't emulate > well enough to be useful, and we don't have an ETA on fixing it either. > Best advice is to avoid 8.1 if you want to use V. At least for the > moment. I wrote my earlier message based on your comment in the documentation that NPTL will need extra work, but I was thinking afterwards that as valgrind replaces libpthread.so with it's own version that NPTL won't actually get a chance to be involved will it? Presumably there must be some other problem though, perhaps with the use of thread local storage by the main C library or something? Tom -- Tom Hughes (th...@cy...) Software Engineer, Cyberscience Corporation http://www.cyberscience.com/ |
From: Tom H. <th...@cy...> - 2003-03-22 17:28:11
|
In message <200...@ac...> Julian Seward <js...@ac...> wrote: > > > > valgrind: vg_ldt.c:167 (vgPlain_do_useseg): Assertion `(seg_selector & > > > 7) == 7' > > > The fact that this assertion is talking about segment selectors > > suggests that thread local storage is involved, and hence this is > > probably a threading related problem. > > The lowest 3 bits of the segment selector is a tag which indicates some > properties of the segment (iirc). 111b means a LDT selector, and that's > what the above assertion tests. I think you've probably hit a > GDT selector (011b iirc). I suspect the same - the NPTL documentation does mention that it uses the GDT to handle thread local storage instead of the LDT that is used by the old threading system. There is also a new system call, tls, to manage the GDT so valgrind is probably going to need to intercept that and emulate the GDT in a similar way to that the LDT emulation is does at the moment. Tom -- Tom Hughes (th...@cy...) Software Engineer, Cyberscience Corporation http://www.cyberscience.com/ |