Subject: Re: openoffice2-bin on amd64
To: Steven M. Bellovin <smb@cs.columbia.edu>
From: Nicolas Joly <njoly@pasteur.fr>
List: pkgsrc-users
Date: 12/27/2007 15:51:27
On Wed, Dec 26, 2007 at 02:55:31PM +0100, Nicolas Joly wrote:
> On Tue, Dec 25, 2007 at 12:47:16PM -0500, Steven M. Bellovin wrote:
> > I tried installing openoffice2-bin on an amd64 (since, per another
> > thread, compiling the native version doesn't work).  It dumps core,
> > twice:
> > 
> > terminate called after throwing an instance of 'std::bad_alloc'
> >   what():  St9bad_alloc
> > [1]   Abort trap (core dumped) "${sd_prog}/java...
> > terminate called after throwing an instance of 'std::bad_alloc'
> >   what():  St9bad_alloc
> > [1]   Abort trap (core dumped) "${sd_prog}/${sd...
> 
> Seems to be an unexpected mmap2 syscall failure under compat linux32.
> 
>  18361      1 javaldx  CALL  mmap2(0,0x10000,3,0x22,0xffffffff,0)
>  18361      1 javaldx  RET   mmap2 -1 errno -22 Invalid argument
>  18361      1 javaldx  CALL  mmap2(0,0x10000,3,0x22,0xffffffff,0)
>  18361      1 javaldx  RET   mmap2 -1 errno -22 Invalid argument
> 
> I'll try to have a look.

This is a regression ... An isolated testcase works fine on an old
4.99.36 kernel i have, but indeed not on a recent -current.

The problem comes from the flags arguments (0x22 = MAP_ANON +
MAP_PRIVATE) which is correct in linux32_sys_mmap2, but disappear when
linux_sys_mmap2 is called; and is replaced by the file descriptor
value of -1 !!!

linux32_sys_mmap2 addr=0x0, len=0x1000, prot=0x3, flags=0x22, fd=0xffffffff, offset=0x0
linux_sys_mmap2 addr=0x0, len=0x1000, prot=0x3, flags=0xffffffff, fd=0x0, offset=0xffffffff80419f25
sys_mmap invalid flags ... 5139

Not sure what's going on there yet, but that's weird.

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.