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

Re: Bug#661283: cmor: FTBFS on kfreebsd-amd64



Hi,

Building cmor 2.8.0-2 fails for me in exactly the same place but with
different error codes.  This is kfreebsd-i386 with up-to-date Wheezy,
running in VirtualBox limited to 512MiB RAM and no swap:

> GNU C (Debian 4.6.2-12) version 4.6.2 (i486-kfreebsd-gnu)
> 	compiled by GNU C version 4.6.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
> warning: GMP header version 5.0.2 differs from library version 5.0.4.
> GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=63924
> Compiler executable checksum: 4df8d7c1419473a950dfe25eff95f5f2
> COLLECT_GCC_OPTIONS='-v' '-D' '_FORTIFY_SOURCE=2' '-I' 'include' '-I' 'include/cdTime' '-L/usr/lib' '-I' '/usr/include' '-L.' '-I' '/usr/include/ossp' '-o' 'ipcc_test_code' '-mtune=generic' '-march=i586'
>  as --32 -o /tmp/cculu0Td.o /tmp/ccwmv5NU.s
> COMPILER_PATH=/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/
> LIBRARY_PATH=/usr/lib/gcc/i486-kfreebsd-gnu/4.6/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/:/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../:/lib/i386-kfreebsd-gnu/:/lib/:/usr/lib/i386-kfreebsd-gnu/:/usr/lib/
> COLLECT_GCC_OPTIONS='-v' '-D' '_FORTIFY_SOURCE=2' '-I' 'include' '-I' 'include/cdTime' '-L/usr/lib' '-I' '/usr/include' '-L.' '-I' '/usr/include/ossp' '-o' 'ipcc_test_code' '-mtune=generic' '-march=i586'
>  /usr/lib/gcc/i486-kfreebsd-gnu/4.6/collect2 --build-id --no-add-needed --eh-frame-hdr -m elf_i386_fbsd --hash-style=both -dynamic-linker /lib/ld.so.1 -o ipcc_test_code /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crt1.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crti.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/crtbegin.o -L/usr/lib -L. -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6 -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu -L/usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../.. -L/lib/i386-kfreebsd-gnu -L/usr/lib/i386-kfreebsd-gnu -lnetcdf /tmp/cculu0Td.o -lcmor -lnetcdf -ludunits2 -lossp-uuid -lm -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i486-kfreebsd-gnu/4.6/crtend.o /usr/lib/gcc/i486-kfreebsd-gnu/4.6/../../../i386-kfreebsd-gnu/crtn.o
> collect2: ld terminated with signal 9 [Killed]
> /bin/sh: 1: ./ipcc_test_code: not found
> make[1]: *** [test_C] Error 127
> make[1]: Leaving directory `/home/steven/cmor-2.8.0'
> dh_auto_test: make -j1 test returned exit code 2
> make: *** [build] Error 2

The linker is killed by OOM-killer, so I also get this in dmesg:

> pid 43009 (ld.bfd.real), uid 1000, was killed: out of swap space

With ktrace/kdump I managed to find this:

>  43009 ld.bfd.real CALL  open(0x8176420,O_RDONLY|O_LARGEFILE,<unused>0)
>  43009 ld.bfd.real NAMI  "./libcmor.a"
>  43009 ld.bfd.real RET   open 9
>  43009 ld.bfd.real CALL  fcntl(0x9,<invalid=1>,0)
>  43009 ld.bfd.real RET   fcntl 0
>  43009 ld.bfd.real CALL  fcntl(0x9,<invalid=2>,FD_CLOEXEC)
>  43009 ld.bfd.real RET   fcntl 0
>  43009 ld.bfd.real CALL  fstat(0x9,0xbfbfdaf0)
>  43009 ld.bfd.real STRU  struct stat {dev=63, ino=147868, mode=-rw-r--r-- , nlink=1, uid=1000, gid=1000, rdev=638888, atime=1330751447, stime=1330751447, ctime=1330751447, birthtime=1330751447, size=978830, blksize=16384, blocks=1952, flags=0x0 }
>  43009 ld.bfd.real RET   fstat 0
>  43009 ld.bfd.real CALL  mmap(0,0x4000,PROT_READ|PROT_WRITE,MAP_ANON|MAP_TYPE|MAP_PRIVATE,0xffffffff,0,0)
>  43009 ld.bfd.real RET   mmap 674934784/0x283ab000
...many more reads...
>  43009 ld.bfd.real RET   read 16384/0x4000
>  43009 ld.bfd.real CALL  read(0x9,0x283a3000,0x4000)
>  43009 ld.bfd.real GIO   fd 9 read 4096 bytes
>  43009 ld.bfd.real RET   read 16384/0x4000
>  43009 ld.bfd.real CALL  lseek(0x9,0x44000,SEEK_SET,0)
>  43009 ld.bfd.real RET   lseek 278528/0x44000
>  43009 ld.bfd.real CALL  lseek(0x9,0x44000,SEEK_SET,0)
>  43009 ld.bfd.real RET   lseek 278528/0x44000
>  43009 ld.bfd.real CALL  mmap(0,0x29fa3000,PROT_READ|PROT_WRITE,MAP_ANON|MAP_TYPE|MAP_PRIVATE,0xffffffff,0,0)
>  43009 ld.bfd.real RET   mmap 675033088/0x283c3000
>  43009 ld.bfd.real PSIG  SIGKILL SIG_DFL

It is trying to map a range 0->0x29fa3000 = ~671MiB bytes which is why
it fails in my VM which has only 512MiB RAM.  The value being requested
as length here appears to be a pointer.

Jakub Wilk wrote:
> FWIW, I can't reproduce this failure on asdfasdf.debian.net.

Maybe it just had more available RAM than the buildds?

Regards,
-- 
Steven Chamberlain
steven@pyro.eu.org


Reply to: