From: Chuck E. <Chu...@ya...> - 2003-03-31 00:48:45
|
On Saturday 29 March 2003 06:51 pm, Ian Bicking wrote: [snip] > > My webkit console log says: > > > > Traceback (most recent call last): > > File "./WebKit/ThreadedAppServer.py", line 749, in run > > server.mainloop() > > File "./WebKit/ThreadedAppServer.py", line 188, in mainloop > > handler = self._handlerCache[serverAddress].pop() > > KeyError: ('127.0.0.1', 14464) > > > > > > I don't know why, but it's almost certainly caused by new code. Let > > me know what you think. > > What's on port 14464? Apparently it's getting a connection on that > port, but hasn't set any handler up for it... In a nutshell: We can't use large port numbers for the WebKit app server anymore. The details: I did a little more snooping and found out that the nightly build broke after the 19th which is significant because that's when ThreadedAppServer.py got revamped by NewTheadedAppServer: Revision 1.64 / Wed Mar 19 11:37:28 2003 UTC (11 days, 12 hours ago) by ianbicking Branch: MAIN Changes since 1.63: +245 -339 lines Diff to previous 1.63 On a hunch, I changed the port from its original value of 80000 to 9999 and now it works. I then reversed the situation: I installed fresh copies of Apache and WebwareCVS, got them working, then pumped up the port # to 70001 and got this: KeyError: ('127.0.0.1', 4465) Looks like a classic case of 16bit vs 32bit. I thought those days were over! :) The python prompt says that "70001 & 0xFFFF" = 4465 which confirms my suspicion. Looking at the diffs, I can't really see where the limitation is coming from. We should either get rid of it, or catch bad port numbers in Python and report them as such. Here are the diffs: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/webware/Webware/WebKit/ThreadedAppServer.py.diff?r1=text&tr1=1.63&r2=text&tr2=1.64&diff_format=h Any thoughts on what introduced this? Another problem is that when I click on the Error example, I get this traceback: Traceback (most recent call last): File "./WebKit/ThreadedAppServer.py", line 359, in threadloop handler.handleRequest() File "./WebKit/ThreadedAppServer.py", line 658, in handleRequest transaction = self._server._app.dispatchRawRequest(dict, streamOut) File "./WebKit/Application.py", line 435, in dispatchRawRequest self.handleExceptionInTransaction(sys.exc_info(), trans) File "./WebKit/Application.py", line 630, in handleExceptionInTransaction self._exceptionHandler(self, transaction, excInfo, AttributeError: Application instance has no attribute '_exceptionHandler' I don't know for sure that this broke from the NewThreadedAppServer. I just noticed it. -- Chuck http://ChuckEsterbrook.com |