Nach Update auf 7 - cron core dumps!

DemonLord

Weeeeee!
Hallo alle!

Seit dem ich von 6.3 auf 7.0 aktualisiert habe, stuerzen alle aufrufe von cron ab, meine dailyruns-mail ist ueberflutet mit:

Code:
+pid 31090 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31181 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31268 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31357 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31451 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31556 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31664 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31746 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31848 (cron), uid 0: exited on signal 11 (core dumped)
+pid 31919 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32040 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32134 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32214 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32295 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32379 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32464 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32538 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32636 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32790 (cron), uid 0: exited on signal 11 (core dumped)
+pid 32906 (cron), uid 0: exited on signal 11 (core dumped)


Wo kann ich da die Brechstange ansetzen, sprich, wie kann ich mir da helfen?

Wie immer vielen Dank!
-Christian.
 
Code:
cd /usr/src/usr.sbin/cron/
make clean
make all install clean

Danach immer noch?

Naja, das System ist ja neu gebaut. und...

Code:
alpha-labs ~ # /etc/rc.d/cron start
Starting cron.
alpha-labs ~ # ps waux | grep cron
root     69521  0.0  0.1  5716  1296  ??  Ss    5:22PM   0:00.00 /usr/sbin/cron -s
root     69523  0.0  0.1  5880  1132  p0  RL+   5:22PM   0:00.00 grep cron

... geht. Es sind anscheinend die child processes die nicht wollen.

-Chris.
 
Ich hab schon manche "frische" System gesehen... oder waren es die Pferde die vor der Apotheke... Da waren dann noch super klasse alte Libs von 2002-2004 im Spiel... :) (da würd ich als nächstes gucken)

Merke: Blödes Problem, erstmal ganz vorsichtig von Vorn anfangen!

PS: die PID vom cron ist verdächtig hoch, also wird er offenbar permanent neu gestartet.
PPS: Vergiss es, hab den cronstart überlesen LOL
 
Zuletzt bearbeitet:
Ich hab schon manche "frische" System gesehen... oder waren es die Pferde die vor der Apotheke... Da waren dann noch super klasse alte Libs von 2002-2004 im Spiel... :) (da würd ich als nächstes gucken)

Merke: Blödes Problem, erstmal ganz vorsichtig von Vorn anfangen!

PS: die PID vom cron ist verdächtig hoch, also wird er offenbar permanent neu gestartet.
PPS: Vergiss es, hab den cronstart überlesen LOL

Also ich hab mal geschaut, die PID vom Cron bleibt gleich, die aendert sich nicht. Da ich securelevel = 2 habe und dies ein (production-) Server ist, starte ich nur sehr ungerne neu. Am besten waere ein debug.log oder aehnliches.

-Christian.
 
Hier ein backtrace eines core dumps von cron:
Code:
gdb /usr/sbin/cron cron.core 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)...
Core was generated by `cron'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libpam.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpam.so.4
Reading symbols from /lib/libutil.so.7...(no debugging symbols found)...done.
Loaded symbols for /lib/libutil.so.7
Reading symbols from /lib/libc.so.7...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /usr/lib/pam_nologin.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_nologin.so.4
Reading symbols from /usr/lib/pam_opie.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_opie.so.4
Reading symbols from /usr/lib/libopie.so.5...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libopie.so.5
Reading symbols from /lib/libmd.so.4...(no debugging symbols found)...done.
Loaded symbols for /lib/libmd.so.4
Reading symbols from /usr/lib/pam_opieaccess.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_opieaccess.so.4
Reading symbols from /usr/lib/pam_unix.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_unix.so.4
Reading symbols from /lib/libcrypt.so.4...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypt.so.4
Reading symbols from /usr/lib/libypclnt.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libypclnt.so.3
Reading symbols from /usr/lib/pam_login_access.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_login_access.so.4
Reading symbols from /usr/lib/pam_permit.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/pam_permit.so.4
Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols found)...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x0000000800907913 in strcasecmp () from /lib/libc.so.7
(gdb) bt
#0  0x0000000800907913 in strcasecmp () from /lib/libc.so.7
#1  0x000000080143bee4 in pam_sm_acct_mgmt () from /usr/lib/pam_login_access.so.4
#2  0x000000080143c3c7 in login_access () from /usr/lib/pam_login_access.so.4
#3  0x000000080143bf2f in pam_sm_acct_mgmt () from /usr/lib/pam_login_access.so.4
#4  0x000000080143c222 in login_access () from /usr/lib/pam_login_access.so.4
#5  0x000000080143be03 in pam_sm_acct_mgmt () from /usr/lib/pam_login_access.so.4
#6  0x000000080063d381 in openpam_dispatch () from /usr/lib/libpam.so.4
#7  0x0000000000403b18 in ?? ()
#8  0x000000000040480a in ?? ()
#9  0x0000000000404913 in ?? ()
#10 0x0000000000402c18 in ?? ()
#11 0x00000000004028c3 in ?? ()
#12 0x000000080052f000 in ?? ()
#13 0x0000000000000000 in ?? ()
#14 0x0000000000000000 in ?? ()
#15 0x0000000000000004 in ?? ()
#16 0x00007fffffffee30 in ?? ()
#17 0x00007fffffffee3f in ?? ()
#18 0x00007fffffffee42 in ?? ()
#19 0x00007fffffffee45 in ?? ()
#20 0x0000000000000000 in ?? ()
#21 0x00007fffffffee4a in ?? ()
#22 0x00007fffffffee62 in ?? ()
#23 0x00007fffffffee7c in ?? ()
#24 0x00007fffffffee87 in ?? ()
#25 0x00007fffffffee95 in ?? ()
#26 0x00007fffffffee9f in ?? ()
#27 0x00007fffffffeeaa in ?? ()
#28 0x00007fffffffeebf in ?? ()
#29 0x00007fffffffef10 in ?? ()
#30 0x00007fffffffef2a in ?? ()
#31 0x00007fffffffef36 in ?? ()
#32 0x00007fffffffef4b in ?? ()
#33 0x00007fffffffef6b in ?? ()
#34 0x00007fffffffef73 in ?? ()
#35 0x00007fffffffef7e in ?? ()
#36 0x00007fffffffef8b in ?? ()
#37 0x00007fffffffef9c in ?? ()
#38 0x0000000000000000 in ?? ()
#39 0x0000000000000003 in ?? ()

Kann einer damit was anfangen?

-Christian.
 
Was Kamikaze damit sagen will :) , ist:

cd /usr/src
make delete-old-libs

Wenn das nicht funzt, ist was mit deinem Sourcentree nicht okay...
 
Ich musste vor der Ausführung von "make delete-old-libs", libtool aus den Ports neu bauen.
Darf ich kurz nach der Ursache hierfür fragen? Ich habe nämlich vermutlich ein ähnliches Problem, weiß aber noch nicht die Ursache. Evtl. löst dies mein Problem (das ich aktuell mangels Zugriff auf den Rechner nicht genauer erklären kann).

Gruß
 
@Columbo0815

Die Ursache waren 2 Fehlermeldungen nach dem Aufruf von "portupgrade -fa". Vor "portupgrade -fa" hatte ich "cd /usr/src, yes | make delete-old und yes | make delete-old-libs" gemacht.
Fehlermeldungen (sinngemäß):
1. /usr/libexec/ld-elf.so.1 verlangte nach einer libc.so.6 GPL Version 2.4.2 (was aber nicht zum Abbruch der Kompilierung führte)
2. "/usr/bin/ld: cannot find -lgcc_pic" und das bauen des Ports wurde mit error abgebrochen

Dann habe ich im Internet den PR "www.freebsd.org/cgi/query-pr.cgi?pr=113172" gefunden, libtool neu gebaut, compat6x neu gebaut und nocheinmal "yes | make delete-old-libs" gemacht, und dann ging "portupgrade -fa" ohne Fehler.
 
morromett;1781432. "[B schrieb:
/usr/bin/ld: cannot find -lgcc_pic[/B]" und das bauen des Ports wurde mit error abgebrochen
Genau das ist mein Fehler. Du bist mein Held! :)

Danke! (natürlich auch an den Live-Support im IRC die letzten Tage von verschiedenen Leuten)

Gruß
 
Was Kamikaze damit sagen will :) , ist:

cd /usr/src
make delete-old-libs

Wenn das nicht funzt, ist was mit deinem Sourcentree nicht okay...

okay hab das gemacht. Zwei fragen direkt:
Wie kann man angeben das er "einfach alles" loescht?

Denn, 2. Frage:
Woher soll ich wissen, ob die lib noch gebraucht wird? Ich kann ja nicht alle ldd's von allen binaries auswendig wissen!

Optionale, 3. Frage:
Gibt es sowas wie "revdep-rebuild" unter linux? Das tool untersucht alle dateien mit ldd und baut die pakete neu, dessen ldd's auf ungueltige libs verweisen. Eigentlich recht sinnvoll.
 
Wenn du compat6x installiert hast fallen die Programme dann darauf zurück. Was deutlich sicherer ist als die alten zu verwenden.

Wenn du einen mergemaster gemacht hast, solltest du alles löschen können, aber du wirst tortzdem bei jeder einzelnen Datei gefragt.

Mit
# yes | make delete-old
# yes | make delete-old-libs
kann man die Abfrage übergehen.
 
Hier ist ein debug output von Cron:
Code:
[1753] do_command(    /root/bin/dnrd-test.sh, (*system*,0,0))
[1753] main process returning to work
[1753] do_command(date >> ~/log.txt, (chris,1001,1001))
[1753] main process returning to work
[1889] child_process('    /root/bin/dnrd-test.sh')
[1890] child_process('date >> ~/log.txt')
[1890] checking account with PAM
[1891] grandchild process Vfork()'ed
log_it: (root 1891) CMD (    /root/bin/dnrd-test.sh)
[1889] child continues, closing pipes
[1889] child reading output from grandchild
[1889] got EOF from grandchild
[1889] waiting for grandchild #2 to finish
[1889] grandchild #1891 finished, status=0000
[1889] waiting for grandchild #1 to finish
[1889] no more grandchildren--mail written?
[1889] child process done, exiting
[1753] sigchld...pid #1889 died, stat=0
[1753] sigchld...pid #1890 died, stat=0
[1753] sigchld...no children

Hilfe!

-Chris
 
Wenn du compat6x installiert hast fallen die Programme dann darauf zurück. Was deutlich sicherer ist als die alten zu verwenden.

Wenn du einen mergemaster gemacht hast, solltest du alles löschen können, aber du wirst tortzdem bei jeder einzelnen Datei gefragt.

Mit
# yes | make delete-old
# yes | make delete-old-libs
kann man die Abfrage übergehen.


Hab ich gemacht,

Code:
ldd /usr/sbin/cron
/usr/sbin/cron:
        libpam.so.4 => /usr/lib/libpam.so.4 (0x800639000)
        libutil.so.7 => /lib/libutil.so.7 (0x800741000)
        libc.so.7 => /lib/libc.so.7 (0x80084f000)

Da cron wohl aus den src'en gebaut wird, sollte es doch immer aktuelle libs benutzen, oder?

-Chris.
 
Eigentlich schon, aber ich habe mit Libraries schon so allerhand Murks erlebt.

Was den Log angeht. Für mich sieht es so aus als würde nicht Cron, sondern der Job den es ausführt sterben. Kann mich aber auch irren, ich verwende Cron eigentlich nicht.
 
Zurück
Oben