I was working on XX-8063 point (d d-KERNEL:ERR:firstsoak.qantom.int:SipClientTcp:SipXProxy:"OsMsgQShared::doSendCore message send failed for queue 'SipTcpServer-3' - no room, ret = 9"
this behaviour depend on some fact: a) the SipTcpServer is service that don't run (start is never called on it) b) SipClient sends a OsMsg to the SipTcpServer when it stops itself c) the SipTcpServer is not running (nor ready to manage events on his queue) so there are 2 possible solutions to the problem, 1) the simpler is to comment the send of OsMsg into sipclient so no such event will go to the queue. 2) the second is to run SipTcpServer's main loop and fix the event handling. The decision between those 2 solutions needs to be evaluated by someone with more knowledge on the overall system. I have attached here a patch[1] for the second solution.
>From 28f2b3e2158cb3118303e5dcbe845c54f1c14a26 Mon Sep 17 00:00:00 2001 From: Domenico Chierico <[email protected]> Date: Wed, 27 Apr 2011 17:42:35 +0200 Subject: [PATCH] Fix queue problem for SipTcpServer --- sipXtackLib/src/net/SipTcpServer.cpp | 19 ++++++++++++++++++- 1 files changed, 18 insertions(+), 1 deletions(-) diff --git a/sipXtackLib/src/net/SipTcpServer.cpp b/sipXtackLib/src/net/SipTcpServer.cpp index 2f4bc01..8b94948 100644 --- a/sipXtackLib/src/net/SipTcpServer.cpp +++ b/sipXtackLib/src/net/SipTcpServer.cpp @@ -105,6 +105,7 @@ UtlBoolean SipTcpServer::startListener() (dynamic_cast <SipServerBroker*> (iterator.value()))->start(); bRet = TRUE; } + start(); return bRet; } @@ -190,9 +191,25 @@ SipTcpServer::~SipTcpServer() int SipTcpServer::run(void* runArgument) { + OsMsg* pMsg = NULL; + OsStatus res; + while (!isShuttingDown()) { - OsTask::delay(500); // this method really shouldn't do anything + res = receiveMessage((OsMsg*&) pMsg, 500); // wait for a message + + if(res == OS_SUCCESS) + { + if (!handleMessage(*pMsg)) // process the message + { + OsServerTask::handleMessage(*pMsg); + } + + if (!pMsg->getSentFromISR()) + { + pMsg->releaseMsg(); // free the message + } + } } return (0); -- 1.7.4
_______________________________________________ sipx-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipx-dev/
