[Home]

Summary:ASTERISK-07494: astmanproxy and res_jabber have some conflict
Reporter:jmls (jmls)Labels:
Date Opened:2006-08-09 06:42:22Date Closed:2006-09-05 10:06:00
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_jabber
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) console20060820-1900.txt
Description:I have modified the safe_asterisk script to automatically kill any open astmanproxy service and to start astmanproxy when asterisk starts. The 39248 version of res_jabber.c now does not connect to the jabber server if astmanproxy starts before the jabber connection is complete.

You can workaround this by adding a delay to the astmanproxy startup.

I presume that this broke because of the manager stuff added to res_jabber.c in r39248

****** ADDITIONAL INFORMATION ******

my original safe_asterisk is

[snip]
killall astmanproxy
run_asterisk &
astmanproxy &

I now have to change this to

killall astmanproxy
run_asterisk &
sleep 5
astmanproxy &

Comments:By: Serge Vecher (serge-v) 2006-08-09 09:43:54

you may have to contact Dave Troy (the author of astmanproxy) to see where the change needs to take place. Just google 'david troy astmanproxy' for his email address. I'll send a reminder through the bugtracker as well to see if he responds.

By: Serge Vecher (serge-v) 2006-08-09 09:44:32

dave: do you mind looking into this bug.

By: jmls (jmls) 2006-08-20 03:39:31

this is still the issue with the latest trunk (r40602). If astmanproxy is started, then jabber does not send any messages, and seems to get stuck somewhere, as a "stop now" takes several seconds (if not longer) to quit.

Note the workaround, well, doesn't work. :( It seems to be ok but doesn't send messages)

By: jmls (jmls) 2006-08-20 04:03:39

this combination works with r37320, I'll try to find the exact version it broke in

By: jmls (jmls) 2006-08-20 13:02:40

ok, I've narrowed it down. My initial description was wrong, r39248 is the *last* version that it works with, r39272 is broken. To reproduce this behaviour:

r39248:
1) safe_asterisk
2) try send a message (works)
3) start astmanproxy
4) try send a message (works)

r39272:
1) safe_asterisk
2) try send a message (works)
3) start astmanproxy
4) try send a message (does not work)

I've attached console output so you can see exactly what goes on. My comments are indicated by ################



By: jmls (jmls) 2006-08-20 13:10:33

console20060820-1900.txt uploaded to show where the problems are

By: Serge Vecher (serge-v) 2006-08-21 10:14:25

asking for russel's help, since that was his commit of ast_verbose_threadstorage branch. Thanks, Russell ;)

By: jmls (jmls) 2006-08-30 07:38:06

This is holding me up from moving from 37320 (buggy) upwards. Is there anything I can do ?

By: jmls (jmls) 2006-09-03 02:42:12

ok, some more info. Thanks to some great help from mog, we've determined that it is *not* astmanproxy that causes the problem, but any connected manager session. take the following scenario:

with manager.c 39272 upwards

Start asterisk
send a jabber message (sends ok)
connect to manager (telnet 127.0.0.1 5038)
send a jabber message (now broken)

If I revert manager.c back to r39271 then it all works. So, it looks as if it might be a problem with the changes to manager.c

Please could you update the description of this bug to reflect the new findings. Thanks.

By: Russell Bryant (russell) 2006-09-03 09:43:03

I can't seem to reproduce this problem.  I have an authenticated manager session over telnet, and I am still able to send messages using JabberSend.

This is some variant of the trunk that include the changes noted as problematic.

*CLI> show version
Asterisk SVN-russell-frame_caching-r41161M built by russell @ badunkadunk on a i686 running Linux on 2006-08-27 16:03:59 UTC

By: Russell Bryant (russell) 2006-09-03 10:08:27

I updated to the latest trunk and still cannot reproduce the problem.

*CLI> show version
Asterisk SVN-trunk-r41527M built by russell @ badunkadunk on a i686 running Linux on 2006-09-03 04:44:43 UTC

By: jmls (jmls) 2006-09-03 12:41:17

i can reproduce this all the time on the latest trunk, with no modified source . I can give access to my machine if someone wants to take a look - as soon as the jabber message is sent, asterisk goes into 100% cpu. Revert to 39271 of manager.c and it all works just fine.

By: jmls (jmls) 2006-09-03 13:05:27

just double-checked with latest svn trunk.

[root@quebec asterisk]# safe_asterisk
[root@quebec asterisk]# asterisk -r
Asterisk SVN-trunk-r41883, Copyright (C) 1999 - 2006 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'show license' for details.
=========================================================================
Connected to Asterisk SVN-trunk-r41883 currently running on quebec (pid = 1244)
Verbosity is at least 3
   -- Executing [7703@from-sip:1] JabberSend("SIP/7706-09d78138", "asterisk|jmls@indigo.tessera.co.uk/Pandion|Message ID is 1157302101.0") in new stack
   -- Executing [7703@from-sip:2] Hangup("SIP/7706-09d78138", "") in new stack
 == Spawn extension (from-sip, 7703, 2) exited non-zero on 'SIP/7706-09d78138'
   -- Executing [h@from-sip:1] NoOp("SIP/7706-09d78138", "++++ HANGUP FROM-SIP ++++ [/16]") in new stack
   -- Executing [h@from-sip:2] GotoIf("SIP/7706-09d78138", "1?end") in new stack
   -- Goto (from-sip,h,6)
   -- Executing [h@from-sip:6] NoOp("SIP/7706-09d78138", "EndOfCall") in new stack
quebec*CLI> exit

#at this point, from another terminal, I did:
[root@quebec asterisk]# telnet 127.0.0.1 5038
Trying 127.0.0.1...
Connected to quebec.tessera.co.uk (127.0.0.1).
Escape character is '^]'.
Asterisk Call Manager/1.0


#back to the first terminal ...

[root@quebec asterisk]# asterisk -r
Asterisk SVN-trunk-r41883, Copyright (C) 1999 - 2006 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'show license' for details.
=========================================================================
Connected to Asterisk SVN-trunk-r41883 currently running on quebec (pid = 1244)
   -- Remote UNIX connection
Verbosity is at least 3
   -- Executing [7703@from-sip:1] JabberSend("SIP/7706-09d78540", "asterisk|jmls@indigo.tessera.co.uk/Pandion|Message ID is 1157302178.1") in new stack
quebec*CLI>

#notice that the call gets stuck at the Jabbersend (unlike the first message before the manager got a connection)
# top now gives: (asterisk@100%)

top - 17:50:10 up 1 day,  9:17,  2 users,  load average: 0.46, 0.42, 0.21
Tasks:  57 total,   2 running,  55 sleeping,   0 stopped,   0 zombie
Cpu(s): 50.4% us,  0.0% sy,  0.0% ni, 48.6% id,  0.0% wa,  1.0% hi,  0.0% si
Mem:   2074736k total,   745660k used,  1329076k free,    71112k buffers
Swap:  2031608k total,        0k used,  2031608k free,   576548k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1244 root      16   0 25200  10m 5300 S  100  0.5   0:32.62 asterisk
   1 root      16   0  1972  528  452 S    0  0.0   0:00.50 init
   2 root      RT   0     0    0    0 S    0  0.0   0:00.07 migration/0
   3

By: Russell Bryant (russell) 2006-09-03 16:15:20

Sure, if you can catch me on IRC, I would be happy to log in and take a look.  I'll need to use gdb on your machine while you replicate the problem to see what is going on ...

By: Serge Vecher (serge-v) 2006-09-05 09:43:35

was this fixed by r41944 or that was just bug found in the process?

By: jmls (jmls) 2006-09-05 09:46:17

it fixed this. Sorry, thought that this was laready closed.