[Aboriginal] Merry christmas, I have found two bugs
Rob Landley
rob at landley.net
Wed Dec 26 13:36:35 PST 2012
On 12/26/2012 02:55:04 PM, Bjørn Forsman wrote:
> Hi,
>
> Since it's christmas and I have som extra time, I thought I'd play a
> bit with aboriginal :-)
Yay! Glad to have you.
> And now I think I've found two bugs. Bug 1 is
> a segmentation fault during system image boot:
>
> $ cd build/system-image-avmv5l
> $ ./run-emulator.sh
> [...]
> Freeing init memory: 96K
> Segmentation fault
> 8139cp 0000:00:0c.0 eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
> Not using distcc.
> Type exit when done.
> (armv5l:1) /home #
>
> Not sure what exactly is segfaulting, but segfault == bug to me. And
> it only happens with ./run-emulator.sh, not ./dev-environment.sh.
There are somewhat different code paths in the init.sh shell script so
it's probably something only running in the first case. I need to
rebuild the armv5l target to test this, that'll take a few minutes...
> And bug 2 is a floating point exception in toybox "ls":
> $ ./dev-environment.sh
> [...]
> Freeing init memory: 96K
> 8139cp 0000:00:0c.0 eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
> EXT4-fs (sdb): mounting ext3 file system using the ext4 subsystem
> EXT4-fs (sdb): recovery complete
> EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: (null)
> Distcc acceleration enabled.
> Type exit when done.
> (armv5l:1) /home # ls
> Floating point exception
> (armv5l:1) /home # toybox ls
> Floating point exception
> (armv5l:1) /home # ls -l
> total 24
> drwx------ 2 root root 12288 2012-12-26 20:39 lost+found
> (armv5l:1) /home #
*boggle* That's... very strange.
(Also, I didn't think ls was using floating point? Quick check says
it's not...)
> The really strange thing (at least to me) is that the floating point
> exception only appears in ./dev-environment.sh, NOT ./run-emulator.sh.
> And it's only "ls" that is broken, "ls -l" is ok.
Very wierd. Lemme see if I can reproduce that... yes I can. And wow,
you're right, it's only happening for dev-environment.sh which should
be TOTALLY unrelated...
wget http://landley.net/aboriginal/strace-armv5l
chmod +x strace-armv5l
./strace /bin/ls
execve("/bin/ls", ["/bin/ls"], [/* 9 vars */]) = 0
brk(0) = 0x932000
brk(0x9324b0) = 0x9324b0
set_tls(0x932490, 0x5124c, 0, 0x1, 0x65fac) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
TCGETS, {B38400 opost isig icanon echo ...}) = 0
getuid32() = 0
geteuid32() = 0
brk(0x9334b0) = 0x9334b0
brk(0x934000) = 0x934000
umask(0) = 022
umask(022) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or
TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=0, ws_col=0, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=0, ws_col=0, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(2, TIOCGWINSZ, {ws_row=0, ws_col=0, ws_xpixel=0, ws_ypixel=0}) = 0
newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=1024, ...}, 0)
= 0
open(".", O_RDONLY|O_LARGEFILE) = 3
dup(3) = 4
fstat64(4, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
fcntl64(4, F_GETFL) = 0x20000 (flags
O_RDONLY|O_LARGEFILE)
getdents64(4, /* 4 entries */, 1024) = 120
newfstatat(4, ".", {st_mode=S_IFDIR|0755, st_size=1024, ...},
AT_SYMLINK_NOFOLLOW) = 0
newfstatat(4, "strace-armv5l", {st_mode=S_IFREG|0755, st_size=329448,
...}, AT_SYMLINK_NOFOLLOW) = 0
newfstatat(4, "..", {st_mode=S_IFDIR|0755, st_size=163, ...},
AT_SYMLINK_NOFOLLOW) = 0
newfstatat(4, "lost+found", {st_mode=S_IFDIR|0700, st_size=12288, ...},
AT_SYMLINK_NOFOLLOW) = 0
getdents64(4, /* 0 entries */, 1024) = 0
close(4) = 0
gettid() = 49
tgkill(49, 49, SIGFPE) = 0
--- SIGFPE {si_signo=SIGFPE, si_code=SI_TKILL, si_pid=49, si_uid=0} ---
+++ killed by SIGFPE +++
Floating point exception
So it's getting a ways into ls. Looks like it manages the whole dirtree
and then dies on the way back. Hmmm...
Thanks for the heads up, I'm going to chew on these for a bit...
Rob
1356557795.0
More information about the Aboriginal
mailing list