[Freeswitch-users] spidermonkey problems

Michael Jerris mike at jerris.com
Fri Jan 16 09:03:03 PST 2009


All long running non js code should be wrapped in the suspend/resume  
gc stuff.  For example:

	cb_state.ret = BOOLEAN_TO_JSVAL(JS_FALSE);
	cb_state.saveDepth = JS_SuspendRequest(cx);
	args.input_callback = dtmf_func;
	args.buf = bp;
	args.buflen = len;
	switch_ivr_sleep(jss->session, ms, sync, &args);
	JS_ResumeRequest(cx, cb_state.saveDepth);

I think this is your issue.  Can you please file a bug on jira for  
this issue (even better with a patch)

Mike



On Jan 16, 2009, at 5:54 AM, Jonas Gauffin wrote:

> I've found the problem. one js thread wait in socket.read  
> (mod_spidermonkey_socket) on data.
> That caller have hangup, which means that the garbage collector  
> waits on it to close.
>
> All new javascript sessions waits in JS_AWAIT_GC_DONE for the  
> garbage collector to be done before proceeding (which means that all  
> new javascript calls don't do anything after being launched).
>
> My server will not send anything until an agent gets free or the  
> session hangs up (detects it through the event socket). And the  
> event socket will not send that the session has been hangup until  
> the socket have received anything (and the script can exit). So it's  
> kind of deadlock between my server and the spidermonkey_socket.
>
> Is it possible to add an option to socket.read to make it abort if  
> the session have been closed? I know that I wrote  
> mod_spidermonkey_socket from the start, but I can't figure out how  
> to do it.
>
> Will new sessions always wait on old ones to be garbage collected  
> properly? For instance, what happens if a script have a lenghty post  
> process after caller have hang up?
>
> On Fri, Jan 16, 2009 at 9:38 AM, Jonas Gauffin <jonas.gauffin at gmail.com 
> > wrote:
> I've got a loop, but the first thing checked in each iteration is if  
> session.ready() returns false (and in that case exit the loop).
>
> I do create sessions in the script: create, try to originate to a  
> destination and then finally bridge together the caller and the new  
> session.
>
> I'll try to give you more details during the day.
>
> On Fri, Jan 16, 2009 at 12:48 AM, Anthony Minessale <anthony.minessale at gmail.com 
> > wrote:
> do you have any loops in your code that might not check for  
> session.ready() in a exit when its not true.
>
> The symptoms you posted would be consistent with held readlocks so  
> if you got a gcore (or windows equiv) of the process you might be  
> able to see what threads where doing what to hang on to the read lock.
>
> also are you creating sessions in the script then executing app with  
> them, beware of this because the thread of the script is used to  
> execute apps on a session created that way and not the session thread.
>
>
>
>
> On Thu, Jan 15, 2009 at 5:20 AM, Jonas Gauffin <jonas.gauffin at gmail.com 
> > wrote:
> Hello
>
> I got problems with hanging spidermonkey sessions and need some  
> advice on how to debug them.
>
> I've made a javascript queue application that uses  
> mod_spidermonkey_socket. It works fine for a while,
> but after some calls I noticed that calls didnt get transferred to  
> agents. The reason was that earlier
> calls had not been terminated properly.
>
> freeswitch at test1> hupall
> 2009-01-15 12:15:04 [CRIT] switch_core_session.c:147  
> switch_core_session_hupall() Giving up with 8 sessions remaining
> API CALL [hupall()] output:
> +OK hangup all channels with cause MANAGER_REQUEST
>
>
> freeswitch at test1> show calls
> API CALL [show(calls)] output:
>
> 0 total.
>
>
> As you can see, 8 sessions are alive, but none of them are listed as  
> calls. What kind of logs should I turn on to see what is happening  
> with those sessions?
>
> Thanks,
>   Jonas
>
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
>
>
> -- 
> Anthony Minessale II
>
> FreeSWITCH http://www.freeswitch.org/
> ClueCon http://www.cluecon.com/
>
> AIM: anthm
> MSN:anthony_minessale at hotmail.com
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> IRC: irc.freenode.net #freeswitch
>
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> iax:guest at conference.freeswitch.org/888
> googletalk:conf+888 at conference.freeswitch.org
> pstn:213-799-1400
>
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
>
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20090116/2f1c49b9/attachment-0002.html 


More information about the FreeSWITCH-users mailing list