Opened 12 years ago
Last modified 5 years ago
#11049 new defect
TracD on Windows 8 (x64)
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | next-major-releases |
Component: | web frontend/tracd | Version: | 1.0 |
Severity: | normal | Keywords: | |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
I am encountering numerous problems on Windows 8 (x64) running TracD with Python 2.7.
In Internet Explorer 10, loading Trac pages is erratic, with first load often missing style/layout or missing the header logo. Pressing back then forward several times may resolve this problem as if little bits of the page are building up in the cache over time. (The logo will load if right-clicked to Show Picture).
With the WikiExtras hack, the [WikiIcons] documentation fails to load all icons in the page, but will load them eventually with back/forth as above (or by right-click Show Picture). However, hitting the Refresh button will crash TracD/Python.
The Trac service may stop responding randomly, at which point it is reported that the Trac database needs to be upgraded. (Running an upgrade allows the wiki to display, but all macros are now unrecognized and the custom logo becomes undefined, so this is probably spontaneous corruption).
These problems are also evident with Google Chrome, so it does not appear to be IE10 specific. I should note that IE10 is aggressive - with a tracking protection list turned on, the Trac header logo is blocked.
Compatibility settings on executables has not helped, nor has making exceptions in Antivirus/Firewall. An identical setup was working fine in Windows 7 (x64).
Attachments (1)
Change History (43)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
And in the event log (now we have two problems)…
Faulting application name: Python.exe, version: 0.0.0.0, time stamp: 0x4e04e3b8 Faulting module name: sqlite3.dll, version: 0.0.0.0, time stamp: 0x4e04e486 Exception code: 0xc0000005 Fault offset: 0x00014c45 Faulting process id: 0x638 Faulting application start time: 0x01ce039b9e7bf067 Faulting application path: C:\Python27\Python.exe Faulting module path: C:\Python27\DLLs\sqlite3.dll Report Id: 57f144f2-6f8f-11e2-bea0-00221597cbcd
comment:3 by , 12 years ago
Well, Trac of course can't operate reliably (or at all) if the connection to the DB (SQLite) is not working. So I'd suggest to investigate first the SQLite3 / Windows 8 possible issues. You could maybe upgrade to the latest Python 2.7 release (2.7.3 I think), to see if it helps. You could also try using another database (MySQL/MariaDB or PostgreSQL, whichever you prefer or is known to work on Windows 8).
follow-up: 5 comment:4 by , 12 years ago
Just confirmed that the problem with TracD persists with python.org 2.7.3 (previously was using Active Python 2.7.2).
The problem with SQLite has not appeared again so far, but was infrequent compared to the socket problem which happens continuously.
Also confirmed Apache working fine (quick and dirty install with Bitnami package), so this is a workaround I am currently investigating.
Looking at this again this morning, I suspect this is probably better reported to the Python group, as it seems to be a problem with the socket implementation and is likely to affect any application using sockets.
comment:5 by , 12 years ago
Replying to paulcoddington@…:
Looking at this again this morning, I suspect this is probably better reported to the Python group, as it seems to be a problem with the socket implementation and is likely to affect any application using sockets.
If you do, better first try to reproduce on a simple example without Trac, demonstrating the failure (e.g. using the SimpleHTTPServer). Otherwise it's very likely that your report will get dismissed as a Trac bug…
comment:6 by , 12 years ago
Additional tests since last post:
- Update SQLite.dll used by python, loading error persists.
- Update to PSF Python 2.7.3 served by Apache 2.2, loading error persists (but no crashes, no corruption).
- Built-in tests for Lib modules socketserver.py and socket.py passed, no errors.
- SimpleHTTPServer, no errors (3,000 icons in simple generated HTML page).
Also, I can't replicate my earlier apparent success with Trac Stack (perhaps I forgot to clear the browser cache and thought it was working?).
comment:7 by , 12 years ago
Then we have to figure out the difference between SimpleHTTPServer and tracd. One of the main differences would be the ThreadingMixin
. Can you disable that? (see e.g. ticket:2598#comment:8).
comment:8 by , 12 years ago
One of the quirks of the python.org distribution is that it keeps most things installed as eggs rather than unpack them. I have altered the standalone.py
file in the egg, but the entire ...\trac\web
folder is not being unpacked to the egg cache while viewing the wiki. In any case, no difference.
comment:9 by , 12 years ago
Can you post again a trace like in comment:1, with multithreading disabled (to verify that multithreading is really disabled… i.e. we shouldn't see garbled messages strings).
follow-up: 12 comment:10 by , 12 years ago
C:\Windows\system32 Windows 8>C:\Python27\Scripts\tracd-script.py --port 8000 --e C:\Services\Trac\p rojects\ Server starting in PID 3948. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Using HTTP/1.1 protocol version 192.168.1.66 - - [07/Feb/2013 23:34:46] "GET / HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:46] "GET /favicon.ico HTTP/1.1" 404 - 192.168.1.66 - - [07/Feb/2013 23:34:48] "GET /Sandbox HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:49] "GET /Sandbox/chrome/wikiextras/css/boxe s.css HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:49] "GET /Sandbox/chrome/common/css/wiki.css HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:49] "GET /Sandbox/chrome/common/js/jquery.js HTTP/1.1" 200 - No handlers could be found for logger "Trac.8ed621eb7131c61902479bffc60b93a91533 aee0" 192.168.1.66 - - [07/Feb/2013 23:34:49] "GET /Sandbox/chrome/wikiextras/css/boxe s-shadowless.css HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:50] "GET /Sandbox/chrome/wikiextras/css/boxe s-300.css HTTP/1.1" 500 - ---------------------------------------- Exception happened during processing of request from ('192.168.1.66', 49580) Traceback (most recent call last): File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread 192.168.1.66 - - [07/Feb/2013 23:34:50] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 500 - self.finish_request(request, client_address) File- "C:\P-------y-thon-2-7\-l-i--b-\So-c-ke-tS-er-v-er.----p-y"--,- li-ne--- 3-2--3-,- i-n fin ish_Erequxceptioen happestn during p rocessi n sgelf .of rReequeqst fuerostmHandl erCl(ass('request1, cl9i en2t_a.ddr1ess, se6lf)8 .1192..168.1.66 - -6 [07/6Feb'/2013, 23:3495764:50)] "GET / Sandbox/chrome/wikiextras/css/boxes-narrow-toc.css HTTP/1.1" 500 - File "C:\Python27\lib\SocketServer.py", line 640, in __init__ Traceback (most recent call last): File "-C:\Py-t----h-on2-7\--l-i-b-\-So-c--k-etSe-r-ve-r.-p-y-"-,--- ------l--i -ne 582, -i--n p rocess_request_thErxceepad tion h app en ed se ldurinfg .finpirsho()c ess1ing9 2.o1f68 .1r.e66 -q uest- from [07/Feb/2 013 (23:34:'501] "9GET2 ./Sa1nd box/c6hrome8/wik.iex1tr.as/6css/6phr'ases.css, H TTP49581/1.)1" 50 0 - self.finish_request(request, client_address) File "c:\users\paulco~1\appdata\local\temp\easy_install-gfrbyv\Trac-1.0-py2.7- win32.egg.tmp\trac\web\wsgi.py", line 196, in finish Traceback (most recent call last): File "C:\P-ython27-\---l---i-b\S---ocket-S-er-----v-er.py"---,- li--n----e- -3 -2-3, i------n finis h_reEquxceptione shtappe ned du riFnigl proec "eCs:\Pytshiong no27\lifb \request frSoomcket Server.py", (line' 5812,9 in p2rocess_.req1uest_th6read 8 . 1Bas.eHT6TPRe6que'stHand,le r.finis4h(9578self)) self.RequestHandlerClass(request, client_address, self) self.finish_request(request, client_address) File "C:\Python27\lib\SocketServer.py", line 693, in finish Traceback (most recent call last): File "C:\Python27\lib\SocketServer.py", line 640, in __init__ File "C:\Python27\lib\SocketServer.py", line 323, in finish_request self.wfile.flush() File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread self.finish() self.RequestHandlerClass(request, client_address, self) File "C:\Python27\lib\socket.py", line 303, in flush self.finish_request(request, client_address) File "c:\users\paulco~1\appdata\local\temp\easy_install-gfrbyv\Trac-1.0-py2.7- win32.egg.tmp\trac\web\wsgi.py", line 196, in finish File "C:\Python27\lib\SocketServer.py", line 640, in __init__ self._sock.sendall(view[write_offset:write_offset+buffer_size]) File "C:\Python27\lib\SocketServer.py", line 323, in finish_request BaseHTTPRequestHandler.finish(self) self.finish() error: [Errno 10053] An established connection was aborted by the software in yo ur host machine self.-Req---u----e----s----tHan-d-l-er-C-la----s--s-(requ-est, cl-i-e--n-t-_ --a---ddress, elf) File "C:\Python27\lib\SocketServer.py", line 693, in finish File "c:\users\paulco~1\appdata\local\temp\easy_install-gfrbyv\Trac-1.0-py2.7- win32.egg.tmp\trac\web\wsgi.py", line 196, in finish File "C:\Python27\lib\SocketServer.py", line 640, in __init__ self.wfile.flush() BaseHTTPRequestHandler.finish(self) self.finish() File "C:\Python27\lib\socket.py", line 303, in flush File "C:\Python27\lib\SocketServer.py", line 693, in finish File "c:\users\paulco~1\appdata\local\temp\easy_install-gfrbyv\Trac-1.0-py2.7- win32.egg.tmp\trac\web\wsgi.py", line 196, in finish self._sock.sendall(view[write_offset:write_offset+buffer_size]) self.wfile.flush() BaseHTTPRequestHandler.finish(self) error: [Errno 10054] An existing connection was forcibly closed by the remote ho st File "C-:\P-y--t--h-o-n-2-7\--l-ib-\-s---o-c-k-----et---.-py---"-,-- l-i-n---e 303, in flush File "C:\Python27\lib\SocketServer.py", line 693, in finish self._sock.sendall(view[write_offset:write_offset+buffer_size]) self.wfile.flush() error: [Errno 10053] An established connection was aborted by the software in yo ur host machine File -"C:\-P-y-t----h-o-n-2---7-\----l--i-b---\s----o--c-k-e-t.p---y", -li-n-e 303 , in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) error: [Errno 10053] An established connection was aborted by the software in yo ur host machine ---------------------------------------- 192.168.1.66 - - [07/Feb/2013 23:34:51] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:51] "GET /Sandbox/chrome/common/js/search.js HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:51] "GET /Sandbox/chrome/common/js/folding.j s HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:51] "GET /Sandbox/chrome/common/trac_logo_mi ni.png HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:51] "GET /Sandbox/chrome/common/css/code.css HTTP/1.1" 200 - 192.168.1.66 - - [07/Feb/2013 23:34:52] "GET /Sandbox/chrome/common/js/trac.js H TTP/1.1" 500 - 192.168.1.66 - - [07/Feb/2013 23:34:52] "GET /Sandbox/chrome/common/js/babel.js HTTP/1.1" 500 - -------------1--92-.-168.1.66 --- --- -[-------0----------7-/Feb/2013 23:34:52] "GET /Sandbox/chrome/common/js/messages/en_US.js HTTP/1.1" 500 - Exception happened during processing of request from ('192.168.1.66', 49583) Traceback (most recent call last): File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread self.finish_request(request, client_address) File "C:\Python27\lib\SocketServer.py", line 323, in finish_request self.RequestHandlerClass(request, client_address, self) File "C:\Python27\lib\SocketServer.py", line 640, in __init__ self.finish() File "c:\users\paulco~1\appdata\local\temp\easy_install-gfrbyv\Trac-1.0-py2.7- win32.egg.tmp\trac\web\wsgi.py", line 196, in finish BaseHTTPRequestHandler.finish(self) File "C:\Python27\lib\SocketServer.py", line 693, in finish self.wfile.flush() File "C:\Python27\lib\socket.py", line 303, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) error: [Errno 10053] An established connection was aborted by the software in yo ur host machine ---------------------------------------- 192.168.1.66 - - [07/Feb/2013 23:34:52] "GET /Sandbox/chrome/shared/trac.ico HTT P/1.1" 200 -
comment:11 by , 12 years ago
Not having much success approaching this from the Windows end - not a lot of detailed Windows 8 documentation out there. I know sockets have changed a lot in their implementation for this release, and it may be that there is more aggressive flood protection leading to dropped packets, but I haven't found a way to detect if this is the problem.
comment:12 by , 12 years ago
Replying to paulcoddington@…:
... No handlers could be found for logger "Trac.8ed621eb7131c61902479bffc60b93a91533 aee0" ... ---------------------------------------- Exception happened during processing of request from ('192.168.1.66', 49580) Traceback (most recent call last): File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread 192.168.1.66 - - [07/Feb/2013 23:34:50] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 500 - self.finish_request(request, client_address) File- "C:\P-------y-thon-2-7\-l-i--b-\So-c-ke-tS-er-v-er.----p-y"--,- li-ne--- 3-2--3-,- i-n fin ish_Erequxceptioen happestn during p rocessi n sgelf .of rReequeqst fuerostmHandl
See? Still the garbled output that is typical when you get output to the console window from a multithread app. Somehow the patch is not applied to the right file.
Instead, I'd suggest you install from source, or simply unzip the source distribution. Well, there's nothing to install really, you could just go at the top of such a source extraction, and do (in a cmd.exe shell):
> set PYTHONPATH=. > python trac/web/standalone -p 8000 -e ...
Also, about the "No handlers…", I wonder how this could be indicative of another problem. What's the content of your [logger]
section in your trac.ini file?
comment:13 by , 12 years ago
Python 2.7.3>python standalone.py -p 8000 -e c:\Services\Trac\projects Server starting in PID 4060. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Using HTTP/1.1 protocol version 192.168.1.66 - - [08/Feb/2013 02:45:42] "GET / HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:42] "GET /favicon.ico HTTP/1.1" 404 - 192.168.1.66 - - [08/Feb/2013 02:45:44] "GET /Sandbox HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:44] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:44] "GET /Sandbox/chrome/wikiextras/css/boxe s-shadowless.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:44] "GET /Sandbox/chrome/common/js/jquery.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:45] "GET /Sandbox/chrome/common/js/babel.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:45] "GET /Sandbox/chrome/common/js/messages/ en_US.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:45] "GET /Sandbox/chrome/common/js/trac.js H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:45] "GET /Sandbox/chrome/common/js/search.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:45] "GET /Sandbox/chrome/common/js/folding.j s HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:46] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:45:46] "GET /Sandbox/chrome/common/trac_logo_mi ni.png HTTP/1.1" 200 - HANG C:\Python27\Lib\site-packages\trac\web Python 2.7.3> C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e c:\Services\Trac\projects Server starting in PID 2716. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Using HTTP/1.1 protocol version 192.168.1.66 - - [08/Feb/2013 02:47:28] "GET /Sandbox/wiki/WhatIsTrac HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:47:28] "GET /Sandbox/chrome/common/css/wiki.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:47:28] "GET /Sandbox/chrome/common/css/code.css HTTP/1.1" 200 - HANG C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e c:\Services\Trac\projects Server starting in PID 2628. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Using HTTP/1.1 protocol version 192.168.1.66 - - [08/Feb/2013 02:48:42] "GET /Sandbox/wiki/TracHacks HTTP/1.1" 2 00 - 192.168.1.66 - - [08/Feb/2013 02:48:42] "GET /Sandbox/chrome/wikiextras/css/phra ses.css HTTP/1.1" 200 - HANG C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e c:\Services\Trac\projects Server starting in PID 2364. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Using HTTP/1.1 protocol version 192.168.1.66 - - [08/Feb/2013 02:49:17] "GET /Sandbox/wiki/WikiIcons HTTP/1.1" 2 00 - 192.168.1.66 - - [08/Feb/2013 02:49:17] "GET /Sandbox/chrome/wikiextras/css/boxe s.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-24/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-32/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/clock.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/calendar.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/chart.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/eye.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/tick.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-in.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-000-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-in-out.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-045.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-join.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-join-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-135.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-merge.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-135-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-move.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-180.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-out.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-repeat.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-225-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-resize.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-270.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-return.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-315.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-225.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-skip.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-315-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-split.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-branch.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-switch.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-branch-000-left.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-transition.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-circle.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-transition-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-curve.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-turn.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/smiley-wink.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/star.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/light-bulb.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/exclamation--frame.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/exclamation-diamond-frame.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/thumb-up.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/smiley.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/thumb.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/star-empty.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/abacus.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/jar.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/safe.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/balance.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/key.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/table.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/cake.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/language.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/ui-accordion.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/dashboard.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/magnet.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/validation.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/edit.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/na.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/wall.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/feed.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/occluder.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/xfn.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/game.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/paint-brush.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/hamburger.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras/css/boxe s-300.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras/css/boxe s-narrow-toc.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/subversion.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:31] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/yin-yang.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:31] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/question.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:31] "GET /Sandbox/chrome/common/topbar_gradi ent2.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:31] "GET /Sandbox/chrome/common/topbar_gradi ent.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:34] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/zodiac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:34] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/radar.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:34] "GET /Sandbox/chrome/common/extlink.gif HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:34] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/ice.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:49] "GET /Sandbox/chrome/lineno/css/lineno.c ss HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:51] "GET /Sandbox/wiki/WikiIcons HTTP/1.1" 2 00 - 192.168.1.66 - - [08/Feb/2013 02:49:54] "GET /Sandbox/wiki HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:49:55] "GET /Sandbox/wiki/WhatIsTrac HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:24] "GET / HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:24] "GET /favicon.ico HTTP/1.1" 404 - 192.168.1.66 - - [08/Feb/2013 02:50:26] "GET /Sandbox HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:26] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:26] "GET /Sandbox/chrome/wikiextras/css/boxe s-shadowless.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:27] "GET /Sandbox/chrome/common/js/jquery.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:27] "GET /Sandbox/chrome/common/js/babel.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:27] "GET /Sandbox/chrome/common/js/messages/ en_US.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:27] "GET /Sandbox/chrome/common/js/trac.js H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:27] "GET /Sandbox/chrome/common/js/search.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:28] "GET /Sandbox/chrome/common/js/folding.j s HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:28] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 02:50:28] "GET /Sandbox/chrome/common/trac_logo_mi ni.png HTTP/1.1" 200 - HANG
Now this is a very interesting result.
The socket error is gone, but the process HANGs at the end of every page. When the process is terminated (Task Manager), the browser seems to display the complete page with no errors. The process is restarted and the next page is selected - hang, terminate, page is drawn. Even the troublesome icon page loads completely without a socket error.
As for the log error, I don't have a [logger]
section, instead:
[logging] log_type = none log_file = trac.log log_level = WARNING
comment:15 by , 12 years ago
PSF Python 2.7.3 command line environment. C:\Users\Paul Coddington Python 2.7.3>cd C:\Python27\Lib\site-packages\trac\web C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e C:\Services\Trac\projects --http10 Server starting in PID 1076. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ Ctrl-C
OK, I tried this a few times to be really sure…
I cleared the browser cache, started the server with --http10
and WikiStart loaded very slowly, without layout or images.
Then I left Trac (went to Google, as before), cleared the cache, went back to Trac and found every page loaded perfectly in reasonable time (not really fast, but not painfully slow either).
So I Ctl-C'd the process, cleared my cache again, then restarted - perfect results first time. Confirmed several times.
It is almost as if something had adapted.
Also, there were no console messages displayed in --http10
mode.
follow-up: 20 comment:16 by , 12 years ago
Milestone: | → 1.0.2 |
---|---|
Priority: | normal → high |
Ok, be careful here, maybe you won't always be able to kill all processes with CTRL+C (we have r10504 but I'm not sure that's always enough). So it might be that you still have a python process running "in the background" especially if you started tracd once with -r
. So always check what you have in the process explorer, to be sure. Because you should see the same kind of output in the console than with the default --http11
mode…
So tracd with --http10
and multithreading disabled is not the fastest way, but it should be more robust… and it apparently is. So this gives us a good base.
"Good news"… I just started it non-multithreaded with --http11
and now it also hangs for me! I might be able to troubleshoot that further this evening…
In the meantime, you could try to use it with --http10
and with the ThreadingMixIn
, I suspect this should work and be reasonably fast.
We might just have uncovered a bug in the --http11
mode which was not apparent in the normal multi-threaded case (until Windows 8, that is).
comment:17 by , 12 years ago
OK - I'm being a bit more diligent about killing processes this time (Sysinternals pskill python.exe
with Task Manager check). Also, fresh boot this morning.
In multithreaded --http10
mode, images are still failing to load, but the trace is different (no socket error, but missing items return 500 not 200).
And we are getting console output this time.
http10 Multithreaded
Fast, some items not loading, no socket error, 500 error instead.
C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e C:\Services\Trac\projects --http10 Server starting in PID 4044. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ 192.168.1.66 - - [08/Feb/2013 10:32:51] "GET / HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:51] "GET /favicon.ico HTTP/1.1" 404 - 192.168.1.66 - - [08/Feb/2013 10:32:53] "GET /Sandbox HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:54] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:54] "GET /Sandbox/chrome/common/js/jquery.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/wikiextras/css/boxe s.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/common/css/wiki.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/wikiextras/css/phra ses.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/wikiextras/css/boxe s-shadowless.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/wikiextras/css/boxe s-narrow-toc.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:55] "GET /Sandbox/chrome/wikiextras/css/boxe s-300.css HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:56] "GET /Sandbox/chrome/common/js/search.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:56] "GET /Sandbox/chrome/common/trac_logo_mi ni.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/js/folding.j s HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/js/messages/ en_US.js HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/js/trac.js H TTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/js/babel.js HTTP/1.1" 500 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/topbar_gradi ent.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/shared/trac.ico HTT P/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:32:58] "GET /Sandbox/chrome/common/topbar_gradi ent2.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:33:33] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 200 -
http10 non-multithreaded
Slow, no errors.
C:\Python27\Lib\site-packages\trac\web Python 2.7.3>python standalone.py -p 8000 -e C:\Services\Trac\projects --http10 Server starting in PID 3444. Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/ 192.168.1.66 - - [08/Feb/2013 10:40:01] "GET / HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:01] "GET /favicon.ico HTTP/1.1" 404 - 192.168.1.66 - - [08/Feb/2013 10:40:04] "GET /Sandbox HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:04] "GET /Sandbox/chrome/common/css/trac.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:05] "GET /Sandbox/chrome/common/css/wiki.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:05] "GET /Sandbox/chrome/wikiextras/css/phra ses.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:05] "GET /Sandbox/chrome/wikiextras/css/boxe s.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:05] "GET /Sandbox/chrome/wikiextras/css/boxe s-300.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:05] "GET /Sandbox/chrome/wikiextras/css/boxe s-shadowless.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/common/js/jquery.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/wikiextras/css/boxe s-narrow-toc.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/common/js/babel.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/common/js/messages/ en_US.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/common/js/trac.js H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:06] "GET /Sandbox/chrome/common/js/search.js HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:07] "GET /Sandbox/chrome/common/js/folding.j s HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:07] "GET /Sandbox/chrome/shared/header.png H TTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:07] "GET /Sandbox/chrome/common/trac_logo_mi ni.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:07] "GET /Sandbox/chrome/common/css/code.css HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:07] "GET /Sandbox/chrome/shared/trac.ico HTT P/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:08] "GET /Sandbox/chrome/common/topbar_gradi ent.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:08] "GET /Sandbox/chrome/common/topbar_gradi ent2.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:10] "GET /Sandbox/wiki/WhatIsTrac HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:10] "GET /Sandbox/chrome/common/extlink.gif HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:13] "GET /Sandbox/wiki/TracHacks HTTP/1.1" 2 00 - 192.168.1.66 - - [08/Feb/2013 10:40:13] "GET /Sandbox/chrome/lineno/css/lineno.c ss HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:16] "GET /Sandbox/wiki/WikiIcons HTTP/1.1" 2 00 - 192.168.1.66 - - [08/Feb/2013 10:40:16] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:16] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/subversion.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:16] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/yin-yang.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-24/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-32/trac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/calendar.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/chart.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:17] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/clock.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/eye.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/tick.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-in.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-000-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:18] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-in-out.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-045.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-join.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-join-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:19] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-135.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-merge.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-135-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-move.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-180.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:20] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-out.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-225.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-repeat.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-225-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-resize.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-270.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:21] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-return.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-315.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-skip.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-315-medium.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-split.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:22] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-branch.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-switch.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-branch-000-left.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-transition.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-circle.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:23] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-transition-090.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-curve.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/arrow-turn.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/light-bulb.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/smiley-wink.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/star.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:24] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/exclamation--frame.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/exclamation-diamond-frame.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/thumb-up.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/smiley.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/thumb.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:25] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/star-empty.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/abacus.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/jar.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/safe.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/balance.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:26] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/key.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/table.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/cake.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/language.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/ui-accordion.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:27] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/dashboard.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/magnet.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/validation.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/edit.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/na.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/wall.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:28] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/feed.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/occluder.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/xfn.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/game.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/paint-brush.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:29] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/hamburger.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/question.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/zodiac.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/ice.png HTTP/1.1" 200 - 192.168.1.66 - - [08/Feb/2013 10:40:30] "GET /Sandbox/chrome/wikiextras-icons-sh adowless-16/radar.png HTTP/1.1" 200 -
Looks like my workaround is to run non-multithreaded for now. It is fast enough for most pages, as not many pages in my wikis are as intense as WikiExtras docs.
comment:18 by , 12 years ago
This raises the question of how to apply this workaround to an Apache hosted system.
Now that I have figured out Apache (in the attempt to fix this), I am wondering if it will be better than TracD. It seems to have a small footprint in minimal configuration, and raises fewer questions about how to set the Firewall (runs as httpd.exe
rather than some combination of python.exe
/tracd.exe
/svrany.exe
).
comment:19 by , 12 years ago
Also, I am wondering if the socket error we saw in the first instance is skipping over closing the sockets - the memory used by the process increases with every page view.
follow-up: 21 comment:20 by , 12 years ago
Replying to cboos:
We might just have uncovered a bug in the
--http11
mode which was not apparent in the normal multi-threaded case
The "problem" with the non-multithreaded case was that … this code was not meant to be non-multithreaded ;-)
In tracd we rely on the Python standard library mechanisms. We call BaseServer.serve_forever()
which basically loops on incoming requests and address each with a call to BaseServer._handle_request_noblock
(in the standard SocketServer.py). As its name suggests, this is normally non-blocking, as the method BaseServer.process_request
which it calls is reimplemented by either the ForkingMixIn
or the ThreadingMixin
. We use the latter, as the former doesn't work on Windows. The problem is that in the HTTP/1.1 mode, we never close the connection ourselves until the client does it, and this can take quite a long time since generally the browsers keep them around a few minutes "just in case". See we keep looping in BaseHTTPRequestHandler.handle
and never go back to the main loop in serve_forever
. Not so a problem in the multi-threaded case, but this is what gives the impression of a hang in the single-threaded case.
I nevertheless toyed around and managed to make it work reliably in the single-threaded case. See:
[b42a6847/cboos.git] wsgi: don't waste time blocking on connections on which there's nothing to read from…
I think closing an inactive connection should be always a win, even in the multi-threaded case. It's a compromise between the HTTP/1.0 way of closing the connection after each request and the HTTP/1.1 way of keeping it alive as long as the client keeps it alive: here we keep it alive only as long as it gets actively reused, so generally during the time span of an initial request and all its secondary requests, but not more.
That change addresses the "hang" situation observed in this non-standard single-threaded case and the remark in comment:19 about the sockets being kept opened. I'm not sure this is enough to completely address the memory increase issue, but it should help (note: the memory increase problem used to be much worse, and in practice we don't consider it to be a problem anymore these days).
I'm also not sure this will help with original problem reported here, which happens when flushing what's left to be sent to the client… We could also add some exception catching clauses there, but that might just hide a real issue.
Let's first see how it works on your side with that b42a6847 change, with --http11
:
- in the single-threaded case,
- in the normal multi-threaded case
follow-up: 22 comment:21 by , 12 years ago
Replying to cboos:
We could also add some exception catching clauses there, but that might just hide a real issue.
I just found PythonBug:14574 which does just that. But same remark, it doesn't explain why those disconnects happen in a systematic way for you.
comment:22 by , 12 years ago
Replying to cboos:
… it doesn't explain why those disconnects happen in a systematic way for you.
… unless that's simply you hitting "F5" like crazy ;-)
In which case, the following will help:
- [efade8c7/cboos.git] wsgi: ignore disconnects during finish() (#11049).
Cumulative patch for the whole branch follows.
by , 12 years ago
Attachment: | t11049-tracd-enhancements-r11683.patch added |
---|
various improvements for tracd - see related git branch cboos.git@t11049-tracd-enhancements for details
follow-up: 24 comment:23 by , 12 years ago
Both threading modes with --http11
seem to be working fine at my end (and single-threading mode seems a lot faster than it used to be).
I am not seeing any errors in the log.
comment:24 by , 12 years ago
Replying to paulcoddington@…:
Both threading modes with
--http11
seem to be working fine at my end (and single-threading mode seems a lot faster than it used to be).I am not seeing any errors in the log.
Great to hear! If you look at the network panel in the developer tools of your browsers, do you actually see all the requests having completed correctly (after having cleared the browser cache)? Also for the WikiExtras pages?
Btw, if someone remembers why we had IOError
in the exception catching clauses, and not just socket.error
, I'll be glad to have my memory refreshed ;-) It seems that even on Windows the 10053 one is a socket.error
.
follow-up: 28 comment:25 by , 12 years ago
Bad news - the multithread --http11
is fragile. It can work fine for a while, then have 500 errors by the score. Reliability seems to change with each service restart and each reboot (sometimes the odd error, sometimes many, sometimes none).
In all cases, if you hit the refresh button in the browser repeatedly (at reasonable intervals), the 500 errors increase. If you are using the original SQLite.dll bundled with Python, about 3-4 refreshes will crash Python (with the latest SQLite.dll there is no crash, but 500 errors still increase).
comment:27 by , 12 years ago
I am feeling a bit paranoid about the apparent inconsistency - starting tomorrow, I am planning on putting aside the current system image under construction to archive/backup and starting over with a bare-metal reinstallation of Windows 8 for further testing in case something has gone subtlety wrong with this one. Should have the results of that test in about a day or so.
comment:28 by , 12 years ago
Replying to paulcoddington@…:
Bad news - the multithread
--http11
is fragile. It can work fine for a while, then have 500 errors by the score. Reliability seems to change with each service restart and each reboot (sometimes the odd error, sometimes many, sometimes none).
So these 500 correspond to what, in the trac.log?
Also, do you have any kind of other software which might interfere? An anti-virus of some sort? Firewall? Parental protection software? ;-)
comment:29 by , 12 years ago
Any news? Did you try on another machine by any chance? Still wondering if it's a generic issue with Windows 8 or just your particular setup (I don't have 8 so far, and I'm more than happy with 7).
follow-up: 31 comment:30 by , 12 years ago
Sorry about the delay - I have been keen to get my migration to Windows 8 / VS 2012 out of the way. Now that I'm done with that, I can look into this more easily using my Virtual Machine test bed.
I'll be back on the case soon, I promise (:P).
comment:31 by , 11 years ago
Replying to paulcoddington@…:
I'll be back on the case soon, I promise (:P).
Have you been able to revisit the issue? We are closing in on milestone:1.0.2, so we'll need to do something with this ticket soon - move it forward or close it.
comment:32 by , 11 years ago
Sorry about the delay.
The problem seemed to go away a few system image maintenance passes down the track. So, a combination of Windows Updates to around August, plus an update to Python 2.7.5 seemed to fix it (one other difference with Python - the Win32 extensions pack is now installed).
So far, on Windows 8.1 RTM with Python 2.7.5 it seems OK.
Thanks for taking care of this. It is much appreciated.
comment:33 by , 11 years ago
Milestone: | 1.0.2 → 1.1.2 |
---|
Thanks for the feedback! Switching to Python 2.7.5 might have helped for silencing the errors regarding the disconnects (fix for PythonBug:14574 was integrated for 2.7.4), and if the root problem is gone as well, that was probably thanks to the Windows updates.
I looked again at my changes, I'm not so sure anymore about [b42a6847/cboos.git] as this was only really needed in the artificial non-multithreaded situation and might hurt performance when we're doing AJAX calls. The rest seems still fine however I think that these are now more suited for trunk than for 1.0-stable.
comment:34 by , 11 years ago
Milestone: | 1.1.2 → 1.1.3 |
---|
follow-up: 40 comment:35 by , 10 years ago
It's now been a while I'm running stock tracd on Windows 8.1 x64, but I looked again at cboos.git@t11049-tracd-enhancements and the changes there seem to be worthwhile nevertheless, except perhaps for [b42a6847/cboos.git].
So keeping it on the milestone.
comment:36 by , 10 years ago
Milestone: | 1.1.3 → next-dev-1.1.x |
---|
Retargeting tickets in milestone:1.1.3 that have no owner. Please retarget as appropriate.
comment:37 by , 9 years ago
Milestone: | next-dev-1.1.x → next-dev-1.3.x |
---|
Narrowing focus for milestone:1.2. Please move ticket to milestone:1.2 if you intend to fix it.
comment:38 by , 8 years ago
Priority: | high → normal |
---|---|
Severity: | major → normal |
Issue not encountered for a few years, hence reducing severity and priority.
comment:39 by , 8 years ago
Component: | general → web frontend/tracd |
---|
comment:40 by , 7 years ago
Replying to Christian Boos:
It's now been a while I'm running stock tracd on Windows 8.1 x64, but I looked again at cboos.git@t11049-tracd-enhancements and the changes there seem to be worthwhile nevertheless, except perhaps for [b42a6847/cboos.git].
Looks like there is overlap with #12317 (r14648). Is there anything needed from your proposed changes after rebasing on the latest 1.2-stable?
comment:42 by , 5 years ago
Milestone: | next-dev-1.5.x → next-major-releases |
---|
Update: I captured some error messages running TracD in a administrative command prompt directly rather than as a Service (with SVRANY, in case that was the problem).