NetTalk Central

NetTalk Web Server => Web Server - Ask For Help => Topic started by: ccordes on September 15, 2011, 04:53:05 PM

Title: SendError locks server
Post by: ccordes on September 15, 2011, 04:53:05 PM
NT 5.34 - I'm using self.senderror method to send a server busy message. The message gets sent but then the server never recovers. If I then close the server window, the server exe is still running without a window. :(
Here is what I have after the  loc:RequestData :=: p_RequestData line

          If (MaxThreads > 0 AND Threadcnt >= MaxThreads) OR g:NoLogin
              self.senderror(500,'Server Busy','Server Busy, try again shortly')
              Return
          End

I included the g:nologin as a test trigger.

I haven't dug into the code too deeply yet, but looking at netweb.clw, the SendError procedure starts with a self._wait() but doesn't end with a self._release() =- unless maybe there is one somewhere else that matches up later.

Chris

Title: Re: SendError locks server
Post by: kevin plummer on September 15, 2011, 05:46:04 PM
I would throw a debug point just before your code to see if this is where your loop is.
Title: Re: SendError locks server
Post by: ccordes on September 15, 2011, 06:14:19 PM
Thanks, Kevin.
I did that and removed it thinking it may have contributed to the error.
no loop that I can see.

I did lock it up just before going to dinner. When I came back the log on the screen had the session deleted 20 times - same session number. Maybe that's a clue, but I don't get it.

chris
Title: Re: SendError locks server
Post by: Bruce on September 15, 2011, 09:03:19 PM
Hi Chris,

>> but looking at netweb.clw, the SendError procedure starts with a self._wait() but doesn't end with a self._release()

that's the bug - well spotted.
Please just add
 self._release()
to the end of the method.

Cheers
Bruce