Edgewall Software
Modify

Opened 8 years ago

Last modified 14 months ago

#11049 new defect

TracD on Windows 8 (x64)

Reported by: paulcoddington@… 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)

t11049-tracd-enhancements-r11683.patch (5.1 KB ) - added by Christian Boos 8 years ago.
various improvements for tracd - see related git branch cboos.git@t11049-tracd-enhancements for details

Download all attachments as: .zip

Change History (43)

comment:1 by paulcoddington@…, 8 years ago

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).

Windows 8>tracd -p 8000 -e /Services/Trac/projects
Server starting in PID 3168.
Serving on 0.0.0.0:8000 view at http://127.0.0.1:8000/
Using HTTP/1.1 protocol version
127.0.0.1 - - [06/Feb/2013 01:59:34] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:34] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [06/Feb/2013 01:59:36] "GET /Sandbox HTTP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:36] "GET /Sandbox/chrome/wikiextras/css/phrases
.css HTTP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:37] "GET /Sandbox/chrome/common/js/jquery.js HT
TP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:37] "GET /Sandbox/chrome/common/js/babel.js HTT
P/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/wikiextras/css/boxes-3
00.css HTTP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/common/css/wiki.css HT
TP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/wikiextras/css/boxes-s
hadowless.css HTTP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/wikiextras/css/boxes-n
arrow-toc.css HTTP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/common/css/trac.css HT
TP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:38] "GET /Sandbox/chrome/wikiextras/css/boxes.c
ss HTTP/1.1" 500 -
----------------------------------------
 Exception happened during processing of request from---------------------------
------------- ----------------------------------------
(
Exception happened during processing of request from'127.0.0.1'-----------------
-----------------------Exception happened during processing of request from ,
 (49857Exception happened during processing of request from(--------------------
--------------------'127.0.0.1') '127.0.0.1',
(
, 498T58raceback (m'ost recen1t 2ca7ll last.):
0.0.1'Exception happened during processing of request from49851 ) Fil, e " C:\Py
)thon27\lib\SocketSer
ver49850.py", lin(e 58
2, in proc)ess_re'ques1t_thread2
7T.rac0ebac.k (m0ost .recent call last):
1T'race,b ack
 (most recent call last4)98:55
)
self.finish_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread
Traceback (most recent call last):
  File "C:\Python27\lib\SocketServer.py", line 582, in process_request_thread
Traceback (most recent call last):
  File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
    self.finish_request(request, client_address)
  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 582, in process_request_thread
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
    self.finish_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
    self.finish_request(request, client_address)
  File "C:\Python27\lib\SocketServer.py", line 641, in __init__
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 323, in finish_request
    self.finish()
  File "C:\Python27\lib\SocketServer.py", line 641, in __init__
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\SocketServer.py", line 641, in __init__
    self.RequestHandlerClass(request, client_address, self)
  File "C:\Python27\lib\site-packages\trac-1.0-py2.7-win32.egg\trac\web\wsgi.py"
, line 196, in finish
    self.finish()
  File "C:\Python27\lib\SocketServer.py", line 641, in __init__
    self.finish()
  File "C:\Python27\lib\SocketServer.py", line 641, in __init__
  File "C:\Python27\lib\site-packages\trac-1.0-py2.7-win32.egg\trac\web\wsgi.py"
, line 196, in finish
    BaseHTTPRequestHandler.finish(self)
    self.finish()
  File "C:\Python27\lib\site-packages\trac-1.0-py2.7-win32.egg\trac\web\wsgi.py"
, line 196, in finish
    self.finish()
    BaseHTTPRequestHandler.finish(self)
  File "C:\Python27\lib\SocketServer.py", line 694, in finish
  File "C:\Python27\lib\site-packages\trac-1.0-py2.7-win32.egg\trac\web\wsgi.py"
, line 196, in finish
    BaseHTTPRequestHandler.finish(self)
  File "C:\Python27\lib\site-packages\trac-1.0-py2.7-win32.egg\trac\web\wsgi.py"
, line 196, in finish
  File "C:\Python27\lib\SocketServer.py", line 694, in finish
    self.wfile.flush()
    BaseHTTPRequestHandler.finish(self)
  File "C:\Python27\lib\SocketServer.py", line 694, in finish
    BaseHTTPRequestHandler.finish(self)
    self.wfile.flush()
  File "C:\Python27\lib\socket.py", line 303, in flush
  File "C:\Python27\lib\SocketServer.py", line 694, in finish
    self.wfile.flush()
  File "C:\Python27\lib\SocketServer.py", line 694, in finish
  File "C:\Python27\lib\socket.py", line 303, in flush
    self._sock.sendall(view[write_offset:write_offset+buffer_size])
    self.wfile.flush()
  File "C:\Python27\lib\socket.py", line 303, in flush
    self.wfile.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
  File "C:-\Pyt-h-o-n2-7\-l---i----b-\--so-ck--e--t.-p--y-"-,-- ---line 303,- --
-i---n-- flush

    self._sock.sendall(view[write_offset:write_offset+buffer_size])
  File "C:\Python27\lib\socket.py", line 303, in flush
error: [Errno 10053] An established connection was aborted by the software in yo
ur host machine
    self-._s-o-ck-.se-n------d-a---l-l-(-v-ie-w[-wri-te_of-fset:-w-r-i-t-e_o---f
f-s--e--t-+-b--uffer_size
])
error: [Errno 10053] An established connection was aborted by the software in yo
ur host machine
    sel-f._s--o------c--k-.-s-e-n--d-a-l-l-(v--ie-w-[wri-t-e-_---off-set-:-w---r
-i-t-e_offse
t+buffer_size])
error: [Errno 10053] An established connection was aborted by the software in yo
ur host machine
error: -[Er-r-n-o- ---10-0--5--3---] --A--n---- -e--s-t-a-b-l-i--shed- -c--onne-
-ction was a
orted by the software in your host machine
----------------------------------------
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/common/js/trac.js HTTP
/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/common/js/search.js HT
TP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/common/js/messages/en_
US.js HTTP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/common/trac_logo_mini.
png HTTP/1.1" 200 -
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/shared/header.png HTTP
/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:39] "GET /Sandbox/chrome/common/js/folding.js H
TTP/1.1" 500 -
127.0.0.1 - - [06/Feb/2013 01:59:40] "GET /Sandbox/chrome/shared/trac.ico HTTP/1
.1" 200 -

comment:2 by paulcoddington@…, 8 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 Christian Boos, 8 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).

comment:4 by paulcoddington@…, 8 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.

in reply to:  4 comment:5 by Christian Boos, 8 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 paulcoddington@…, 8 years ago

Additional tests since last post:

  1. Update SQLite.dll used by python, loading error persists.
  2. Update to PSF Python 2.7.3 served by Apache 2.2, loading error persists (but no crashes, no corruption).
  3. Built-in tests for Lib modules socketserver.py and socket.py passed, no errors.
  4. 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 Christian Boos, 8 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 paulcoddington@…, 8 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 Christian Boos, 8 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).

comment:10 by paulcoddington@…, 8 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 anonymous, 8 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.

in reply to:  10 comment:12 by Christian Boos, 8 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?

Last edited 8 years ago by Christian Boos (previous) (diff)

comment:13 by paulcoddington@…, 8 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:14 by Christian Boos, 8 years ago

Interesting indeed. Can you try with --http10?

comment:15 by paulcoddington@…, 8 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.

comment:16 by Christian Boos, 8 years ago

Milestone: 1.0.2
Priority: normalhigh

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 paulcoddington@…, 8 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 paulcoddington@…, 8 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 paulcoddington@…, 8 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.

in reply to:  16 ; comment:20 by Christian Boos, 8 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

in reply to:  20 ; comment:21 by Christian Boos, 8 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.

in reply to:  21 comment:22 by Christian Boos, 8 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:

Cumulative patch for the whole branch follows.

by Christian Boos, 8 years ago

various improvements for tracd - see related git branch cboos.git@t11049-tracd-enhancements for details

comment:23 by paulcoddington@…, 8 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.

in reply to:  23 comment:24 by Christian Boos, 8 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.

comment:25 by paulcoddington@…, 8 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:26 by paulcoddington@…, 8 years ago

The single thread -http11 seems stable under repeated tests, BTW.

comment:27 by anonymous, 8 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.

in reply to:  25 comment:28 by Christian Boos, 8 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 Christian Boos, 8 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).

comment:30 by paulcoddington@…, 8 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).

in reply to:  30 comment:31 by Ryan J Ollos, 7 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 Paul Coddington, 7 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 Christian Boos, 7 years ago

Milestone: 1.0.21.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 Ryan J Ollos, 7 years ago

Milestone: 1.1.21.1.3

comment:35 by Christian Boos, 6 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 Ryan J Ollos, 6 years ago

Milestone: 1.1.3next-dev-1.1.x

Retargeting tickets in milestone:1.1.3 that have no owner. Please retarget as appropriate.

comment:37 by Ryan J Ollos, 5 years ago

Milestone: next-dev-1.1.xnext-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 figaro, 4 years ago

Priority: highnormal
Severity: majornormal

Issue not encountered for a few years, hence reducing severity and priority.

comment:39 by Jun Omae, 4 years ago

Component: generalweb frontend/tracd

in reply to:  35 comment:40 by Ryan J Ollos, 3 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:41 by Ryan J Ollos, 15 months ago

Milestone: next-dev-1.3.xnext-dev-1.5.x

Milestone renamed

comment:42 by Ryan J Ollos, 14 months ago

Milestone: next-dev-1.5.xnext-major-releases

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
The ticket will be disowned.
as The resolution will be set. Next status will be 'closed'.
The owner will be changed from (none) to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.