Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Segfault on kernel-level

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.08.2003
    Beiträge
    38

    Segfault on kernel-level

    Hallo, wir entwickeln gerade ein Stueck Software und benutzen als Bibliotheken Boost-Serialization, Boost-MPI, MPI und ParMetis.

    Wie das mit C++ halt so ist, bekommen wir ab und an einen Segfault.
    Wir haben einen automatisierten Kompilierlauf mit anschliessenedem Test.
    Dort fangen wir alles, was ein Testprogramm ausgibt ab mit:

    Code:
    if [ true ]; then
        EXEC XXX
    fi &> log
    Damit hatten wir bis jetzt auch alle Seqfaults in den Logs.
    Nun bin ich ueber einen Fehler gestolpert, der weit fieser ist. Im Log taucht nichts auf, keine Meldung von einem Fehler, nichts vom OS.

    Wir haben uns echt gewundert was da passiert und warum der Test sich so still und leise verabschiedet, bis ich im dmesg das hier gefunden habe:

    Code:
    check_indexset[8577]: segfault at 0000000000000008 rip 00000000009c2108 rsp 00007fff319a7e80 error 4
    initial_deploym[8756]: segfault at 0000003e000000f8 rip 0000000000cfd06b rsp 00007fffe86b59e0 error 4
    initial_deploym[8776]: segfault at 0000003e000000f8 rip 0000000000cfd05b rsp 00007fff9c850b80 error 4
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    eth0: too many iterations (6) in nv_nic_irq.
    check_indexset[24773]: segfault at 0000000000000008 rip 00000000009c2108 rsp 00007fff6cc38660 error 4
    initial_deploym[24936]: segfault at 0000003d64697267 rip 0000000000d18de6 rsp 00007fff5f49c900 error 4
    initial_deploym[24952]: segfault at 0000003d64697267 rip 0000000000d18de6 rsp 00007fff94ae4f50 error 4
    check_indexset[10717]: segfault at 0000000000000008 rip 00000000009fa128 rsp 00007fffa912baf0 error 4
    initial_deploym[15588]: segfault at 0000010100000101 rip 0000000001063d16 rsp 00007fff3ab8e040 error 4
    initial_deploym[15605]: segfault at 0000010100000101 rip 0000000001063b66 rsp 00007fff1df3e3f0 error 4
    check_indexset[15758]: segfault at 0000000000000008 rip 00000000009fa128 rsp 00007fff477ec1b0 error 4
    initial_deploym[15909]: segfault at 0000010100000101 rip 0000000001063d16 rsp 00007fff35481930 error 4
    initial_deploym[15926]: segfault at 0000010100000101 rip 0000000001063b66 rsp 00007fff65fa9460 error 4
    check_indexset[28255]: segfault at 0000000000000008 rip 00000000009fbec8 rsp 00007fffad9df3f0 error 4
    initial_deploym[28408]: segfault at 0000000000000002 rip 0000000000e2f94e rsp 00007fff00b4e410 error 4
    initial_deploym[28425]: segfault at 0000000000000002 rip 0000000000e2f94e rsp 00007fff9ba9aea0 error 4
    check_indexset und initial_deployment sind unsere Programme.
    Was fuer ein Fehler muss auftreten, dass er hier ausgegeben wird und gar gar nichts auf der Shell. Ich bin echt ratlos.

    Meine Vermutung ist fast, dass bei Boost und MPI mit der Kommunikation was schieflaeuft.

    Wie kann man hier zur Quelle des Fehlers kommen?

    Danke im Voraus.

    navimarin

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Die Meldung dürfte klar sein es ist dein NVIDIA nForce Ethernet Controller der die Füsse streckt. Siehe in den Kernel Quellen <linux>/drivers/net/forcedeth.c
    Ich schätze mal zu viele Pakete
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.08.2003
    Beiträge
    38
    Hmmm, das ist immerhin ein Anfang, vielen Dank.

    Das erklärt aber nicht so ganz die Segfaults oder? Eigentlich rechnen wir in den Fällen noch nicht parallel, sprich es ist keine Kommunikation nötig. Und wenn doch, dann läuft das alles über 127.0.0.1 also das Loopback, das dürfte die Ethernet-Karte eigentlich nicht jucken.

    Die Segfaults müssen ja derartig böse sein, dass der Kernel die direkt beendet? Ich weiß grad halt nicht ob ich auf Systemseite oder auf Programmseite suchen soll.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Kontrolliere mal die Einstellungen bezüglich User Limits und Core Dumps in der Umgebung in der der Test läuft.

    Vielleicht im Testscript mal ein

    Code:
    ulimit -c unlimited
    machen, damit ein SegFault sicher einen Core Dump macht

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •