Asterisk Crasht fast täglich

back2live

Neuer User
Mitglied seit
16 Okt 2008
Beiträge
104
Punkte für Reaktionen
0
Punkte
16
Hallo,

nun läuft der Server schon ein paar Tage und es kommt fas Täglich vor das der Asterisk Prozess crasht. Außer am Wochenende da ist keine Last.

Ich habe Ubuntu Server 10.04 Lucid 64Bit laufen
Hardware ist MSI mit ECC RAM

Asterisk ist die aktuelle 1.8er version von asterisk.org.
Asterisk 1.8.11.0-1digium1~lucid built by pbuilder @ nighthawk on a x86_64 running Linux on 2012-04-03 13:58:20 UTC
Ok seit Heute oder Gestern gibt es die 1.8.11.1 habe noch nicht upgedated.

Beim Crash habe ich in /tmp ein Dump file, mit gdb angeschaut finde ich jedoch nichts aussagekräftiges. Im syslog steht garnichts.
Gestartet wird asterisk als dienst mit safe_asterisk. console=no habe ich auch schon versucht.

Sollte ich auf eine 1.6er Version wechseln? Welche Version gelten als Stabiler?

viele Grüße
Andi
 
Zuletzt bearbeitet:
Komme leider nicht weiter. Ich habe jetzt die 1.8.11.1 installiert. Jetzt auch selbst kompiliert, alle Module sind aus der selben Version.
Chan_capi ist auch selbst kompiliert aus dem Paket welches bei dem Dialogic Paket dabei ist.


Manchmal gibts in dem kern.log einen eintrag:
May 3 17:50:45 asterisk kernel: [78957.809768] asterisk[25407]: segfault at 7f5e00000010 ip 00007f6030d0e277 sp 00007f5fff291350 error 6 in libc-2.11.1.so[7f6030c93000+17a000]
May 4 11:34:42 asterisk kernel: [142586.973529] asterisk[25430]: segfault at 7fe900000010 ip 00007fea3b16b277 sp 00007fea384b3c50 error 6 in libc-2.11.1.so[7fea3b0f0000+17a000]


mit gdb den dump angeschaut ergibt beim backtrace:

Code:
(gdb) bt
#0  0x00007f93249e0a75 in raise () from /lib/libc.so.6
#1  0x00007f93249e45c0 in abort () from /lib/libc.so.6
#2  0x00007f9324a1a74b in ?? () from /lib/libc.so.6
#3  0x00007f9324a24806 in ?? () from /lib/libc.so.6
#4  0x00007f9324a2b0d3 in free () from /lib/libc.so.6
#5  0x00000000004ba257 in ?? ()
#6  0x000000000051a56a in ?? ()
#7  0x00007f932403d9ca in start_thread () from /lib/libpthread.so.0
#8  0x00007f9324a93cdd in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb)

der letzte Rest wenns crasht sieht so aus:
    -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/53-0000000e", "1?Set(CALLERID(all)=123212310)") in new stack
    -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/53-0000000e", "1?Set(CALLERID(all)=1232123153)") in new stack
    -- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/53-0000000e", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:16] ExecIf("SIP/53-0000000e", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
    -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/53-0000000e", "0?sub-flp-2,s,1") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("SIP/53-0000000e", "OUTNUM=123401726") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("SIP/53-0000000e", "custom=AMP") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/53-0000000e", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))") in new stack
    -- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/53-0000000e", "0?Set(DIAL_TRUNK_OPTIONS=M(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:17] Macro("SIP/53-0000000e", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/53-0000000e", "") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/53-0000000e", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:19] GotoIf("SIP/53-0000000e", "1?customtrunk") in new stack
    -- Goto (macro-dialout-trunk,s,23)
    -- Executing [s@macro-dialout-trunk:23] Set("SIP/53-0000000e", "pre_num=AMP:CAPI/ISDN1/") in new stack
    -- Executing [s@macro-dialout-trunk:24] Set("SIP/53-0000000e", "the_num=OUTNUM") in new stack
    -- Executing [s@macro-dialout-trunk:25] Set("SIP/53-0000000e", "post_num=/bo") in new stack
    -- Executing [s@macro-dialout-trunk:26] GotoIf("SIP/53-0000000e", "1?outnum:skipoutnum") in new stack
    -- Goto (macro-dialout-trunk,s,27)
    -- Executing [s@macro-dialout-trunk:27] Set("SIP/53-0000000e", "the_num=123401726") in new stack
    -- Executing [s@macro-dialout-trunk:28] Dial("SIP/53-0000000e", "CAPI/ISDN1/123401726/bo,300,") in new stack
    -- ISDN1#11: * Sending CALLED/CONNECTED NAME 80 'ISDN1'
    -- Called CAPI/ISDN1/123401726/bo
    -- CAPI/ISDN1#11/123401726-d is making progress passing it to SIP/53-0000000e
  == ISDN1#11: Setting up echo canceller (PLCI=0xb01, function=1, options=4, tail=0)
  == ISDN1#11: Setting up DTMF detector (PLCI=0xb01, flag=1)
    -- ISDN1#11: Echo canceller successfully set up (PLCI=0xb01)
    -- CAPI/ISDN1#11/123401726-d is ringing
    -- CAPI/ISDN1#11/123401726-d answered SIP/53-0000000e
  == Spawn extension (macro-dial-one, s, 42) exited non-zero on 'CAPI/ISDN1#12/432167-c' in macro 'dial-one'
  == Spawn extension (macro-exten-vm, s, 7) exited non-zero on 'CAPI/ISDN1#12/432167-c' in macro 'exten-vm'
  == Spawn extension (from-did-direct, 67, 2) exited non-zero on 'CAPI/ISDN1#12/432167-c'
    -- Executing [h@from-did-direct:1] Macro("CAPI/ISDN1#12/432167-c", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("CAPI/ISDN1#12/432167-c", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] Hangup("CAPI/ISDN1#12/432167-c", "") in new stack
  == Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'CAPI/ISDN1#12/432167-c' in macro 'hangupcall'
  == Spawn extension (from-did-direct, h, 1) exited non-zero on 'CAPI/ISDN1#12/432167-c'
  == ISDN1#12: CAPI Hangingup for PLCI=0x4d01 in state 1
       > ISDN1#12: CAPI INFO 0x3490: Normal call clearing
asterisk*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
root@asterisk:~#

wie kann ich weiterkommen?

viele Grüße
Andi
 
Zuletzt bearbeitet:
Wie ist denn der Status von libc6? Sind irgendwelche Abhänigigkeiten nicht erfüllt oder gibt es Kollisionen?
 
mit apt-get install sieht alles ok aus, akuteller Stand.

Kann ich das noch irgendwie anders Prüfen?
 
nun läuft der Server schon ein paar Tage und es kommt fas Täglich vor das der Asterisk Prozess crasht. Außer am Wochenende da ist keine Last.

Ich habe Ubuntu Server 10.04 Lucid 64Bit laufen
Hardware ist MSI mit ECC RAM

..hast den schon mal die Hardware geprüft?
 
Die Hardware ist eigentlich neu, Intel Core i3 3,4 GHz, explizit habe ich noch keinen Hardwaretest gemacht, die selbe Kombi der Komponeten läuft jedoch bei anderen PCs problemlos.
 
.. Neues muss nicht immer OK sein. Asterisk chrasht nicht so ohne weiteres. Solltest die Hardware checken
 
Habe jetzt eine weile memtester laufen lassen.
Code:
root@asterisk:~# memtester 3584m
memtester version 4.1.2 (64-bit)
Copyright (C) 2009 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 3584MB (3758096384 bytes)
got  3584MB (3758096384 bytes), trying mlock ...locked.
Loop 1:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok

Loop 2:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  
.....
Loop 10:
  Stuck Address       : ok
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok
  Block Sequential    : ok
  Checkerboard        : ok
  Bit Spread          : ok
  Bit Flip            : ok
  Walking Ones        : ok
  Walking Zeroes      : ok

Ok ist jetzt zwar kein memtest86, ich glaube aber im Moment noch nicht das es an der Hardware liegt. den Test werde ich aber noch nachholen.

Jetzt hab ich nochmal alles aufgeräumt und durchkompiliert icl. Diva treibern, capi, dahdi, asterisk, mal schauen was es nun macht.
 
Welche wieviele Endgeräte, wie viele subscriptions/hints konfiguriert?
 
15 Analoge über Grandstream GXW4024, Sip Telefone auch Grandstream.
59 Hints. Ca 1-2 Watcher im Schnitt pro Account.
 
Zwischenzeitlich gab es einen neuen Kernel 2.6.32-41 von Ubuntu und ich habe chan_capi vom svn v948 aktualisiert.

Jetzt ist es so das der Asterisk nicht mehr crasht sondern in den selben Abständen keine externen Telefonate mehr möglich sind eingehend und ausgehend.
Somit denke ich das es irgendwo an den Karten Treibern oder der chan_capi liegt.
Tippe eher auf chan_capi. Füher als der asterisk noch crashte wurde nur der asterisk prozess neu gestartet danach gings wieder, der Diva Treiber wurde da ja nicht neu geladen.

Leider hab ich den Fehler noch nicht selber analysieren können da er dann vom Kollegen neu gestartet wurde.

Das scheint es aber nicht zu sein:
http://divachancapi.blogspot.de/2011/10/bug-in-asterisk-18.html
Die Änderungen sind in meiner Asterisk Version schon eingepflegt.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.