codebrowse OOPSes with GeneratorExit when connection closed early

Bug #726985 reported by William Grant on 2011-03-01
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Critical
John A Meinel

Bug Description

Bug #701329's fix eliminated most early socket closure OOPSes from codebrowse, but introduced another:

Traceback (most recent call last):
  Module launchpad_loggerhead.app, line 351, in wrapped_app
    yield data
GeneratorExit

An 'except GeneratorExit: raise' in oops_middleware should fix that. But I don't know how to test it, or even the precise conditions that cause it.

I've verified that this doesn't occur during normal haproxy checks -- a successful HEAD request is not affected. curl --head is unaffected even on a 404, so it seems to require a 404 rendering into a closed connection? jam's reproducer from bug #701329 also works fine as long as the branch exists, but shows this new OOPS locally and on qastaging when the request 404s.

  echo -e "HEAD /~jameinel/+junk/foo/doesnotexist HTTP/1.0\n\n" | telnet localhost 8080

OOPS-1891CBA15 is an example on production.

Related branches

William Grant (wgrant) on 2011-03-07
description: updated
John A Meinel (jameinel) on 2011-03-07
Changed in launchpad:
assignee: nobody → John A Meinel (jameinel)
John A Meinel (jameinel) wrote :

I have a branch which should fix this, but so far, I have been unable to reproduce the failure.

Note that some of the HEAD changes have landed in loggerhead, so it is possible this is hiding the original GeneratorExit failure.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 3/7/2011 2:37 PM, John A Meinel wrote:
> I have a branch which should fix this, but so far, I have been unable to
> reproduce the failure.
>
> Note that some of the HEAD changes have landed in loggerhead, so it is
> possible this is hiding the original GeneratorExit failure.
>

So I do have a test case that reproduced getting an OOPS from
GeneratorExit, and that it is appropriately squashed and replaced with a
log message.

However, I wasn't able to manually trigger such a GeneratorExit via the
HTTP interface of a running dev system.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk104m0ACgkQJdeBCYSNAAPO9wCffId9CNDi5Du5WjRUflBMLkbA
sbwAni/2jZ4IhhFGCakez79YNbNJCPzZ
=67P+
-----END PGP SIGNATURE-----

Launchpad QA Bot (lpqabot) wrote :
Changed in launchpad:
milestone: none → 11.03
tags: added: qa-needstesting
Changed in launchpad:
status: Triaged → Fix Committed
John A Meinel (jameinel) on 2011-03-09
tags: added: qa-untestable
removed: qa-needstesting
Curtis Hovey (sinzui) on 2011-03-10
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers