Hallo Leute,
ich habe hier seit kurzem SuSE 9.0 Pro installiert (als Update [1]) und
das Problem, dass sich einige Programme mit segfault "verabschieden".
Bisher habe ich das Problem bei den Programmen
sleep, hwclock, ps, awk und cron
festgestellt. Die Ausgabe von strace habe ich unten an die
Mail angehängt [2]
Der Fehler scheint irgendwie mit dem Kernel zusammenzuhängen, da mit
meinem "alten" 2.4.16-vanilla fast alle der o. g. Programme laufen
(außer cron).
Der SuSE-Kernel, der die Probleme macht, ist k_deflt-2.4.21-99.
Beide Kernel werden mit
append = "splash=verbose BOOT_FILE=/boot/vmlinuz vga=771 mem=192M hdc=ide-scsi"
gebootet; eine initrd hat allerdings nur der SuSE-Kernel.
Der Stand der Updates ist vom letzten Sonntag, da war u. a. ein
cron-Update dabei - das hat das Problem aber weder ausgelöst noch
beseitigt. Sprich: der Fehler tritt mit Original-cron (von CD) und auch
mit dem Update (cron-3.0.1-824) auf.
Kennt irgendjemand das Problem oder sogar die Ursache?
Gruß
Christian Boltz
[1] 7.0 -> 7.2 -> 7.3 -> 8.1 -> 8.2 -> 9.0
[2] hier die strace-Logs (jeweils die letzten 20 Zeilen)
==> cron <== (bei beiden getesteten Kerneln gleiche Ausgabe mit Ausnahme der PID)
brk(0x806f564) = 0x806f564
brk(0) = 0x806f564
brk(0x8070000) = 0x8070000
fstat64(3, {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001a000
_llseek(3, 0, [0], SEEK_CUR) = 0
flock(3, LOCK_EX|LOCK_NB) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
_llseek(3, 0, [0], SEEK_SET) = 0
getpid() = 1777
write(3, "1777\n", 5) = 5
_llseek(3, 0, [5], SEEK_CUR) = 0
ftruncate(3, 5) = 0
setresuid32(0xffffffff, 0, 0xffffffff) = 0
stat64("/var/spool/cron", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
chdir("/var/spool/cron") = 0
stat64("tabs", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
fork() = 1778
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(0) = ?
==> hwclock <== (geht nur beim SuSE-Kernel schief)
open("/usr/lib/locale/de_DE/LC_NUMERIC", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
mmap2(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4002f000
close(3) = 0
open("/usr/lib/locale/de_DE@euro/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=207996, ...}) = 0
mmap2(NULL, 207996, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40167000
close(3) = 0
geteuid32() = 0
open("/dev/rtc", O_RDONLY|O_LARGEFILE) = 3
close(3) = 0
stat64("/etc/adjtime", {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
open("/etc/adjtime", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40030000
read(3, "0.000000 1067686982 0.000000\n106"..., 4096) = 44
close(3) = 0
munmap(0x40030000, 4096) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
==> ps <== (Probleme ebenfalls nur beim SuSE-Kernel)
rt_sigaction(SIGABRT, {0x8049850, ~[], SA_RESTORER, 0x4005daa8}, NULL, 8) = 0
rt_sigaction(SIGTRAP, {0x8049850, ~[], SA_RESTORER, 0x4005daa8}, NULL, 8) = 0
rt_sigaction(SIGILL, {0x8049850, ~[], SA_RESTORER, 0x4005daa8}, NULL, 8) = 0
rt_sigaction(SIGHUP, {0x8049850, ~[], SA_RESTORER, 0x4005daa8}, NULL, 8) = 0
open("/proc/self/stat", O_RDONLY) = 3
read(3, "1788 (ps) R 1787 1787 1724 1025 "..., 1023) = 177
close(3) = 0
ioctl(1, TIOCGWINSZ, {ws_row=38, ws_col=118, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE, {B38400 opost isig icanon echo ...}) = 0
geteuid32() = 0
open("/proc/uptime", O_RDONLY) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "287.98 244.74\n", 1023) = 14
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
write(2, "\n\nSignal 11 (SEGV) caught by ps "..., 133) = 133
exit_group(139) = ?
==> sleep <== (und schon wieder nur beim SuSE-Kernel)
mmap2(NULL, 21499, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40028000
close(3) = 0
open("/usr/lib/locale/de_DE.ISO-8859-1/LC_TIME", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/de_DE.iso88591/LC_TIME", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/de_DE/LC_TIME", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2348, ...}) = 0
mmap2(NULL, 2348, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4002e000
close(3) = 0
open("/usr/lib/locale/de_DE.ISO-8859-1/LC_NUMERIC", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/de_DE.iso88591/LC_NUMERIC", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/locale/de_DE/LC_NUMERIC", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
mmap2(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4002f000
close(3) = 0
open("/usr/lib/locale/de_DE@euro/LC_CTYPE", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=207996, ...}) = 0
mmap2(NULL, 207996, PROT_READ, MAP_PRIVATE, 3, 0) = 0x401ef000
close(3) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
--
> > > Liegt nicht an meinem .spec.
> > Das sagt jeder ;-)
> Naja, aber ich zu Recht ;))
Sagt auch jeder ;-) *SCNR*
[> David Haller und Christian Boltz in fontlinge-devel]