RE: segfaults

"Howell, David P" <[email protected]> Mon, 13 Jan 2003 06:23:38 -0800
Newsgroups gmane.linux.ngpt.user
Message-ID <[email protected]>
One additional comment, if there is no /usr/lib/libpthread.so.0 symbolic
link to libpthread.so.22 you should be able to build it link and retry
your APP with the same script and it should work. As for why this wasn't
in the builds as is, a quick look shows that it's in the Makefile after
config but is missing from ngpt.spec, so building and installing from
the source tarball should work but building/installing the binary
packages will have this bug.

I'll post a patch for this ASAP and get it in for the next release.

Dave Howell

These are my opinions and not official opinions of Intel Corp.

David Howell
Intel Corporation
Telco Server Development
Server Products Division
Voice: (803) 461-6112  Fax: (803) 461-6292

Intel Corporation
Columbia Design Center, CBA-2
250 Berryhill Road, Suite 100
Columbia, SC 29210

[email protected]


-----Original Message-----
From: Howell, David P 
Sent: Monday, January 13, 2003 9:17 AM
To: [email protected]; [email protected]
Subject: RE: [pthreads-users] segfaults

From the 'ldd v67' output, libpthread.so.0 was resolved to
/lib/libpthread.so.0 (Linuxthreads). As /usr/lib/libpthread.so.22 is
also included this will SEGFAULT (both NGPT and Linuxthreads in same
image). 

With the LD_LIBRARY_PATH and LD_PRELOAD this should have been
/usr/lib/libpthread.so.0 (NGPT), is there not a link in /usr/lib as
libpthread.so.0 to libpthread.so.22.0.20? This is what I would have
expected and would have resulted in a fully NGPT image.

Dave Howell

These are my opinions and not official opinions of Intel Corp.

David Howell
Intel Corporation
Telco Server Development
Server Products Division
Voice: (803) 461-6112  Fax: (803) 461-6292

Intel Corporation
Columbia Design Center, CBA-2
250 Berryhill Road, Suite 100
Columbia, SC 29210

[email protected]


-----Original Message-----
From: Mark Hounschell [mailto:[email protected]] 
Sent: Saturday, January 11, 2003 2:10 PM
To: [email protected]
Subject: [pthreads-users] segfaults

I'm running a 2.4.20 kernel on a SuSE 8.1 box. The futex-2.4.19 patch
applied but had to make a couple changes by hand. No biggie. Built,
installed, then rebooted the new kernel after adding the
ngptinit command to my /etc/init.d/boot.local file and doing Then I did
the following:
 
rpm -Uvh ngpt-2.2.0-1.src.rpm
rpm -ba /usr/src/packages/SPEC/ngpt.spec
rpm -Uvh --replacefiles
/usr/src/packages/RPMS/i386/ngpt-2.2.0-1.i386.rpm
rpm -Uvh --replacefiles
/usr/src/packages/RPMS/i386/ngpt-devel-2.2.0-1.i386.rpm

I rebuilt the rpms because I wasn't sure what gcc rev was used. I wanted
to make sure it was with gcc-3.2.. I tried the original rpms first with
the same results as below.

Reboot.......

Then I recompiled my app. It compiled and linked ok.. Then I did..

export LD_LIBARARY_PATH="/usr/lib:/lib:$LD_LIBARARY_PATH"
export LD_PRELOAD=libpthread.so.0

Then I  ldd v67
harley:/home/markh/work/lcrs # ldd v67
        libpthread.so.0 => /lib/libpthread.so.0 (0x4002b000) 
        libdl.so.2 => /lib/libdl.so.2 (0x40040000)
        libpthread.so.22 => /usr/lib/libpthread.so.22 (0x40043000)
        librt.so.1 => /lib/librt.so.1 (0x400f9000)
        libm.so.6 => /lib/libm.so.6 (0x4010a000)
        libc.so.6 => /lib/libc.so.6 (0x4012d000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


 
My app segfaults ...
harley:/home/markh/work/lcrs # ./v67
Segmentation fault



Here is a short strace...

harley:/home/markh/work/lcrs # strace ./v67
execve("./v67", ["./v67"], [/* 60 vars */]) = 0
uname({sys="Linux", node="harley", ...}) = 0
brk(0)                                  = 0x8148860
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x40013000
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=90309, ...}) = 0
mmap2(NULL, 90309, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300B\0"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=106013, ...}) = 0
mmap2(NULL, 85328, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002b000
mprotect(0x40039000, 27984, PROT_NONE)  = 0
mmap2(0x40039000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xe) = 0x40039000
close(3)                                = 0
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or
directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\31\0\000"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=11832, ...}) = 0
mmap2(NULL, 11544, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40040000
mprotect(0x40042000, 3352, PROT_NONE)   = 0
mmap2(0x40042000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x1) = 0x40042000
close(3)                                = 0
open("/usr/lib/libpthread.so.22", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\207\0"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=270889, ...}) = 0
mmap2(NULL, 745416, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40043000
mprotect(0x40073000, 548808, PROT_NONE) = 0
mmap2(0x40073000, 49152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x2f) = 0x40073000
mmap2(0x4007f000, 499656, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4007f000
close(3)                                = 0
open("/lib/librt.so.1", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\32\0\000"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=33743, ...}) = 0
mmap2(NULL, 68020, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400f9000
mprotect(0x400ff000, 43444, PROT_NONE)  = 0
mmap2(0x400ff000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x6) = 0x400ff000
mmap2(0x40100000, 39348, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40100000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@7\0\000"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=176463, ...}) = 0
mmap2(NULL, 140960, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4010a000
mprotect(0x4012c000, 1696, PROT_NONE)   = 0
mmap2(0x4012c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x21) = 0x4012c000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\205"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1312470, ...}) = 0
mmap2(NULL, 1169856, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x4012d000
mprotect(0x40241000, 39360, PROT_NONE)  = 0
mmap2(0x40241000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x113) = 0x40241000
mmap2(0x40247000, 14784, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40247000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x4024b000
munmap(0x40014000, 90309)               = 0
getrlimit(0x3, 0xbffff36c)              = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) =
0
getpid()                                = 25357
rt_sigaction(SIGRTMIN, {0x400338b0, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x40033950, [], 0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x40033a80, [], 0x4000000}, NULL, 8) = 0
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++



??????

Thanks
Mark
_______________________________________________
pthreads-users mailing list
[email protected]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/pthreads-user
s
_______________________________________________
pthreads-users mailing list
[email protected]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/pthreads-user
s