More info on cron oopsing in 2.1.50

Ben Clifford (benc@dass.prestel.co.uk)
Tue, 19 Aug 1997 15:32:55 +0000 (GMT)


My cron died of an oops yesterday. The system is still up and is still
functioning ok apart from this problem.

Whenever I try to run cron again, it oopses each time.

I have now discovered that the oops appears to be releated to the
directory /var/spool/cron/tabs - it is possible to do
ls /var/spool/cron
and
cat /var/spool/cron/log
but, doing
ls -l /var/spool/cron
causes an oops in ls.

Script started on Tue Aug 19 15:26:44 1997
dass benc$ sh
dass benc$ ls /var/spool/cron
log tabs
dass benc$ ls -l /var/spool/cron
Segmentation fault
dass benc$ sh
dass benc$ strace ls -l /var/spool/cron
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|0x20, 4294967295, 0) = 0x40006000
mprotect(0x8000000, 21088, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=5346, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
mmap(0, 5346, PROT_READ, MAP_SHARED, 3, 0) = 0x40007000
close(3) = 0
open("/lib/libc.so.5.4.17", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3"..., 4096) = 4096
mmap(0, 786432, PROT_NONE, MAP_PRIVATE|0x20, 4294967295, 0) = 0x40009000
mmap(0x40009000, 553899, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40009000
mmap(0x40091000, 19916, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x87000) = 0x40091000
mmap(0x40096000, 205872, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|0x20, 4294967295, 0) = 0x40096000
close(3) = 0
mprotect(0x40009000, 553899, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
munmap(0x40007000, 5346) = 0
mprotect(0x8000000, 21088, PROT_READ|PROT_EXEC) = 0
mprotect(0x40009000, 553899, PROT_READ|PROT_EXEC) = 0
SYS_136(0, 0x3, 0xc, 0x40001fb0, 0x8000ca8) = 0
geteuid() = 100
getuid() = 100
getgid() = 501
getegid() = 501
brk(0x8006788) = 0x8006788
brk(0x8007000) = 0x8007000
open("/usr/share/locale/locale.alias", O_RDONLY) = -1 EACCES (Permission denied)
open("/usr/share/i18n/locale.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES", O_RDONLY) = -1 EACCES (Permission denied)
open("/usr/share/locale/en/LC_MESSAGES", O_RDONLY) = -1 EACCES (Permission denied)
time(NULL) = 872004442
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
stat("/etc/locale/C/libc.cat", 0xbffff818) = -1 ENOENT (No such file or directory)
stat("/usr/lib/locale/C/libc.cat", 0xbffff818) = -1 ENOENT (No such file or directory)
stat("/usr/lib/locale/libc/C", 0xbffff818) = -1 ENOENT (No such file or directory)
stat("/usr/share/locale/C/libc.cat", 0xbffff818) = -1 EACCES (Permission denied)
stat("/usr/local/share/locale/C/libc.cat", 0xbffff818) = -1 ENOENT (No such file or directory)
brk(0x8009000) = 0x8009000
lstat("/var/spool/cron", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
stat("/var/spool/cron", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
open("/var/spool/cron", O_RDONLY) = 3
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
brk(0x800b000) = 0x800b000
SYS_141(0x3, 0x80087e8, 0x1000, 0x3, 0x80087c0) = 60
lstat("/var/spool/cron/tabs", <unfinished ...>
+++ killed by SIGSEGV +++
dass benc$ exit
dass benc$ exit
dass benc$
Script done on Tue Aug 19 15:27:25 1997

The oops is:
Unable to handle kernel paging request at virtual address 1be8844c
current->tss.cr3 = 00ad5000, %cr3 = 00ad5000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c012fdf8>]
EFLAGS: 00010206
eax: 1be88400 ebx: c03b2ec0 ecx: c01be68c edx: c03b2ec0
esi: c05737df edi: c03b2ec0 ebp: 0800683c esp: c0ad7fb0
ds: 0018 es: 0018 ss: 0018
Process ls (pid: 14418, process nr: 15, stackpage=c0ad7000)
Stack: c0ad6000 0800683c 0800880e bffffcc4 c0109af8 bffffc60 0800683c bffffc60
0800683c 0800880e bffffcc4 ffffffda 0000002b 0000002b 0000006b 40070d27
00000023 00000246 bffffc44 0000002b
Call Trace: [<c0109af8>]
Code: 8b 40 4c 85 c0 74 11 56 ff d0 89 c3 83 c4 04 eb 09 8d b4 26

Using `/boot/2.1.50.map' to map addresses to symbols.

>>EIP: c012fdf8 <sys_newlstat+98/100>
Trace: c0109af8 <tracesys+18/26>

Code: c012fdf8 <sys_newlstat+98/100> movl 0x4c(%eax),%eax
Code: c012fdfb <sys_newlstat+9b/100> testl %eax,%eax
Code: c012fdfd <sys_newlstat+9d/100> je c012fe10 <sys_newlstat+b0/100>
Code: c012fdff <sys_newlstat+9f/100> pushl %esi
Code: c012fe00 <sys_newlstat+a0/100> call *%eax
Code: c012fe02 <sys_newlstat+a2/100> movl %eax,%ebx
Code: c012fe04 <sys_newlstat+a4/100> addl $0x4,%esp
Code: c012fe07 <sys_newlstat+a7/100> jmp c012fe12 <sys_newlstat+b2/100>
Code: c012fe09 <sys_newlstat+a9/100> leal 0x90909000(%esi,1),%esi


--
PGP 0xD4C9C0B1 http://www.geocities.com/SiliconValley/Lakes/7456/
1269kb of spam & junk filtered; Linux 2.1.50 on dass up for 38 hours