No subject


Sat Dec 10 13:40:36 UTC 2011


> either the paster configuration options for anything related to
> timeouts, thread pools, handling of incomplete requests and so on. Or
> use a more production quality web server like Apache (mod_wsgi), Nginx
> (gevent/gunicon) which likely has better default configuration values
> for these things.
>

The problem from my previous email was indeed hung requests. However, the
stack trace for those looked different:

Thread 140605868680960:
  File "/usr/lib/python2.6/threading.py", line 504, in __bootstrap
    self.__bootstrap_inner()
  File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.6/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 878, in worker_thread_callback
    runnable()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 1052, in <lambda>
    lambda: self.process_request_in_thread(request, client_address))
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 1068, in process_request_in_thread
    self.finish_request(request, client_address)
  File "/usr/lib/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 442, in handle
    BaseHTTPRequestHandler.handle(self)
  File "/usr/lib/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 437, in handle_one_request
    self.wsgi_execute()
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 287, in wsgi_execute
    self.wsgi_start_response)
  File
"/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/connector.py",
line 21, in __call__
    result = self.next_app(environ, start_response)
  File
"/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/cachecleanup.py",
line 25, in __call__
    return self.next_app(environ, start_response)
  File
"/home/tsa/env/lib/python2.6/site-packages/repoze/retry/__init__.py", line
65, in __call__
    chunk = original_wsgi_input.read(rest)
  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 474, in read
    data = self.file.read(length)
  File "/usr/lib/python2.6/socket.py", line 377, in read
    data = self._sock.recv(left)

Note the line it blocks on is "self._sock.recv(left)", well after the
response started.
In the trace I just provided, the block was on opening the DB connection
*at the start of the request*:

  ...
*  File "/home/tsa/env/lib/python2.6/site-packages/paste/httpserver.py",
line 287, in wsgi_execute*
*    self.wsgi_start_response)*
  File
"/home/tsa/env/lib/python2.6/site-packages/repoze/zodbconn/connector.py",
line 18, in __call__
    conn = self.db.open()
*  File "/home/tsa/env/lib/python2.6/site-packages/ZODB/DB.py", line 729,
in open*
*    self._a()*
  File "/usr/lib/python2.6/threading.py", line 123, in acquire
    rc = self.__block.acquire(blocking)

Why would the database start blocking on opening a new database connection?
The
issue does indeed seem to be with ZODB.

Thanks,
- Claudiu

--f46d04428dc085d02704bf756678
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_quote">On Mon, May 7, 2012 at 12:13 PM, Hanno Schlichti=
ng <span dir=3D"ltr">&lt;<a href=3D"mailto:hanno at hannosch.eu" target=3D"_bl=
ank">hanno at hannosch.eu</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">
I think you might get better help on one of the Pyramid support channels.<b=
r>
<br>
Your problems all seem to be related to configuring a web server in<br>
production mode, rather than database issues.<br></blockquote><div><br></di=
v><div>Thanks, I&#39;ll check out the Repoze.BFG IRC channel as well.</div>=
<div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex">



More information about the ZODB-Dev mailing list