codebrowse OOPSes with GeneratorExit when connection closed early

Bug #726985 reported by William Grant
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
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)
description: updated
John A Meinel (jameinel)
Changed in launchpad:
assignee: nobody → John A Meinel (jameinel)
Revision history for this message
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.

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 726985] Re: codebrowse OOPSes with GeneratorExit when connection closed early

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

Revision history for this message
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)
tags: added: qa-untestable
removed: qa-needstesting
Curtis Hovey (sinzui)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.