FINALLY! Re: linux32 breakage in current..

John Baldwin jhb at freebsd.org
Wed Aug 30 19:33:30 UTC 2006


On Wednesday 30 August 2006 15:09, Steve Kargl wrote:
> On Wed, Aug 30, 2006 at 02:04:53PM -0400, John Baldwin wrote:
> > On Wednesday 30 August 2006 13:09, Steve Kargl wrote:
> > > On Tue, Aug 29, 2006 at 07:28:58PM -0400, John Baldwin wrote:
> > > > 
> > > > But when you add printf's linux_ipc() isn't being called?  *sigh*  Try
> > > > this anyway:
> > > > 
> > > > Index: linux32_machdep.c
> > > > ===================================================================
> > > > RCS file: /host/cvs/usr/cvs/src/sys/amd64/linux32/linux32_machdep.c,v
> > > > retrieving revision 1.17
> > > > diff -u -r1.17 linux32_machdep.c
> > > 
> > > The printf is not triggered. :(  I did a ktrace of acroread.  kdump 
> > > shows
> > 
> > You have to use linux_kdump with ktrace.out from a linux binary.  But,
> > you still get segfaults with this patch in place?  This patch just
> > puts Giant around the one system call that the cvsup changes you
> > pointed out removed it from. :(  IOW, it's just another way of removing
> > undoing the cvsup changes.
> 
> Yes, acroread still segfaults with your patch applied.
> 
> I did not know I needed linux_kdump.  Here's the end of the
> linux_kdump output.
> 
>   1332 bash     CALL  linux_fork
>   1332 bash     RET   linux_fork 1337/0x539
>   1332 bash     CALL  linux_rt_sigprocmask(0x2,0xffffcff0,0,0x8)
>   1332 bash     RET   linux_rt_sigprocmask 0
>   1332 bash     CALL  linux_rt_sigaction(0x11,0xffffcf10,0xffffce80,0x8)
>   1332 bash     RET   linux_rt_sigaction 0
>   1332 bash     CALL  close(0x4)
>   1332 bash     RET   close 0
>   1332 bash     CALL  read(0x3,0xffffd070,0x80)
>   1332 bash     GIO   fd 3 read 36 bytes
>        "/usr/X11R6/Adobe/Acrobat7.0/ENU/bin
>        "
>   1332 bash     RET   read 36/0x24
>   1332 bash     CALL  read(0x3,0xffffd070,0x80)
>   1332 bash     GIO   fd 3 read 0 bytes
>        ""
>   1332 bash     RET   read 0
>   1332 bash     CALL  close(0x3)
>   1332 bash     RET   close 0
>   1332 bash     PSIG  SIGCHLD caught handler=0x8076c60 mask=0x0 code=0x0
>   1332 bash     CALL  linux_wait4(0xffffffff,0xffffce00,0x1,0)
>   1332 bash     RET   linux_wait4 1337/0x539
>   1332 bash     CALL  linux_wait4(0xffffffff,0xffffce00,0x1,0)
>   1332 bash     RET   linux_wait4 -1 errno 10 No child processes
>   1332 bash     PSIG  SIGSEGV SIG_DFL
>   1332 bash     NAMI  "bash.core"
> 
> I've put the ktrace.out file at
> 
> http://troutmask.apl.washington.edu/~kargl/ktrace.out
> 
> if it will help you out.

You have to use ktrace -i because bash forks children and the last one gets a 
SIG11 from a child process that dies and kills the parent.  Still, I've 
stared at these before and been none the wiser.  However, it doesn't make 
_any_ sense that the cvsup changes you mentioned fix it and the patch 
doesn't, because the patch does the _same_ thing.

-- 
John Baldwin


More information about the freebsd-amd64 mailing list