External appservers like those started by ZopelessAppserverLayer talk to the same test DB as the test being executed.
If there are two tests in the layer, and one of them triggers a db reset (e.g. by doing a commit() rather than a rollback where we can just reset the db sequences), then the slave appserver is forcibly disconnected from the database (as is the librarian and other helpers).
Subsequent requests to the appserver will trigger oopses (which will retry so the thing -works- but we have an oops logged. And, because the next requestor is the next test, that test will see 'spurious' oopses if and only if it is run directly after a test that caused the testdb to be dropped (by committing).
oops-3: {{{
Oops-Id: OOPS-ec2ee8085482c92c96e7e288cb8ca88e
Exception-Type: AssertionError
Exception-Value: Bug #504291: Store left in a disconnected state.
Date: 2011-10-31T00:30:10.023000+00:00
Page-Id:
Branch: useoops
Revision: 14111
User: unauthenticated, Anonymous, Anonymous, Anonymous User
URL: http://launchpad.dev:8085
Duration: -1
Oops-Reporter: T
Traceback (most recent call last):
Module canonical.launchpad.webapp.publication, line 762, in endRequest
"Bug #504291: Store left in a disconnected state.")
AssertionError: Bug #504291: Store left in a disconnected state.
}}}
External appservers like those started by ZopelessAppserv erLayer talk to the same test DB as the test being executed.
If there are two tests in the layer, and one of them triggers a db reset (e.g. by doing a commit() rather than a rollback where we can just reset the db sequences), then the slave appserver is forcibly disconnected from the database (as is the librarian and other helpers).
Subsequent requests to the appserver will trigger oopses (which will retry so the thing -works- but we have an oops logged. And, because the next requestor is the next test, that test will see 'spurious' oopses if and only if it is run directly after a test that caused the testdb to be dropped (by committing).
oops-3: {{{ 31T00:30: 10.023000+ 00:00 launchpad. dev:8085
Oops-Id: OOPS-ec2ee8085482c92c96e7e288cb8ca88e
Exception-Type: AssertionError
Exception-Value: Bug #504291: Store left in a disconnected state.
Date: 2011-10-
Page-Id:
Branch: useoops
Revision: 14111
User: unauthenticated, Anonymous, Anonymous, Anonymous User
URL: http://
Duration: -1
Oops-Reporter: T
CHANNEL_ CREATION_ TIME=1320021009 .97 TYPE=text/ xml INTERFACE= CGI/1.1 xmlrpc- private. launchpad. dev:8087 AGENT=xmlrpclib .py/1.0. 1 (by www.pythonware.com) /codehosting ADDR=127. 0.0.1 NAME=lucid- test-lp PROTOCOL= HTTP/1. 0 SOFTWARE= zope.server. http (PrivateXMLRPC) %3Chidden% 3E 27+launchpad- services% 27, %27//%7Eperson- name-425389/ product- name-425384/ .bzr/branch- format% 27%5D log.interfaces. ITraceLog= %3Chidden% 3E
CONTENT_LENGTH=286
CONTENT_
GATEWAY_
HTTP_HOST=
HTTP_USER_
PATH_INFO=
REMOTE_
REQUEST_METHOD=POST
SCRIPT_NAME=
SERVER_
SERVER_PORT=8087
SERVER_
SERVER_
wsgi.input=
xmlrpc args=%5B%
zc.zservertrace
Traceback (most recent call last): launchpad. webapp. publication, line 762, in endRequest
Module canonical.
"Bug #504291: Store left in a disconnected state.")
AssertionError: Bug #504291: Store left in a disconnected state.
}}}