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

Random segfaults on OpenPandora



Hi!

First of all, I would like to appologize if I'm not following the
Debian procedure for bug reporting, but I'm currently still trying to
figure out how exactly to do so.

In the meanwhile, I would like to report my result of installing the
armhf arhitecture packages on my OpenPandora. You have probably heard
of that device, and if not, you can check it here -
http://www.openpandora.org - it's an TI OMAP3530, Cortex-A8, with 512
MB RAM. By default it uses an older variant of Armstrong distribution
installed on its NAND, but currently I'm using Slackware on one of my
SD cards that one guy has prepared for pandora.

I have tried installing several variants of armhf arhitecture, using
both debootstrap and cdebootstrap by creating an ext2 FS on my SD
card, mounting it, and then using both (in several different attempts
of course)

(c)debootstrap --foreign --arch=armhf wheezy /media/mysdcard/
ftp://ftp.debian.org/debian

or

(c)debootstrap --foreign --arch=armhf sid /media/mysdcard/
ftp://ftp.debian.org/debian

After (c)debootstrap finishes, I would copy qemu-arm-static onto
/media/mysdcard/usr/bin, and then chroot /media/mysdcard/usr/bin and
do the (c)debootstrap --second-stage

I had issues with cdebootstrap. It would install additional
cdebootstrap helper packages, which would fail to install in full,
especially the cdebootstrap-helper-apt package. Also, I have noticed
that cdebootstrap links /sbin/init onto /sbin/sh, which had me falsely
accuse the kernel for a while. Debootstrap has no such issues.

When second stage finishes, I would add a few more packages (gcc, gdb
etc...). Also, I would copy kernel, modules and firmware from the
slackware that I'm using (it has kernel compiled as an uImage), and
then boot the device, and I would add password for root.

Sometimes the boot goes well, sometimes there are messages "illegal
instruction", "segfault" etc... Almost every time I do get to the
user/pass part, login as root. After which, it depends. Some things
work, some don't but segfault. I have put dump core setup into kernel
using sysctl, and have put the ulimit to unlimited. My usual test are
man pages. Most of the times when I would try any man page, I would
get only two-three lines of the header of the first man page, less
often several man pages properly formatted, and very rarely entire man
pages (if there are more of them).

Currently I have armhf wheezy installed using debootstrap, but since a
lot of times pandora fails to shutdown, I have to do the reset, and
file system gets more and more corrupt, and I think I will soon have
to reformat and reinstall it again, since for some reason I no longer
can install anything using apt or aptitude.

Since I got core dumps from grotty, preconv, and troff, I have
installed libc6-dbg and I'm pasting the results here of the gdb:

/var/log/dumps# gdb /usr/bin/grotty core.grotty.1113
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/grotty...(no debugging symbols found)...done.
[New LWP 1113]
Core was generated by `grotty'.
Program terminated with signal 4, Illegal instruction.
#0  0x0000af3a in ?? ()
(gdb) bt
#0  0x0000af3a in ?? ()
#1  0x0000c076 in ?? ()
#2  0x00009526 in ?? ()
#3  0x4030fcfa in __libc_start_main (main=0x93c1, argc=1,
ubp_av=0xbecc1804, init=<optimized out>, fini=0x113b9,
    rtld_fini=0x4005ed85 <_dl_fini>, stack_end=0xbecc1804) at libc-start.c:228
#4  0x000096fa in ?? ()
#5  0x000096fa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

------

/var/log/dumps# gdb /usr/bin/preconv core.preconv.1070
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/preconv...(no debugging symbols found)...done.
[New LWP 1070]
Core was generated by `preconv -e UTF-8'.
Program terminated with signal 11, Segmentation fault.
#0  __memchr (s=<optimized out>, c_in=<optimized out>, n=3197752904)
at memchr.c:159
159     memchr.c: No such file or directory.
(gdb) bt
#0  __memchr (s=<optimized out>, c_in=<optimized out>, n=3197752904)
at memchr.c:159
#1  0x00009764 in ?? ()
#2  0x0000a4a8 in ?? ()
#3  0x00009246 in ?? ()
#4  0x4025ecfa in __libc_start_main (main=0x90a9, argc=3,
ubp_av=0xbe99d874, init=<optimized out>, fini=0xbf29,
    rtld_fini=0x40054d85 <_dl_fini>, stack_end=0xbe99d874) at libc-start.c:228
#5  0x000092fa in ?? ()
#6  0x000092fa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

------

/var/log/dumps# gdb /usr/bin/preconv core.preconv.1087
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/preconv...(no debugging symbols found)...done.
[New LWP 1087]
Core was generated by `preconv -e UTF-8'.
Program terminated with signal 11, Segmentation fault.
#0  __memchr (s=<optimized out>, c_in=<optimized out>, n=3198686792)
at memchr.c:159
159     memchr.c: No such file or directory.
(gdb) bt
#0  __memchr (s=<optimized out>, c_in=<optimized out>, n=3198686792)
at memchr.c:159
#1  0x00009764 in ?? ()
#2  0x0000a4a8 in ?? ()
#3  0x00009246 in ?? ()
#4  0x40230cfa in __libc_start_main (main=0x90a9, argc=3,
ubp_av=0xbea81874, init=<optimized out>, fini=0xbf29,
    rtld_fini=0x40027d85 <_dl_fini>, stack_end=0xbea81874) at libc-start.c:228
#5  0x000092fa in ?? ()
#6  0x000092fa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

--------

/var/log/dumps# gdb /usr/bin/troff core.troff.1078
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/troff...(no debugging symbols found)...done.
[New LWP 1078]
Core was generated by `troff -mtty-char -mandoc -rLL=97n -rLT=97n -Tascii'.
Program terminated with signal 4, Illegal instruction.
#0  0x0000e5e6 in ?? ()
(gdb) bt
#0  0x0000e5e6 in ?? ()
#1  0x0000efde in ?? ()
#2  0x0001ed66 in ?? ()
#3  0x0001f1ac in ?? ()
#4  0x0000a75a in ?? ()
#5  0x40271cfa in __libc_start_main (main=0x99f9, argc=6,
ubp_av=0xbeed67c4, init=<optimized out>, fini=0x31739,
    rtld_fini=0x400c6d85 <_dl_fini>, stack_end=0xbeed67c4) at libc-start.c:228
#6  0x0000ad56 in ?? ()
#7  0x0000ad56 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

-------

/var/log/dumps# gdb /usr/bin/troff core.troff.1112
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/troff...(no debugging symbols found)...done.
[New LWP 1112]
Core was generated by `troff -mtty-char -mandoc -rLL=97n -rLT=97n -Tascii'.
Program terminated with signal 11, Segmentation fault.
#0  _int_free (av=0x402ed258, p=0x144) at malloc.c:4898
4898    malloc.c: No such file or directory.
(gdb) bt
#0  _int_free (av=0x402ed258, p=0x144) at malloc.c:4898
#1  0x40264032 in __GI___libc_free (mem=<optimized out>) at malloc.c:3738
#2  0x00014b36 in ?? ()
#3  0x00014bba in ?? ()
#4  0x00014c00 in ?? ()
#5  0x000141ac in ?? ()
#6  0x0001994e in ?? ()
#7  0x0001f094 in ?? ()
#8  0x0001f1ac in ?? ()
#9  0x0000a75a in ?? ()
#10 0x40224cfa in __libc_start_main (main=0x99f9, argc=6,
ubp_av=0xbef877c4, init=<optimized out>, fini=0x31739,
    rtld_fini=0x400bfd85 <_dl_fini>, stack_end=0xbef877c4) at libc-start.c:228
#11 0x0000ad56 in ?? ()
#12 0x0000ad56 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

-------

/var/log/dumps# gdb /usr/bin/troff core.troff.1129
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/troff...(no debugging symbols found)...done.
[New LWP 1129]
Core was generated by `troff -mtty-char -mandoc -rLL=97n -rLT=97n -Tascii'.
Program terminated with signal 11, Segmentation fault.
#0  0x006cc08c in ?? ()
(gdb) bt
#0  0x006cc08c in ?? ()
#1  0x0000b400 in ?? ()
#2  0x0000b400 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


I'm fairly familiar with x86 assembler, an beginner in using gdb, and
have never before had experience with ARM assembler, but if you point
me in the right direction, I could probably get more detailed reports.

So far it seems to me that there is an issue with libc, but some other
complex SW works fine (emacs for example). I haven't tried to compile
the kernel on the pandora itself (at least not on the debian armhf
arhitecture). I don't think it is an issue with corrupt SD card (less
than one month old), because every time error is on different place,
but I will try to check that too.

I would just like to mention that while mounted under qemu-arm-static
chroot, most of the stuff works, man pages are displayed properly, and
I have been able to compile the kernel under it (sources from the
openpandora kernel git repository). Ok, from time to time
qemu-arm-static breaks, but I can chroot again. :-)


So, I would like to help make debian armhf functional on openpandora
in any way I can. :-)


Reply to: