[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: