|Summary:||ASTERISK-07529: IAX Channel audio stuck if realtime asterisk ge a database lock an wait for update or insert|
|Date Opened:||2006-08-14 04:11:14||Date Closed:||2006-08-14 10:54:04|
|Description:||All open IAX connections got a pause after 1 second if a realtime asterisk wait for insert a cdr or will update sipfriends. The audio on all channels will continue after asterisk have completed the locked sql transaction. This will happen if any timeintensive select is on any table in the database default (asterisk).|
We have normalized the asterisk db to split it in two dbs. cdrs in one DB and the rest leave in asterisk. this will welp a little but updates un sipfriends are on every register or re-register.
It appear only in IAX channels. SIP channels are not affected. Other channels are not tested
Not really sure if its a bug but the handling in chan_sip seems to be more failtolerant like iax2. Perhaps mysql can be tuned too but not sure.
|Comments:||By: Joshua C. Colp (jcolp) 2006-08-14 10:54:03|
This issue has been solved in trunk, which will become 1.4 by adding multithreaded support to chan_iax2. The issue is that in 1.2 there is only one thread handling all incoming data, so if a handler function has to query realtime and wait - no other packets will be serviced. The changes in trunk's chan_iax2 to implement this were rather major, so they will not be backported to 1.2. The only thing I can suggest is to make sure your database won't wait that long.