[Home]

Summary:ASTERISK-13226: Address out of bounds in queue_log using transfer
Reporter:Matt Riddell (zx81)Labels:
Date Opened:2008-12-15 20:31:53.000-0600Date Closed:2009-01-14 18:15:27.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 14086.patch
( 1) 14086v2.patch
Description:This system has been up without problems for around 100 days until this week at which stage it has crashed twice:

#0  0xb7dcd463 in strlen () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7da1164 in vfprintf () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7da62e2 in fprintf () from /lib/tls/i686/cmov/libc.so.6
#3  0x080aff57 in ast_queue_log (queuename=0x18 <Address 0x18 out of bounds>, callid=0xb7e8 <Address 0xb7e8 out of bounds>,
   agent=0x8cfd518 "SIP/8780", event=0xb749ffee "TRANSFER", fmt=0xb749ffe0 "%s|%s|%ld|%ld") at logger.c:359
#4  0xb7491933 in queue_transfer_fixup (data=0x8c9bf90, old_chan=0xb5fbb868, new_chan=0xb5f9fef0) at app_queue.c:2582
ASTERISK-1  0x0808428d in ast_do_masquerade (original=0xb5f9fef0) at channel.c:3537
ASTERISK-2  0x080867d9 in __ast_read (chan=0xb5f9fef0, dropaudio=0) at channel.c:1971
ASTERISK-3  0x08089822 in ast_channel_bridge (c0=0xb5f9fef0, c1=0xb5f9fef0, config=0xb6af8e7c, fo=0xb6af7f88, rc=0xb6af7f84)
   at channel.c:2366
ASTERISK-4  0xb7c5659d in ast_bridge_call (chan=0xb5f9fef0, peer=0x8d830c0, config=0xb6af8e7c) at res_features.c:1486
ASTERISK-5  0xb7b4d37d in dial_exec_full (chan=0xb5f9fef0, data=<value optimized out>, peerflags=0xb6af8f44, continue_exec=0x0)
   at app_dial.c:1775
ASTERISK-6 0xb7b4d7e2 in dial_exec (chan=0xb5f9fef0, data=0xb6afafb8) at app_dial.c:1829
ASTERISK-7 0x080cd947 in pbx_extension_helper (c=0xb5f9fef0, con=0x0, context=0xb5fa0070 "internal", exten=0xb5fa00c0 "10800226440",
   priority=1, label=0x0, callerid=0xb678e7d0 "8721", action=E_SPAWN) at pbx.c:537
ASTERISK-8 0x080cf931 in __ast_pbx_run (c=0xb5f9fef0) at pbx.c:2317
ASTERISK-9 0x080d098e in pbx_thread (data=0xb5f9fef0) at pbx.c:2621
ASTERISK-10 0x080ff5d0 in dummy_start (data=0xb64b1070) at utils.c:912
ASTERISK-11 0xb7f12240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-12 0xb7e2d49e in clone () from /lib/tls/i686/cmov/libc.so.6

and

#0  0xb7ddb43b in strlen () from /lib/tls/i686/cmov/libc.so.6
#1  0xb7daf164 in vfprintf () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7db42e2 in fprintf () from /lib/tls/i686/cmov/libc.so.6
#3  0x080aff57 in ast_queue_log (queuename=0x20c62e <Address 0x20c62e out of bounds>,
   callid=0x493ece85 <Address 0x493ece85 out of bounds>, agent=0xcd87eb0 "SIP/8846", event=0xb74e9fee "TRANSFER",
   fmt=0xb74e9fe0 "%s|%s|%ld|%ld") at logger.c:359
#4  0xb74db933 in queue_transfer_fixup (data=0xd2b21b0, old_chan=0xdc9d218, new_chan=0xdc73aa8) at app_queue.c:2582
ASTERISK-1  0x0808428d in ast_do_masquerade (original=0xdc73aa8) at channel.c:3537
ASTERISK-2  0x080867d9 in __ast_read (chan=0xdc73aa8, dropaudio=0) at channel.c:1971
ASTERISK-3  0x08089822 in ast_channel_bridge (c0=0xdc73aa8, c1=0xdc73aa8, config=0xb4efae7c, fo=0xb4ef9fa8, rc=0xb4ef9fa4)
   at channel.c:2366
ASTERISK-4  0xb7c6459d in ast_bridge_call (chan=0xdc73aa8, peer=0xdc79a50, config=0xb4efae7c) at res_features.c:1486
ASTERISK-5  0xb7b9737d in dial_exec_full (chan=0xdc73aa8, data=<value optimized out>, peerflags=0xb4efaf44, continue_exec=0x0)
   at app_dial.c:1775
ASTERISK-6 0xb7b977e2 in dial_exec (chan=0xdc73aa8, data=0xb4efcfb8) at app_dial.c:1829
ASTERISK-7 0x080cd947 in pbx_extension_helper (c=0xdc73aa8, con=0x0, context=0xdc73c28 "internal", exten=0xdc73c78 "5765", priority=1,
   label=0x0, callerid=0xdc00e90 "8897", action=E_SPAWN) at pbx.c:537
ASTERISK-8 0x080cf931 in __ast_pbx_run (c=0xdc73aa8) at pbx.c:2317
ASTERISK-9 0x080d098e in pbx_thread (data=0xdc73aa8) at pbx.c:2621
ASTERISK-10 0x080ff5d0 in dummy_start (data=0x91d8e50) at utils.c:912
ASTERISK-11 0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-12 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6
Comments:By: Matt Riddell (zx81) 2008-12-15 20:35:54.000-0600

Hmmm, I wonder if this is related to 13047

By: Matt Riddell (zx81) 2008-12-15 20:39:00.000-0600

Thing is, we're using AddQueueMember etc with SIP/xxx, not local dialplan

By: Matt Riddell (zx81) 2008-12-15 20:48:25.000-0600

The revision we're running is actually since that patch

By: Matt Riddell (zx81) 2008-12-16 06:38:50.000-0600

Any ideas as to where I might look or information I could provide?

By: Mark Michelson (mmichelson) 2008-12-16 10:06:38.000-0600

Is this related to issue ASTERISK-13204? I'm curious to know if the datastore handling that was fixed there was the same underlying issue for this crash.

By: Matt Riddell (zx81) 2008-12-16 14:47:45.000-0600

There's no mention of the datastore in that backtrace, should I apply the patch anyway and see what happens?

By: Matt Riddell (zx81) 2008-12-16 14:50:32.000-0600

I tried applying the patch but it failed with lots of chunks.  Have updated the system to latest 1.4 svn - will need to wait for some down time to restart - unless it crashes :)

By: Matt Riddell (zx81) 2008-12-18 12:02:44.000-0600

Ok, I've restarted the system with latest 1.4 svn.  Am about 4 hours from their opening hours.  Will update once I see how things go.

By: Amilcar S Silvestre (amilcar) 2008-12-28 19:25:44.000-0600

Any news, ZX81?

By: Matt Riddell (zx81) 2009-01-11 18:19:12.000-0600

Still crashing.

Will upload cores.

By: Matt Riddell (zx81) 2009-01-11 18:24:43.000-0600

bt says:

#0  0x08080158 in ast_channel_datastore_find (chan=0xb681b360, info=0xb74bb104, uid=0x0) at channel.c:1409
#1  0xb74b0e60 in try_calling (qe=0xb6c88d90, options=<value optimized out>, announceoverride=0x0, url=0x0, tries=0xb6c88f30,
   noption=0xb6c88f2c, agi=0x0) at app_queue.c:2636
#2  0xb74b5058 in queue_exec (chan=0xb681b360, data=0xb6c8afb8) at app_queue.c:3999
#3  0x080cd2d7 in pbx_extension_helper (c=0xb681b360, con=0x0, context=0xb681b4e0 "internal", exten=0xb681b530 "379", priority=1,
   label=0x0, callerid=0xb6a7f8b0 "àË£¶@ù§¶\020", action=E_SPAWN) at pbx.c:537
#4  0x080cf7c1 in __ast_pbx_run (c=0xb681b360) at pbx.c:2318
ASTERISK-1  0x080d081e in pbx_thread (data=0xb681b360) at pbx.c:2622
ASTERISK-2  0x08100800 in dummy_start (data=0xb68200a8) at utils.c:850
ASTERISK-3  0xb7ef2240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e0d49e in clone () from /lib/tls/i686/cmov/libc.so.6

By: Matt Riddell (zx81) 2009-01-11 19:51:05.000-0600

Version is Asterisk SVN-branch-1.4-r164806

By: Matt Riddell (zx81) 2009-01-11 20:00:19.000-0600

Channel.c 1409 is:

AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->datastores, datastore, entry) {

app_queue.c 2636 is:

return ast_channel_datastore_find(chan, &queue_transfer_info, NULL) ? 0 : 1;

app_queue.c 3999 is:

/* Try calling all queue members for 'timeout' seconds */
res = try_calling(&qe, args.options, args.announceoverride, args.url, &tries, &noption, args.agi);

pbx.c 537 is:

res = app->execute(c, S_OR(data, ""));

pbx.c 2318 is:

return pbx_extension_helper(c, NULL, context, exten, priority, NULL, callerid, E_SPAWN);

By: Leif Madsen (lmadsen) 2009-01-11 22:03:22.000-0600

Whenever I see "options=<value optimized out>" in a backtrace, from what I can tell that means you need to enable DONT_OPTIMIZE in the compiler flags options.

By: Matt Riddell (zx81) 2009-01-12 14:38:30.000-0600

Can do, just means we need to wait for another system crash of a production system.

By: Matt Riddell (zx81) 2009-01-12 14:40:52.000-0600

Ok recompiled, make installed, just need to wait for another crash or the end of the day before I restart it.  

If anyone can see anything in the meantime it would be great as this means I can test a change without waiting two days.

By: Mark Michelson (mmichelson) 2009-01-12 15:40:59.000-0600

This looks like a case of a datastore being freed but not removed from the datastore list on the channel. I'll see if I can find how this might be happening. I'm assuming the badly behaving datastore is the queue transfer datastore, but I can't really be certain just from what's provided.

By: Mark Michelson (mmichelson) 2009-01-12 15:53:38.000-0600

I have found a potential trouble spot with the queue transfer datastore. I'll upload a patch in just a sec for testing.

By: Mark Michelson (mmichelson) 2009-01-12 15:58:28.000-0600

I found that the queue_transfer_fixup was searching for and removing the queue transfer datastore from the wrong channel. It's hard for me to picture the necessary circumstances for this problem to actually occur, but the code is clearly wrong, and it's the only thing that I see that seems likely to be causing the crash.

Patch 14086.patch corrects this behavior and may fix your crash too. Please let me know if it helps.

By: Matt Riddell (zx81) 2009-01-12 17:10:57.000-0600

Heh, just crashed before applying, so I'll have to wait till tonight to test - will do the make install stuff and get back to you

By: Matt Riddell (zx81) 2009-01-12 17:13:09.000-0600

Ok, applied the patch, (DONT_OPTIMIZE is on now too), so I'll wait for a crash or tonight to restart - the files are in place, so it'll start up with the new version if it does crash.

By: Matt Riddell (zx81) 2009-01-12 19:32:30.000-0600

ok, it's just crashed again, so that patch is live

By: Matt Riddell (zx81) 2009-01-12 20:02:12.000-0600

didn't work - uploading core file

By: Matt Riddell (zx81) 2009-01-12 20:05:56.000-0600

#0  0x0808157c in ast_channel_datastore_free (datastore=0x8290880) at channel.c:1341
       res = 0
#1  0x08081122 in ast_channel_free (chan=0xb6b18218) at channel.c:1243
       fd = 0
       vardata = (struct ast_var_t *) 0x0
       f = (struct ast_frame *) 0x0
       headp = (struct varshead *) 0xb6b1855c
       datastore = (struct ast_datastore *) 0x8290880
       name = "ü1Ú¶Ðô±¶\000\000\000\000\000\000\000\000Ðô±¶8X%\b\230\203±¶¸}%\b\000\017}\000\2301Ú¶ü1Ú¶call,all", '\0' <repeats 27 times>
       dashptr = 0x0
       __PRETTY_FUNCTION__ = "ast_channel_free"
#2  0x08081ec6 in ast_hangup (chan=0xb6b18218) at channel.c:1553
       res = 0
       __PRETTY_FUNCTION__ = "ast_hangup"
#3  0x080c30be in __ast_pbx_run (c=0xb6b18218) at pbx.c:2562
       found = 1
       res = -1
       autoloopflag = 0
       error = 1
       __PRETTY_FUNCTION__ = "__ast_pbx_run"
#4  0x080c328a in pbx_thread (data=0xb6b18218) at pbx.c:2622
       c = (struct ast_channel *) 0xb6b18218
ASTERISK-1  0x08100ac9 in dummy_start (data=0xb6b186c0) at utils.c:850
       _buffer = {__routine = 0x80698c3 <ast_unregister_thread>, __arg = 0xb6da3bb0, __canceltype = -1209005570, __prev = 0x0}
       ret = (void *) 0xb6da3468
       a = {start_routine = 0x80c3273 <pbx_thread>, data = 0xb6b18218,
 name = 0xb6b08c60 "pbx_thread", ' ' <repeats 11 times>, "started at [ 2646] pbx.c ast_pbx_start()"}
ASTERISK-2  0xb7fa5240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
ASTERISK-3  0xb7ec049e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.

By: Matt Riddell (zx81) 2009-01-12 20:32:19.000-0600

cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     E4600  @ 2.40GHz
stepping        : 13
cpu MHz         : 2394.068
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm
bogomips        : 4791.72

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 Duo CPU     E4600  @ 2.40GHz
stepping        : 13
cpu MHz         : 2394.068
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm
bogomips        : 4788.32

cat /proc/version
Linux version 2.6.18-5-686 (Debian 2.6.18.dfsg.1-13etch6) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Tue Dec 18 21:24:20 UTC 2007

cat /proc/meminfo
MemTotal:      1035548 kB
MemFree:        128456 kB
Buffers:        139880 kB
Cached:         422272 kB
SwapCached:          0 kB
Active:         612872 kB
Inactive:       149904 kB
HighTotal:      129964 kB
HighFree:          236 kB
LowTotal:       905584 kB
LowFree:        128220 kB
SwapTotal:    39102136 kB
SwapFree:     39102080 kB
Dirty:            1316 kB
Writeback:           0 kB
AnonPages:      200620 kB
Mapped:          23104 kB
Slab:           113428 kB
PageTables:       1364 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:  39619908 kB
Committed_AS:   410292 kB
VmallocTotal:   114680 kB
VmallocUsed:     24136 kB
VmallocChunk:    89528 kB

cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1]
     39102144 blocks [2/2] [UU]
     
md0 : active raid1 sda1[0] sdb1[1]
     117185984 blocks [2/2] [UU]
     
unused devices: <none>



By: Martin Vit (festr) 2009-01-13 05:35:30.000-0600

Hi

I'm seeing the same crashes with the latest 1.4 svn (i've a slight modified app_queue and channel.c but it crashes with vanilla asterisk too).

edit: and it seems that it crashes when accessing datastor->info structure.


#0  0x08088eb4 in ast_do_masquerade (original=0x8259570) at channel.c:3710
3710                            if (ds->info->chan_fixup)
(gdb) bt
#0  0x08088eb4 in ast_do_masquerade (original=0x8259570) at channel.c:3710
#1  0x08083987 in __ast_read (chan=0x8259570, dropaudio=0) at channel.c:2040
#2  0x080850f6 in ast_read (chan=0x8259570) at channel.c:2434
#3  0xb76df1fc in dial_exec_full (chan=0x0, data=0xb518fdfc, peerflags=0x8259570, continue_exec=0x82bdd50) at app_dial.c:514
#4  0xb76e2af6 in dial_exec_full (chan=0xb7f0ac64, data=0x8291e28, peerflags=0x8259570, continue_exec=0xb5188180) at utils.h:423


another crash

#0  0x08081c36 in ast_channel_datastore_free (datastore=0x8263cb8) at channel.c:1337
1337            if (datastore->info->destroy != NULL && datastore->data != NULL) {
(gdb) bt
#0  0x08081c36 in ast_channel_datastore_free (datastore=0x8263cb8) at channel.c:1337
#1  0x080817f7 in ast_channel_free (chan=0x8333e50) at channel.c:1239
#2  0x080825a6 in ast_hangup (chan=0x8333e50) at channel.c:1549
#3  0x080c3602 in __ast_pbx_run (c=0x8333e50) at pbx.c:2562
#4  0x080c37bc in pbx_thread (data=0x8333e50) at pbx.c:2622
ASTERISK-1  0x081006fa in dummy_start (data=0x834fe00) at utils.c:856
ASTERISK-2  0xb7fb6b63 in start_thread () from /lib/tls/libpthread.so.0
ASTERISK-3  0xb7ee218a in clone () from /lib/tls/libc.so.6


yet another crash

#0  0xb7ddbe84 in _int_free () from /lib/tls/libc.so.6
(gdb) bt
#0  0xb7ddbe84 in _int_free () from /lib/tls/libc.so.6
#1  0xb7ddadcb in free () from /lib/tls/libc.so.6
#2  0xb75c5523 in try_calling (qe=0xb50ca848, options=0xffffffdc <Address 0xffffffdc out of bounds>, announceoverride=0x8289560 "ut", url=0x0, tries=0xb50cc8b8,
   noption=0x80817f7, agi=0x82832f8 "X??`\225(\b?H]?") at utils.h:360
#3  0x08081c59 in ast_channel_datastore_free (datastore=0x82832f8) at channel.c:1338
#4  0x080817f7 in ast_channel_free (chan=0x82db3c8) at channel.c:1239
ASTERISK-1  0x080825a6 in ast_hangup (chan=0x82db3c8) at channel.c:1549
ASTERISK-2  0x080c3602 in __ast_pbx_run (c=0x82db3c8) at pbx.c:2562
ASTERISK-3  0x080c37bc in pbx_thread (data=0x82db3c8) at pbx.c:2622
ASTERISK-4  0x081006fa in dummy_start (data=0x83bd748) at utils.c:856
ASTERISK-5  0xb7f15b63 in start_thread () from /lib/tls/libpthread.so.0
ASTERISK-6 0xb7e4118a in clone () from /lib/tls/libc.so.6



By: Mark Michelson (mmichelson) 2009-01-13 10:07:51.000-0600

All right. Let's synchronize here and make sure that this is all stemming from the same bad handling.

First of all, to ZX81, I hadn't realized when you said you were uploading the core files that you were literally doing that. I thought you were using the term "core" to mean "backtrace." The actual core files are not useful on a machine other than the one that crashed. Uploading backtrace output (as a file upload) would be more useful.

festr: All of those places where the crashes are occurring have to do with datastores, and with the exception of the last one are also indicative that we are accessing a datastore which has been freed but not removed from the channel's list of datastores. The last one looks like a double free of a datastore.

I'll take another look at the datastore handling in app_queue to see if I can see what's going wrong.

By: Matt Riddell (zx81) 2009-01-13 10:50:10.000-0600

bt:

#0  0x0808157c in ast_channel_datastore_free (datastore=0x82ca388) at channel.c:1341
#1  0x08081122 in ast_channel_free (chan=0x82e6378) at channel.c:1243
#2  0x08081ec6 in ast_hangup (chan=0x82e6378) at channel.c:1553
#3  0x080c30be in __ast_pbx_run (c=0x82e6378) at pbx.c:2562
#4  0x080c328a in pbx_thread (data=0x82e6378) at pbx.c:2622
ASTERISK-1  0x08100ac9 in dummy_start (data=0x8296660) at utils.c:850
ASTERISK-2  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-3  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

bt full:

#0  0x0808157c in ast_channel_datastore_free (datastore=0x82ca388) at channel.c:1341
       res = 0
#1  0x08081122 in ast_channel_free (chan=0x82e6378) at channel.c:1243
       fd = 0
       vardata = (struct ast_var_t *) 0x0
       f = (struct ast_frame *) 0x0
       headp = (struct varshead *) 0x82e66bc
       datastore = (struct ast_datastore *) 0x82ca388
       name = "ü±¤¶", '\0' <repeats 20 times>, "ød.\b`k.\b\000\017}\000\230±¤¶ü±¤¶call,all", '\0' <repeats 27 times>
       dashptr = 0x0
       __PRETTY_FUNCTION__ = "ast_channel_free"
#2  0x08081ec6 in ast_hangup (chan=0x82e6378) at channel.c:1553
       res = 0
       __PRETTY_FUNCTION__ = "ast_hangup"
#3  0x080c30be in __ast_pbx_run (c=0x82e6378) at pbx.c:2562
       found = 1
       res = -1
       autoloopflag = 0
       error = 1
       __PRETTY_FUNCTION__ = "__ast_pbx_run"
#4  0x080c328a in pbx_thread (data=0x82e6378) at pbx.c:2622
       c = (struct ast_channel *) 0x82e6378
ASTERISK-1  0x08100ac9 in dummy_start (data=0x8296660) at utils.c:850
       _buffer = {__routine = 0x80698c3 <ast_unregister_thread>, __arg = 0xb6a4bbb0, __canceltype = 0, __prev = 0x0}
       ret = (void *) 0x0
       a = {start_routine = 0x80c3273 <pbx_thread>, data = 0x82e6378,
 name = 0x82c29d8 "pbx_thread", ' ' <repeats 11 times>, "started at [ 2646] pbx.c ast_pbx_start()"}
ASTERISK-2  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
ASTERISK-3  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.

By: Matt Riddell (zx81) 2009-01-13 10:51:54.000-0600

Asterisk SVN-branch-1.4-r164806M built by root @ xxx.venturevoip.com on a i686 running Linux on 2009-01-13 02:34:44 UTC

By: Matt Riddell (zx81) 2009-01-13 10:57:12.000-0600

(gdb) thread apply all bt

Thread 40 (process 26850):
#0  0xb7f3c410 in ?? ()
#1  0xbfec2a88 in ?? ()
#2  0x00000001 in ?? ()
#3  0xbfec2bdb in ?? ()
#4  0xb7f2582b in __read_nocancel () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-1  0x0810a0c1 in read_char (el=0x817d1d8, cp=0xbfec2bdb "\b") at read.c:298
ASTERISK-2  0x08105232 in el_getc (el=0x817d1d8, cp=0xbfec2bdb "\b") at read.c:350
ASTERISK-3  0x0810563b in el_gets (el=0x817d1d8, nread=0xbfec2fd4) at read.c:243
ASTERISK-4  0x08071ed9 in main (argc=4, argv=0xbfec3234) at asterisk.c:3212
ASTERISK-5  0xb7d84ea8 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-6 0x08058131 in ?? () at ../sysdeps/i386/elf/start.S:119

Thread 39 (process 26855):
#0  0xb7f3c410 in ?? ()
#1  0xb7d6e338 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x0806b577 in listener (unused=0x0) at asterisk.c:1000
ASTERISK-2  0x08100ac9 in dummy_start (data=0x817f1c0) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 38 (process 26856):
#0  0xb7f3c410 in ?? ()
#1  0xb7d32408 in ?? ()
#2  0xb7f29ff4 in ?? () from /lib/tls/i686/cmov/libpthread.so.0
#3  0x00000000 in ?? ()

Thread 37 (process 26857):
#0  0xb7f3c410 in ?? ()
#1  0xb7cf63f8 in ?? ()
#2  0x000001cd in ?? ()
#3  0x00000000 in ?? ()

Thread 36 (process 26858):
#0  0xb7f3c410 in ?? ()
#1  0xb7c990c8 in ?? ()
#2  0x00000000 in ?? ()

Thread 35 (process 26859):
#0  0xb7f3c410 in ?? ()
#1  0xb7b9c3a8 in ?? ()
#2  0x000003e8 in ?? ()
---Type <return> to continue, or q <return> to quit---
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080ac6ca in ast_io_wait (ioc=0x8187400, howlong=1000) at io.c:266
ASTERISK-2  0xb7bbe056 in do_monitor (data=0x0) at chan_mgcp.c:3514
ASTERISK-3  0x08100ac9 in dummy_start (data=0x819cc78) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 34 (process 26860):
#0  0xb7f3c410 in ?? ()
#1  0xb7aa5f38 in ?? ()
#2  0x0000270f in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb7b2d25b in pri_dchannel (vpri=0xb7b476e0) at chan_dahdi.c:8686
ASTERISK-2  0x08100ac9 in dummy_start (data=0x819e180) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 33 (process 26861):
#0  0xb7f3c410 in ?? ()
#1  0xb7a69f98 in ?? ()
#2  0x000003e8 in ?? ()
#3  0x00000017 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb7b26b18 in do_monitor (data=0x0) at chan_dahdi.c:6999
ASTERISK-2  0x08100ac9 in dummy_start (data=0x819e240) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 32 (process 26862):
#0  0xb7f3c410 in ?? ()
#1  0xb7a29418 in ?? ()
#2  0xb7a2e108 in ?? () from /usr/lib/asterisk/modules/pbx_spool.so
#3  0x00000000 in ?? ()

Thread 31 (process 26863):
#0  0xb7f3c410 in ?? ()
#1  0xb79cb298 in ?? ()
#2  0x00000000 in ?? ()

Thread 30 (process 26864):
#0  0xb7f3c410 in ?? ()
#1  0xb77173a8 in ?? ()
#2  0x000003e8 in ?? ()
#3  0x00000001 in ?? ()
---Type <return> to continue, or q <return> to quit---
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080ac6ca in ast_io_wait (ioc=0x81ca7d8, howlong=1000) at io.c:266
ASTERISK-2  0xb7722f28 in network_thread (ignore=0x0) at pbx_dundi.c:2161
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81c7078) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 29 (process 26865):
#0  0xb7f3c410 in ?? ()
#1  0xb76db1e8 in ?? ()
#2  0xb7e9cff4 in ?? () from /lib/tls/i686/cmov/libc.so.6
#3  0xb76db1d4 in ?? ()
#4  0xb7dfdab6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb7dfd8db in sleep () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-2  0xb7723217 in process_precache (ign=0x0) at pbx_dundi.c:2239
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81c7208) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 28 (process 26866):
#0  0xb7f3c410 in ?? ()
#1  0xb769f3c8 in ?? ()
#2  0xb7e9cff4 in ?? () from /lib/tls/i686/cmov/libc.so.6
#3  0xb769f3b4 in ?? ()
#4  0xb7dfdab6 in nanosleep () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb7dfd8db in sleep () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-2  0xb77230bb in process_clearcache (ignore=0x0) at pbx_dundi.c:2202
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81cbdc0) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 27 (process 26867):
#0  0xb7f3c410 in ?? ()
#1  0xb75d3358 in ?? ()
#2  0x00000001 in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080ac6ca in ast_io_wait (ioc=0x81e44c0, howlong=1) at io.c:266
ASTERISK-2  0xb761e67c in do_monitor (data=0x0) at chan_sip.c:16222
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81e90b0) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 26 (process 26868):
#0  0xb7f3c410 in ?? ()
#1  0xb757e2b8 in ?? ()
---Type <return> to continue, or q <return> to quit---
#2  0xb757e2ec in ?? ()
#3  0xb757e36c in ?? ()
#4  0xb7e34131 in select () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb75823e9 in ast_select (nfds=43, rfds=0xb757e36c, wfds=0xb757e2ec, efds=0x0, tvp=0x0)
   at /usr/src/asterisk/include/asterisk/channel.h:1349
ASTERISK-2  0xb7582159 in sound_thread (arg=0x81f49d8) at chan_oss.c:629
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81f9bc0) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 25 (process 26869):
#0  0xb7f3c410 in ?? ()
#1  0xb75422b8 in ?? ()
#2  0xb75422ec in ?? ()
#3  0xb754236c in ?? ()
#4  0xb7e34131 in select () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0xb75823e9 in ast_select (nfds=45, rfds=0xb754236c, wfds=0xb75422ec, efds=0x0, tvp=0x0)
   at /usr/src/asterisk/include/asterisk/channel.h:1349
ASTERISK-2  0xb7582159 in sound_thread (arg=0x81f5090) at chan_oss.c:629
ASTERISK-3  0x08100ac9 in dummy_start (data=0x81e8c38) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 24 (process 26870):
#0  0xb7f3c410 in ?? ()
#1  0xb74de3e8 in ?? ()
#2  0x000001c9 in ?? ()
#3  0x00000000 in ?? ()

Thread 23 (process 26871):
#0  0xb7f3c410 in ?? ()
#1  0xb7420418 in ?? ()
#2  0xb74326c8 in ?? () from /usr/lib/asterisk/modules/chan_skinny.so
#3  0xb74203a0 in ?? ()
#4  0xb7f25a48 in accept () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-1  0xb742d47e in accept_thread (ignore=0x0) at chan_skinny.c:4585
ASTERISK-2  0x08100ac9 in dummy_start (data=0x82455b0) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 22 (process 26872):
#0  0xb7f3c410 in ?? ()
#1  0xb73e43a8 in ?? ()
#2  0x000003e8 in ?? ()
#3  0x00000000 in ?? ()

---Type <return> to continue, or q <return> to quit---
Thread 21 (process 26873):
#0  0xb7f3c410 in ?? ()
#1  0xb71fc358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 20 (process 26874):
#0  0xb7f3c410 in ?? ()
#1  0xb71c0358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 19 (process 26875):
#0  0xb7f3c410 in ?? ()
#1  0xb7184358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 18 (process 26876):
#0  0xb7f3c410 in ?? ()
#1  0xb7148358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 17 (process 26877):
#0  0xb7f3c410 in ?? ()
#1  0xb710c358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 16 (process 26878):
#0  0xb7f3c410 in ?? ()
#1  0xb70d0358 in ?? ()
#2  0x0000002f in ?? ()
#3  0x00000000 in ?? ()

Thread 15 (process 26879):
#0  0xb7f3c410 in ?? ()
#1  0xb7094358 in ?? ()
#2  0x0000002d in ?? ()
#3  0x00000000 in ?? ()

Thread 14 (process 26880):
#0  0xb7f3c410 in ?? ()
#1  0xb7058358 in ?? ()
#2  0x0000002d in ?? ()
---Type <return> to continue, or q <return> to quit---
#3  0x00000000 in ?? ()

Thread 13 (process 26881):
#0  0xb7f3c410 in ?? ()
#1  0xb701c358 in ?? ()
#2  0x0000002d in ?? ()
#3  0x00000000 in ?? ()

Thread 12 (process 26882):
#0  0xb7f3c410 in ?? ()
#1  0xb6fe0358 in ?? ()
#2  0x0000002d in ?? ()
#3  0x00000000 in ?? ()

Thread 11 (process 26883):
#0  0xb7f3c410 in ?? ()
#1  0xb6fa43f0 in ?? ()
#2  0x0000065b in ?? ()
#3  0x00000000 in ?? ()

Thread 10 (process 26884):
#0  0xb7f3c410 in ?? ()
#1  0xb6f68388 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000002 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080ac6ca in ast_io_wait (ioc=0x8247930, howlong=-1) at io.c:266
ASTERISK-2  0xb7269998 in network_thread (ignore=0x0) at chan_iax2.c:9236
ASTERISK-3  0x08100ac9 in dummy_start (data=0x8254568) at utils.c:850
ASTERISK-4  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-5  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 9 (process 26885):
#0  0xb7f3c410 in ?? ()
#1  0xb6e4a368 in ?? ()
#2  0x00001388 in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080b9c44 in accept_thread (ignore=0x0) at manager.c:2419
ASTERISK-2  0x08100ac9 in dummy_start (data=0x82748c0) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 8 (process 26886):
#0  0xb7f3c410 in ?? ()
#1  0xb6e0e3e8 in ?? ()
---Type <return> to continue, or q <return> to quit---
#2  0xffffffff in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080702dc in monitor_sig_flags (unused=0x0) at asterisk.c:2661
ASTERISK-2  0x08100ac9 in dummy_start (data=0x8276380) at utils.c:850
ASTERISK-3  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-4  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 7 (process 26893):
#0  0xb7f3c410 in ?? ()
#1  0xb6d574a8 in ?? ()
#2  0x00000297 in ?? ()
#3  0x00000000 in ?? ()

Thread 6 (process 26894):
#0  0xb7f3c410 in ?? ()
#1  0xb6dd1d28 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000001 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080b9569 in get_input (s=0x8254f80, output=0xb6dd1db4 "") at manager.c:2275
ASTERISK-2  0x080b9749 in do_message (s=0x8254f80) at manager.c:2312
ASTERISK-3  0x080b9909 in session_do (data=0x8254f80) at manager.c:2337
ASTERISK-4  0x08100ac9 in dummy_start (data=0x825a158) at utils.c:850
ASTERISK-5  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-6 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 5 (process 27600):
#0  0xb7f3c410 in ?? ()
#1  0xb6af9858 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000002 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080827e9 in ast_waitfor_nandfds (c=0xb6af9ad4, n=2, fds=0x0, nfds=0, exception=0x0, outfd=0x0, ms=0xb6af9ad0)
   at channel.c:1760
ASTERISK-2  0x08082b19 in ast_waitfor_n (c=0xb6af9ad4, n=2, ms=0xb6af9ad0) at channel.c:1822
ASTERISK-3  0x080893be in ast_generic_bridge (c0=0x82c9f90, c1=0x829f720, config=0xb6afa27c, fo=0xb6afa000, rc=0xb6af9ffc, bridge_end=
     {tv_sec = 0, tv_usec = 0}) at channel.c:3948
ASTERISK-4  0x0808a8c0 in ast_channel_bridge (c0=0x82c9f90, c1=0x829f720, config=0xb6afa27c, fo=0xb6afa000, rc=0xb6af9ffc)
   at channel.c:4286
ASTERISK-5  0xb7ca1bbb in ast_bridge_call (chan=0x82c9f90, peer=0x829f720, config=0xb6afa27c) at res_features.c:1570
ASTERISK-6 0xb7bd8376 in dial_exec_full (chan=0x82c9f90, data=0xb6afd008, peerflags=0xb6afaed4, continue_exec=0x0) at app_dial.c:1835
ASTERISK-7 0xb7bd85c2 in dial_exec (chan=0x82c9f90, data=0xb6afd008) at app_dial.c:1882
ASTERISK-8 0x080bdbe8 in pbx_exec (c=0x82c9f90, app=0x819ae70, data=0xb6afd008) at pbx.c:537
ASTERISK-9 0x080c1000 in pbx_extension_helper (c=0x82c9f90, con=0x0, context=0x82ca110 "internal", exten=0x82ca160 "10800750750",
   priority=1, label=0x0, callerid=0x82563d8 "393", action=E_SPAWN) at pbx.c:1863
---Type <return> to continue, or q <return> to quit---
ASTERISK-10 0x080c20b2 in ast_spawn_extension (c=0x82c9f90, context=0x82ca110 "internal", exten=0x82ca160 "10800750750", priority=1,
   callerid=0x82563d8 "393") at pbx.c:2318
ASTERISK-11 0x080c24b8 in __ast_pbx_run (c=0x82c9f90) at pbx.c:2407
ASTERISK-12 0x080c328a in pbx_thread (data=0x82c9f90) at pbx.c:2622
ASTERISK-13 0x08100ac9 in dummy_start (data=0x8257360) at utils.c:850
ASTERISK-14 0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-15 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 4 (process 27873):
#0  0xb7f3c410 in ?? ()
#1  0xb6c4b788 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000004 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080827e9 in ast_waitfor_nandfds (c=0xb6c4ba04, n=2, fds=0x0, nfds=0, exception=0x0, outfd=0x0, ms=0xb6c4ba00)
   at channel.c:1760
ASTERISK-2  0x08082b19 in ast_waitfor_n (c=0xb6c4ba04, n=2, ms=0xb6c4ba00) at channel.c:1822
ASTERISK-3  0x080893be in ast_generic_bridge (c0=0x82557f8, c1=0x82c2a50, config=0xb6c4c19c, fo=0xb6c4bf30, rc=0xb6c4bf2c, bridge_end=
     {tv_sec = 0, tv_usec = 0}) at channel.c:3948
ASTERISK-4  0x0808a8c0 in ast_channel_bridge (c0=0x82557f8, c1=0x82c2a50, config=0xb6c4c19c, fo=0xb6c4bf30, rc=0xb6c4bf2c)
   at channel.c:4286
ASTERISK-5  0xb7ca1bbb in ast_bridge_call (chan=0x82557f8, peer=0x82c2a50, config=0xb6c4c19c) at res_features.c:1570
ASTERISK-6 0xb7bd8376 in dial_exec_full (chan=0x82557f8, data=0xb6c4ef28, peerflags=0xb6c4cdf4, continue_exec=0x0) at app_dial.c:1835
ASTERISK-7 0xb7bd85c2 in dial_exec (chan=0x82557f8, data=0xb6c4ef28) at app_dial.c:1882
ASTERISK-8 0x080bdbe8 in pbx_exec (c=0x82557f8, app=0x819ae70, data=0xb6c4ef28) at pbx.c:537
ASTERISK-9 0x080c1000 in pbx_extension_helper (c=0x82557f8, con=0x0, context=0x8255978 "macro-vis-incoming", exten=0x82559c8 "s",
   priority=3, label=0x0, callerid=0x82fead8 "021585404", action=E_SPAWN) at pbx.c:1863
ASTERISK-10 0x080c20b2 in ast_spawn_extension (c=0x82557f8, context=0x8255978 "macro-vis-incoming", exten=0x82559c8 "s", priority=3,
   callerid=0x82fead8 "021585404") at pbx.c:2318
ASTERISK-11 0xb6f091d6 in _macro_exec (chan=0x82557f8, data=0xb6c54008, exclusive=0) at app_macro.c:308
ASTERISK-12 0xb6f09eef in macro_exec (chan=0x82557f8, data=0xb6c54008) at app_macro.c:486
ASTERISK-13 0x080bdbe8 in pbx_exec (c=0x82557f8, app=0x826cba0, data=0xb6c54008) at pbx.c:537
ASTERISK-14 0x080c1000 in pbx_extension_helper (c=0x82557f8, con=0x0, context=0x8255978 "macro-vis-incoming", exten=0x82559c8 "s",
   priority=1, label=0x0, callerid=0x82fead8 "021585404", action=E_SPAWN) at pbx.c:1863
ASTERISK-15 0x080c20b2 in ast_spawn_extension (c=0x82557f8, context=0x8255978 "macro-vis-incoming", exten=0x82559c8 "s", priority=1,
   callerid=0x82fead8 "021585404") at pbx.c:2318
ASTERISK-16 0x080c24b8 in __ast_pbx_run (c=0x82557f8) at pbx.c:2407
ASTERISK-17 0x080c328a in pbx_thread (data=0x82557f8) at pbx.c:2622
ASTERISK-18 0x08100ac9 in dummy_start (data=0x81e3ce8) at utils.c:850
ASTERISK-19 0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-20 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 3 (process 27949):
#0  0xb7f3c410 in ?? ()
#1  0xb6d13788 in ?? ()
#2  0xffffffff in ?? ()
---Type <return> to continue, or q <return> to quit---
#3  0x00000004 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080827e9 in ast_waitfor_nandfds (c=0xb6d13a04, n=2, fds=0x0, nfds=0, exception=0x0, outfd=0x0, ms=0xb6d13a00)
   at channel.c:1760
ASTERISK-2  0x08082b19 in ast_waitfor_n (c=0xb6d13a04, n=2, ms=0xb6d13a00) at channel.c:1822
ASTERISK-3  0x080893be in ast_generic_bridge (c0=0x830fd08, c1=0x82e8608, config=0xb6d1419c, fo=0xb6d13f30, rc=0xb6d13f2c, bridge_end=
     {tv_sec = 0, tv_usec = 0}) at channel.c:3948
ASTERISK-4  0x0808a8c0 in ast_channel_bridge (c0=0x830fd08, c1=0x82e8608, config=0xb6d1419c, fo=0xb6d13f30, rc=0xb6d13f2c)
   at channel.c:4286
ASTERISK-5  0xb7ca1bbb in ast_bridge_call (chan=0x830fd08, peer=0x82e8608, config=0xb6d1419c) at res_features.c:1570
ASTERISK-6 0xb7bd8376 in dial_exec_full (chan=0x830fd08, data=0xb6d16f28, peerflags=0xb6d14df4, continue_exec=0x0) at app_dial.c:1835
ASTERISK-7 0xb7bd85c2 in dial_exec (chan=0x830fd08, data=0xb6d16f28) at app_dial.c:1882
ASTERISK-8 0x080bdbe8 in pbx_exec (c=0x830fd08, app=0x819ae70, data=0xb6d16f28) at pbx.c:537
ASTERISK-9 0x080c1000 in pbx_extension_helper (c=0x830fd08, con=0x0, context=0x830fe88 "macro-vis-incoming", exten=0x830fed8 "s",
   priority=4, label=0x0, callerid=0x82c9f80 "073789093", action=E_SPAWN) at pbx.c:1863
ASTERISK-10 0x080c20b2 in ast_spawn_extension (c=0x830fd08, context=0x830fe88 "macro-vis-incoming", exten=0x830fed8 "s", priority=4,
   callerid=0x82c9f80 "073789093") at pbx.c:2318
ASTERISK-11 0xb6f091d6 in _macro_exec (chan=0x830fd08, data=0xb6d1c008, exclusive=0) at app_macro.c:308
ASTERISK-12 0xb6f09eef in macro_exec (chan=0x830fd08, data=0xb6d1c008) at app_macro.c:486
ASTERISK-13 0x080bdbe8 in pbx_exec (c=0x830fd08, app=0x826cba0, data=0xb6d1c008) at pbx.c:537
ASTERISK-14 0x080c1000 in pbx_extension_helper (c=0x830fd08, con=0x0, context=0x830fe88 "macro-vis-incoming", exten=0x830fed8 "s",
   priority=1, label=0x0, callerid=0x82c9f80 "073789093", action=E_SPAWN) at pbx.c:1863
ASTERISK-15 0x080c20b2 in ast_spawn_extension (c=0x830fd08, context=0x830fe88 "macro-vis-incoming", exten=0x830fed8 "s", priority=1,
   callerid=0x82c9f80 "073789093") at pbx.c:2318
ASTERISK-16 0x080c24b8 in __ast_pbx_run (c=0x830fd08) at pbx.c:2407
ASTERISK-17 0x080c328a in pbx_thread (data=0x830fd08) at pbx.c:2622
ASTERISK-18 0x08100ac9 in dummy_start (data=0x82c9ae8) at utils.c:850
ASTERISK-19 0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-20 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (process 27964):
#0  0xb7f3c410 in ?? ()
#1  0xb6d8f3c8 in ?? ()
#2  0xffffffff in ?? ()
#3  0x00000004 in ?? ()
#4  0xb7e318f3 in poll () from /lib/tls/i686/cmov/libc.so.6
ASTERISK-1  0x080827e9 in ast_waitfor_nandfds (c=0xb6d8f644, n=2, fds=0x0, nfds=0, exception=0x0, outfd=0x0, ms=0xb6d8f640)
   at channel.c:1760
ASTERISK-2  0x08082b19 in ast_waitfor_n (c=0xb6d8f644, n=2, ms=0xb6d8f640) at channel.c:1822
ASTERISK-3  0x080893be in ast_generic_bridge (c0=0x82cae80, c1=0x829ebd8, config=0xb6d9151c, fo=0xb6d8fb70, rc=0xb6d8fb6c, bridge_end=
     {tv_sec = 0, tv_usec = 0}) at channel.c:3948
ASTERISK-4  0x0808a8c0 in ast_channel_bridge (c0=0x82cae80, c1=0x829ebd8, config=0xb6d9151c, fo=0xb6d8fb70, rc=0xb6d8fb6c)
   at channel.c:4286
ASTERISK-5  0xb7ca1bbb in ast_bridge_call (chan=0x82cae80, peer=0x829ebd8, config=0xb6d9151c) at res_features.c:1570
ASTERISK-6 0xb74eaed5 in try_calling (qe=0xb6d91850, options=0xb6d917fc "", announceoverride=0x0, url=0x0, tries=0xb6d919f0,
   noption=0xb6d919ec, agi=0x0) at app_queue.c:3154
---Type <return> to continue, or q <return> to quit---
ASTERISK-7 0xb74ee0b9 in queue_exec (chan=0x82cae80, data=0xb6d91b1c) at app_queue.c:3999
ASTERISK-8 0x080bdbe8 in pbx_exec (c=0x82cae80, app=0x81e8c08, data=0xb6d91b1c) at pbx.c:537
ASTERISK-9 0xb6e5474f in realtime_exec (chan=0x82cae80, context=0x82cb000 "routing", exten=0x82cb050 "queue-IRD_Help", priority=3,
   callerid=0x82cb3e8 "0", data=0x82a55ad "routing@extensions") at pbx_realtime.c:216
ASTERISK-10 0x080c10dc in pbx_extension_helper (c=0x82cae80, con=0x0, context=0x82cb000 "routing", exten=0x82cb050 "queue-IRD_Help",
   priority=3, label=0x0, callerid=0x82cb3e8 "0", action=E_SPAWN) at pbx.c:1874
ASTERISK-11 0x080c20b2 in ast_spawn_extension (c=0x82cae80, context=0x82cb000 "routing", exten=0x82cb050 "queue-IRD_Help", priority=3,
   callerid=0x82cb3e8 "0") at pbx.c:2318
ASTERISK-12 0x080c24b8 in __ast_pbx_run (c=0x82cae80) at pbx.c:2407
ASTERISK-13 0x080c328a in pbx_thread (data=0x82cae80) at pbx.c:2622
ASTERISK-14 0x08100ac9 in dummy_start (data=0x8276870) at utils.c:850
ASTERISK-15 0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-16 0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (process 27734):
#0  0x0808157c in ast_channel_datastore_free (datastore=0x82ca388) at channel.c:1341
#1  0x08081122 in ast_channel_free (chan=0x82e6378) at channel.c:1243
#2  0x08081ec6 in ast_hangup (chan=0x82e6378) at channel.c:1553
#3  0x080c30be in __ast_pbx_run (c=0x82e6378) at pbx.c:2562
#4  0x080c328a in pbx_thread (data=0x82e6378) at pbx.c:2622
ASTERISK-1  0x08100ac9 in dummy_start (data=0x8296660) at utils.c:850
ASTERISK-2  0xb7f20240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
ASTERISK-3  0xb7e3b49e in clone () from /lib/tls/i686/cmov/libc.so.6

By: Matt Riddell (zx81) 2009-01-13 11:01:15.000-0600

Core dates and times:

2008-12-10T09:02:57+1300
2008-12-16T14:28:07+1300
2008-12-19T16:07:05+1300
2009-01-05T09:11:58+1300
2009-01-06T11:36:32+1300
2009-01-07T11:48:44+1300
2009-01-09T11:56:42+1300
2009-01-12T11:00:31+1300
2009-01-13T11:10:57+1300
2009-01-13T14:30:51+1300
2009-01-13T14:58:27+1300
2009-01-13T16:11:41+1300
2009-01-13T16:20:26+1300

You can see yesterday was the worst (13th)

By: Mark Michelson (mmichelson) 2009-01-13 11:04:53.000-0600

The new crash seems to be another case of the same thing happening, just in a new place now. When a channel is being hung up, we're trying to free a datastore that already was previously freed. The problem is that when we freed it previously, we needed to also remove the datastore from the list so that this wouldn't happen again.

The new backtrace doesn't give a lot of information regarding which datastore carries the problem, although assuming the queue transfer datastore is at fault is not a bad base assumption.

ZX81, I have two requests. One is that for future backtrace uploads, please attach the text as a file upload instead of placing the text directly in notes. The second is, if possible, could you run Asterisk under valgrind? Instructions for how to do it are in doc/valgrind.txt in the Asterisk source directory.

I'll continue looking myself and trying my own valgrind runs, too.

By: Matt Riddell (zx81) 2009-01-13 11:46:50.000-0600

K, will do and am running in valgrind

By: Mark Michelson (mmichelson) 2009-01-13 11:57:54.000-0600

I have uploaded 14086v2.patch which adds some extra locking around datastore operations in app_queue. This patch also contains the contents of 14086.patch, so there is no need to apply them both. Please try the new patch and let me know if the crashes still occur.

By: Matt Riddell (zx81) 2009-01-13 12:21:31.000-0600

Patch in place with traffic starting - will update

By: Matt Riddell (zx81) 2009-01-13 12:28:18.000-0600

Agents starting to log in

By: Matt Riddell (zx81) 2009-01-14 01:43:44.000-0600

Ok, got through the day with no crashes at all.

While it's possible that the problem still exists, we had 5 crashes yesterday, so I'd say it's pretty likely it has gone.

You've got my support on closing this one out, maybe festr wants to try it out too.

If I see the same problem again I can catch you on IRC and get you to reopen it.

Thanks heaps for your attention to this putnopvut!

By: Martin Vit (festr) 2009-01-14 03:03:41.000-0600

Please let this open until confirmation that problem is gone on my system. I'm going to deploy patch and test. I have 20 crashes per day.

By: Martin Vit (festr) 2009-01-14 10:33:20.000-0600

Ok, my production system survived 480 calls without crash today.

By: Kevin Scott Adams (nivek) 2009-01-14 10:53:11.000-0600

I have added the patch to my dev system and have been able to crash every time on an attended transfer.

bACKtRACE'S reveal:
#0  0x00627410 in __kernel_vsyscall ()
#1  0x45713ee9 in raise () from /lib/libc.so.6
#2  0x457154f1 in abort () from /lib/libc.so.6
#3  0x4574853b in __libc_message () from /lib/libc.so.6
#4  0x4574fa68 in _int_free () from /lib/libc.so.6
ASTERISK-1  0x45752f6f in free () from /lib/libc.so.6
ASTERISK-2  0x00b02aaa in queue_transfer_destroy (data=0xb7d00058) at app_queue.c:2813
ASTERISK-3  0x08087246 in ast_channel_datastore_free (datastore=0xb7d53a00) at channel.c:1323
ASTERISK-4  0x080869cb in ast_channel_free (chan=0x8f91ff8) at channel.c:1224
ASTERISK-5  0x08087c4a in ast_hangup (chan=0x8f91ff8) at channel.c:1536
ASTERISK-6 0x080d621f in __ast_pbx_run (c=0x8f91ff8) at pbx.c:2561
ASTERISK-7 0x080d646f in pbx_thread (data=0x8f91ff8) at pbx.c:2621
ASTERISK-8 0x08119d76 in dummy_start (data=0x8f68b08) at utils.c:912
ASTERISK-9 0x458c6433 in start_thread () from /lib/libpthread.so.0
ASTERISK-10 0x457b4a1e in clone () from /lib/libc.so.6

AND

#0  0x08087221 in ast_channel_datastore_free (datastore=0xb7d660a8) at channel.c:1322
1322            if (datastore->info->destroy != NULL && datastore->data != NULL) {
(gdb) bt
#0  0x08087221 in ast_channel_datastore_free (datastore=0xb7d660a8) at channel.c:1322
#1  0x080869cb in ast_channel_free (chan=0x9947590) at channel.c:1224
#2  0x08087c4a in ast_hangup (chan=0x9947590) at channel.c:1536
#3  0x080d621f in __ast_pbx_run (c=0x9947590) at pbx.c:2561
#4  0x080d646f in pbx_thread (data=0x9947590) at pbx.c:2621
ASTERISK-1  0x08119d76 in dummy_start (data=0x9942590) at utils.c:912
ASTERISK-2  0x458c6433 in start_thread () from /lib/libpthread.so.0
ASTERISK-3  0x457b4a1e in clone () from /lib/libc.so.6

AND

#0  0x08087221 in ast_channel_datastore_free (datastore=0xb7d065b8) at channel.c:1322
1322            if (datastore->info->destroy != NULL && datastore->data != NULL) {
(gdb) bt
#0  0x08087221 in ast_channel_datastore_free (datastore=0xb7d065b8) at channel.c:1322
#1  0x080869cb in ast_channel_free (chan=0xb7d27460) at channel.c:1224
#2  0x08087c4a in ast_hangup (chan=0xb7d27460) at channel.c:1536
#3  0x080d621f in __ast_pbx_run (c=0xb7d27460) at pbx.c:2561
#4  0x080d646f in pbx_thread (data=0xb7d27460) at pbx.c:2621
ASTERISK-1  0x08119d76 in dummy_start (data=0xb7d0c1f8) at utils.c:912
ASTERISK-2  0x458c6433 in start_thread () from /lib/libpthread.so.0
ASTERISK-3  0x457b4a1e in clone () from /lib/libc.so.6

Reverting back to new_chan instead of old_chan has resulted in no crashes.

By: Kevin Scott Adams (nivek) 2009-01-14 11:01:33.000-0600

Sorry, I should mention that it is on hangup of the transferred caller.

By: Martin Vit (festr) 2009-01-14 11:15:38.000-0600

nivek: what patch did you applied? 14086.patch or 14086v2.patch?

By: Kevin Scott Adams (nivek) 2009-01-14 11:16:23.000-0600

Sorry, one more thing.  We are doing all attended transfers.  No blind transfers!!!

By: Kevin Scott Adams (nivek) 2009-01-14 11:20:27.000-0600

Crashes occurred with both patches.

By: Mark Michelson (mmichelson) 2009-01-14 12:04:18.000-0600

Let's clear up a few things here:

First off, to ZX81 and festr, I know when we talked on IRC yesterday, both of you discussed running valgrind. Were you running valgrind when you were not having your crashes? It may be that valgrind was preventing the crashes from occurring but they would have occurred when not running it. I would like to see the output from those valgrind runs if you were running it.

nivek: if ZX81 and festr do not have valgrind output from their test runs from yesterday, could you please run Asterisk under valgrind? Instructions for how to do so are in doc/valgrind.txt in the Asterisk source directory.

Thanks.

By: Kevin Scott Adams (nivek) 2009-01-14 13:01:39.000-0600

putnopvut,

What from the valgrind would you like??

By: Kevin Scott Adams (nivek) 2009-01-14 13:05:21.000-0600

1231958718 - New session
1231959226 - New session
WARNING: Freeing unused memory at 0x4de0f00, in ast_channel_datastore_free of channel.c, line 1334
WARNING: Freeing unused memory at 0x41e1ca8, in ast_channel_datastore_free of channel.c, line 1334
1231959483 - New session


This is from /var/log/asterisk/mmlog

By: Kevin Scott Adams (nivek) 2009-01-14 13:07:28.000-0600

Here is from valgrind.txt that last line basically repeats itself.


==22682==    by 0x458C6432: start_thread (in /lib/libpthread-2.4.so)
==22682==    by 0x457B4A1D: clone (in /lib/libc-2.4.so)
==22682==  Address 0x4DE0F04 is 108 bytes inside a block of size 128 free'd
==22682==    at 0x4004E41: free (vg_replace_malloc.c:235)
==22682==    by 0x807447C: __ast_free_region (astmm.c:187)
==22682==    by 0x8074E6E: __ast_free (astmm.c:221)
==22682==    by 0x8089DF0: ast_channel_datastore_free (channel.c:1334)
==22682==    by 0x46165BD: ??? (app_queue.c:3493)
==22682==    by 0x4619BB7: ??? (app_queue.c:4325)
==22682==    by 0x80D414C: pbx_exec (pbx.c:537)
==22682==    by 0x80D7ED1: pbx_extension_helper (pbx.c:1862)
==22682==    by 0x80D925E: ast_spawn_extension (pbx.c:2317)
==22682==    by 0x80D96A6: __ast_pbx_run (pbx.c:2406)
==22682==    by 0x80DA4B9: pbx_thread (pbx.c:2621)
==22682==    by 0x811E29F: dummy_start (utils.c:912)
==22682==
==22682== Invalid read of size 4
==22682==    at 0x8089D9A: ast_channel_datastore_free (channel.c:1328)
==22682==    by 0x80894C9: ast_channel_free (channel.c:1224)
==22682==    by 0x808A7C0: ast_hangup (channel.c:1536)
==22682==    by 0x80DA251: __ast_pbx_run (pbx.c:2561)
==22682==    by 0x80DA4B9: pbx_thread (pbx.c:2621)
==22682==    by 0x811E29F: dummy_start (utils.c:912)
==22682==    by 0x458C6432: start_thread (in /lib/libpthread-2.4.so)
==22682==    by 0x457B4A1D: clone (in /lib/libc-2.4.so)
==22682==  Address 0x4DE0F00 is 104 bytes inside a block of size 128 free'd
==22682==    at 0x4004E41: free (vg_replace_malloc.c:235)
==22682==    by 0x807447C: __ast_free_region (astmm.c:187)
==22682==    by 0x8074E6E: __ast_free (astmm.c:221)
==22682==    by 0x8089DF0: ast_channel_datastore_free (channel.c:1334)
==22682==    by 0x46165BD: ??? (app_queue.c:3493)
==22682==    by 0x4619BB7: ??? (app_queue.c:4325)
==22682==    by 0x80D414C: pbx_exec (pbx.c:537)
==22682==    by 0x80D7ED1: pbx_extension_helper (pbx.c:1862)
==22682==    by 0x80D925E: ast_spawn_extension (pbx.c:2317)
==22682==    by 0x80D96A6: __ast_pbx_run (pbx.c:2406)
==22682==    by 0x80DA4B9: pbx_thread (pbx.c:2621)
==22682==    by 0x811E29F: dummy_start (utils.c:912)
==22793== Warning: invalid file descriptor 1014 in syscall close()
==22793== Warning: invalid file descriptor 1015 in syscall close()
==22793== Warning: invalid file descriptor 1016 in syscall close()
==22793== Warning: invalid file descriptor 1017 in syscall close()

By: Kevin Scott Adams (nivek) 2009-01-14 13:11:36.000-0600

Restoring this patch
       if ((datastore = ast_channel_datastore_find(old_chan, &queue_transfer_info, NULL))) {
               ast_channel_datastore_remove(old_chan, datastore);


to

       if ((datastore = ast_channel_datastore_find(new_chan, &queue_transfer_info, NULL))) {
               ast_channel_datastore_remove(new_chan, datastore);


and I have not crashes!!!

One thing...I took me 3 try's to get it to crash.  The first two under a 'stop now' command the last was a 'restart now'.

Hope this helps.

-nevik

By: Mark Michelson (mmichelson) 2009-01-14 13:30:04.000-0600

nivek: Here is a very important question for you: what version of Asterisk are you using? I realize that the patch here would actually *cause* problems if you are using a released version instead of what is in the current 1.4 svn branch. The reason for this is due to a behavior change that was introduced with channel masquerades that was not properly updated in app_queue. The patch I attached here accounts for that change in channel masquerade behavior, but would actually cause problems if applied to a version of Asterisk which did not have the masquerade behavior change (which includes releases up to 1.4.22).

By: Kevin Scott Adams (nivek) 2009-01-14 14:25:02.000-0600

Yes.  I am at 1.4.22!  Sorry!

By: Mark Michelson (mmichelson) 2009-01-14 14:27:18.000-0600

Phew, that's a relief! :)

All right, so based on both ZX81 and festr reporting that there are no crashes, I'll wait until the end of my working day (GMT 23:30, 14 Jan) and commit the patch if I hear nothing new before then.

By: Matt Riddell (zx81) 2009-01-14 14:28:06.000-0600

Nah, in the end I put my faith in your patch and ran without valgrind - worried also about degradation. So the lack of crashes was without valgrind.  I also upgraded to latest 1.4 svn as the second patch had the last two chunks fail without doing so.

By: Kevin Scott Adams (nivek) 2009-01-14 14:29:04.000-0600

Sorry about that I did not know there was underlying changes to channel masquerades.  Only reason I interjected was because of my change.  I thought I did something wrong with my original patch (No Karma for me)

By: Mark Michelson (mmichelson) 2009-01-14 14:30:19.000-0600

nivek: there really was no way you could have known about the underlying changes unless you have been monitoring Asterisk commits closely, so don't feel bad about it.

By: Mark Michelson (mmichelson) 2009-01-14 18:09:09.000-0600

Just letting everyone know that I'll be committing the patch here to 1.4 now. Thank you all very much for providing me with the information I needed to fix this.

By: Digium Subversion (svnbot) 2009-01-14 18:11:02.000-0600

Repository: asterisk
Revision: 168628

U   branches/1.4/apps/app_queue.c

------------------------------------------------------------------------
r168628 | mmichelson | 2009-01-14 18:11:02 -0600 (Wed, 14 Jan 2009) | 16 lines

Fix some crashes from bad datastore handling in app_queue.c

* The queue_transfer_fixup function was searching for and removing
 the datastore from the incorrect channel, so this was fixed.

* Most datastore operations regarding the queue_transfer datastore
 were being done without the channel locked, so proper channel locking
 was added, too.

(closes issue ASTERISK-13226)
Reported by: ZX81
Patches:
     14086v2.patch uploaded by putnopvut (license 60)
Tested by: ZX81, festr


------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=168628

By: Digium Subversion (svnbot) 2009-01-14 18:14:18.000-0600

Repository: asterisk
Revision: 168629

_U  trunk/
U   trunk/apps/app_queue.c

------------------------------------------------------------------------
r168629 | mmichelson | 2009-01-14 18:14:17 -0600 (Wed, 14 Jan 2009) | 24 lines

Merged revisions 168628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r168628 | mmichelson | 2009-01-14 18:11:01 -0600 (Wed, 14 Jan 2009) | 16 lines

Fix some crashes from bad datastore handling in app_queue.c

* The queue_transfer_fixup function was searching for and removing
 the datastore from the incorrect channel, so this was fixed.

* Most datastore operations regarding the queue_transfer datastore
 were being done without the channel locked, so proper channel locking
 was added, too.

(closes issue ASTERISK-13226)
Reported by: ZX81
Patches:
     14086v2.patch uploaded by putnopvut (license 60)
Tested by: ZX81, festr


........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=168629

By: Digium Subversion (svnbot) 2009-01-14 18:14:49.000-0600

Repository: asterisk
Revision: 168630

_U  branches/1.6.0/
U   branches/1.6.0/apps/app_queue.c

------------------------------------------------------------------------
r168630 | mmichelson | 2009-01-14 18:14:49 -0600 (Wed, 14 Jan 2009) | 32 lines

Merged revisions 168629 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r168629 | mmichelson | 2009-01-14 18:14:17 -0600 (Wed, 14 Jan 2009) | 24 lines

Merged revisions 168628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r168628 | mmichelson | 2009-01-14 18:11:01 -0600 (Wed, 14 Jan 2009) | 16 lines

Fix some crashes from bad datastore handling in app_queue.c

* The queue_transfer_fixup function was searching for and removing
 the datastore from the incorrect channel, so this was fixed.

* Most datastore operations regarding the queue_transfer datastore
 were being done without the channel locked, so proper channel locking
 was added, too.

(closes issue ASTERISK-13226)
Reported by: ZX81
Patches:
     14086v2.patch uploaded by putnopvut (license 60)
Tested by: ZX81, festr


........

................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=168630

By: Digium Subversion (svnbot) 2009-01-14 18:15:23.000-0600

Repository: asterisk
Revision: 168631

_U  branches/1.6.1/
U   branches/1.6.1/apps/app_queue.c

------------------------------------------------------------------------
r168631 | mmichelson | 2009-01-14 18:15:23 -0600 (Wed, 14 Jan 2009) | 32 lines

Merged revisions 168629 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r168629 | mmichelson | 2009-01-14 18:14:17 -0600 (Wed, 14 Jan 2009) | 24 lines

Merged revisions 168628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r168628 | mmichelson | 2009-01-14 18:11:01 -0600 (Wed, 14 Jan 2009) | 16 lines

Fix some crashes from bad datastore handling in app_queue.c

* The queue_transfer_fixup function was searching for and removing
 the datastore from the incorrect channel, so this was fixed.

* Most datastore operations regarding the queue_transfer datastore
 were being done without the channel locked, so proper channel locking
 was added, too.

(closes issue ASTERISK-13226)
Reported by: ZX81
Patches:
     14086v2.patch uploaded by putnopvut (license 60)
Tested by: ZX81, festr


........

................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=168631