Bug#387498: Unable to reproduce - mips/mipsel? 2.4/2.6 kernel difference?
found 387498 2.3.2.ds1-22sarge3
close 2.3.999.2-11
thanks
I am able to reproduce this bug, but on mipsel only. I am using a 2.6.17
64-bit kernel.
First I have found the bug is also present in the glibc from sarge, but
fixed in the glibc from experimental.
Then I have done an strace:
execve("./t", ["./t", "echo g"], [/* 22 vars */]) = 0
svr4_syscall() = -1 ERRNO_4122 (Unknown error 4122)
svr4_syscall() = -1 ERRNO_4045 (Unknown error 4045)
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabf000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=43831, ...}) = 0
old_mmap(NULL, 43831, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2aac0000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
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\10\0\1\0\0\0\224V\1"..., 512) = 512
lseek(3, 628, SEEK_SET) = 628
read(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\4\0\0\0"..., 32) = 32
fstat64(3, {st_mode=S_IFREG|0755, st_size=1466936, ...}) = 0
old_mmap(NULL, 1650416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2ab00000
mprotect(0x2ac47000, 311024, PROT_NONE) = 0
old_mmap(0x2ac87000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x147000) = 0x2ac87000
old_mmap(0x2ac91000, 7920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ac91000
close(3) = 0
mprotect(0x2ac87000, 28672, PROT_READ) = 0
mprotect(0x2aafe000, 4096, PROT_READ) = 0
munmap(0x2aac0000, 43831) = 0
brk(0) = 0x441000
brk(0x462000) = 0x462000
rt_sigaction(SIGPROF, {0x10000000, ~[], SA_STACK|SA_INTERRUPT|0x2be22d0}, {SIG_DFL}, 16) = 0
setitimer(ITIMER_PROF, {it_interval={0, 1}, it_value={0, 1}}, {it_interval={0, 0}, it_value={0, 0}}) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 16) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 16) = ? ERESTARTNOINTR (To be restarted)
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 16) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 16) = 0
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
fork() = ? ERESTARTNOINTR (To be restarted)
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
fork() = ? ERESTARTNOINTR (To be restarted)
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
fork() = ? ERESTARTNOINTR (To be restarted)
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
sigreturn() = ? (mask now [RT_37 RT_40 RT_41 RT_44 RT_45 RT_46 RT_50 RT_52 RT_55 RT_65 RT_66 RT_67 RT_68 RT_69 RT_70 RT_71])
--- SIGPROF (Profiling timer expired) @ 0 (0) ---
On Mon, Oct 02, 2006 at 11:19:11AM -0400, Camm Maguire wrote:
> Greetings, and thanks for looking into this! It is still there on the
> sid dchroot on vaughan:
>
> camm@vaughan:~$ cat t.c
> int
> main(int argc,char * argv[]) {return system(argv[1]);}
> camm@vaughan:~$ cc -g t.c -o t
> camm@vaughan:~$ ./t "echo g"
> g
> camm@vaughan:~$ cc -g -pg t.c -o t
> camm@vaughan:~$ ./t "echo g"
>
>
>
> [1]+ Stopped ./t "echo g"
> camm@vaughan:~$ camm@vaughan:~$ kill %1
>
>
> [1]+ Stopped ./t "echo g"
> camm@vaughan:~$ [1]+ Terminated ./t "echo g"
> camm@vaughan:~$ gdb ./t
> GNU gdb 6.4.90-debian
> Copyright (C) 2006 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "mipsel-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".
>
> (gdb) r "echo g"
> Starting program: /home/camm/t "echo g"
> l
>
> Program received signal SIGINT, Interrupt.
> 0x2aba1c44 in fork () from /lib/libc.so.6
> (gdb) 1 int
> 2 main(int argc,char * argv[]) {return system(argv[1]);}
> (gdb) bt
> #0 0x2aba1c44 in fork () from /lib/libc.so.6
> #1 0x2ab3bda0 in strtold_l () from /lib/libc.so.6
> #2 0x00000000 in ?? ()
> (gdb) disassemble
> Dump of assembler code for function fork:
> 0x2aba1c10 <fork+0>: lui gp,0xf
> 0x2aba1c14 <fork+4>: addiu gp,gp,21024
> 0x2aba1c18 <fork+8>: addu gp,gp,t9
> 0x2aba1c1c <fork+12>: addiu sp,sp,-32
> 0x2aba1c20 <fork+16>: sw ra,28(sp)
> 0x2aba1c24 <fork+20>: sw s0,24(sp)
> 0x2aba1c28 <fork+24>: sw gp,16(sp)
> 0x2aba1c2c <fork+28>: lw v0,-32664(gp)
> 0x2aba1c30 <fork+32>: lw a0,-30344(gp)
> 0x2aba1c34 <fork+36>: lw t9,0(v0)
> 0x2aba1c38 <fork+40>: nop
> 0x2aba1c3c <fork+44>: bnez t9,0x2aba1c80 <fork+112>
> 0x2aba1c40 <fork+48>: nop
> 0x2aba1c44 <fork+52>: li v0,4002
> 0x2aba1c48 <fork+56>: syscall
> 0x2aba1c4c <fork+60>: lw t9,-32680(gp)
> 0x2aba1c50 <fork+64>: bnez a3,0x2aba1c68 <fork+88>
> 0x2aba1c54 <fork+68>: move s0,v0
> 0x2aba1c58 <fork+72>: lw ra,28(sp)
> 0x2aba1c5c <fork+76>: lw s0,24(sp)
> 0x2aba1c60 <fork+80>: jr ra
> 0x2aba1c64 <fork+84>: addiu sp,sp,32
> ---Type <return> to continue, or q <return> to quit---
>
>
> 0x2aba1c68 <fork+88>: jalr t9
> 0x2aba1c6c <fork+92>: nop
> 0x2aba1c70 <fork+96>: lw gp,16(sp)
> 0x2aba1c74 <fork+100>: sw s0,0(v0)
> 0x2aba1c78 <fork+104>: b 0x2aba1c58 <fork+72>
> 0x2aba1c7c <fork+108>: li v0,-1
> 0x2aba1c80 <fork+112>: lw ra,28(sp)
> 0x2aba1c84 <fork+116>: lw s0,24(sp)
> 0x2aba1c88 <fork+120>: jr t9
> 0x2aba1c8c <fork+124>: addiu sp,sp,32
> End of assembler dump.
> (gdb) (gdb) (gdb) shell
> camm@vaughan:~$ ldd ./t
> libc.so.6 => /lib/libc.so.6 (0x2ab00000)
> /lib/ld.so.1 (0x2aaa8000)
> camm@vaughan:~$ dpkg -l libc6
> uname -a
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name Version Description
> +++-==============-==============-============================================
> ii libc6 2.3.6.ds1-4 GNU C Library: Shared libraries
> camm@vaughan:~$ Linux vaughan 2.6.17.7 #2 Mon Jul 31 12:08:35 EDT 2006 mips GNU/Linux
> camm@vaughan:~$
>
> Take care,
>
> Thiemo Seufer <ths@networkno.de> writes:
>
> > Steve McIntyre wrote:
> > > I've tried to look into this on my mips machine, but all seems to work
> > > as expected:
> > >
> > > steve@mallet:~$ zless /usr/share/doc/libc6/changelog.Debian.gz
> > > steve@mallet:~$ cat >t.c
> > > int
> > > main(int argc,char * argv[]) {return system(argv[1]);}
> > > steve@mallet:~$ cc -g t.c -o t
> > > steve@mallet:~$ ./t "echo g"
> > > g
> > > steve@mallet:~$ cc -g -pg t.c -o t
> > > steve@mallet:~$ ./t "echo g"
> > > g
> > > steve@mallet:~$ dpkg -s libc6 | grep Version:
> > > Version: 2.3.6.ds1-4
> > >
> > > One difference to point out is that I'm using a 2.6 kernel on this
> > > machine:
> > > steve@mallet:~$ uname -a
> > > Linux mallet 2.6.16-1-r5k-ip32 #1 Mon Apr 3 18:39:05 UTC 2006 mips64
> > > GNU/Linux
> > >
> > > which might explain it. I don't have any mipsen running 2.4 atm. Camm,
> > > can you still reproduce this?
> > >
> > > Ah, hang on - you reported this on vaughan, which is mips*el*. It
> > > seems to be locked down atm, so I can't take a look myself atm on
> > > there...
> >
> > I couldn't reproduce it on mipsel/unstable with 2.4.27 kernel.
> > Camm, can you try gdb and/or strace on the testcase?
> >
> >
> > Thiemo
> >
> >
> >
> >
>
> --
> Camm Maguire camm@enhanced.com
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
>
>
> --
> To UNSUBSCRIBE, email to debian-glibc-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
>
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
Reply to: