Comment 2 for bug 423880

Revision history for this message
Leonard Richardson (leonardr) wrote :

I was wrong about the cause of this bug.

1. The first bug to complain about this problem was filed in January, long before we did anything to bug 353805.
2. I can't duplicate this bug with an old version of launchpadlib and the current version of Launchpad.

Some more information:

1. In bug 319173, the reporter only encountered the problem when uploading from Windows. The reporter was also using the ordinary Launchpad website, not the web service. Which makes sense given that the exception happens before the web service even gets to the data. (For the same reason, I'm no longer confident I can just turn that exception into a 400 status code. My code isn't even running.)

2. In OOPS-1118E554 (the OOPS for bug 319174), the incoming Content-Type is "multipart/form-data; boundary=---------------------------32391146043902". In OOPS-1342S550 and OOPS-1342EA116 (the OOPSes that actually use the web service), the Content-Type is just "multipart/form-data". All three requests yielded the same error. I could see the CGI code looking in the Content-Type for a boundary and choking when it didn't find one, but 1118E554 provided one and it still choked.

3. The only non-Launchpad instance of this error I could find is here:
http://coding.derkeiler.com/Archive/Python/comp.lang.python/2004-03/3034.html
This user was using a (presumably) Windows web browser to upload a file to IIS.

4. I don't see these exceptions in the recent OOPS summaries. But I also don't see them in the summary for 2009-09-03, where I know they happened. Am I missing something? Are these exceptions still happening?

To summarize: this error is caused when the client decides to POST a certain multipart/form-data payload, *probably* a payload containing binary data. The exact form of the payload is not known. The error can be triggered on the web service by a launchpadlib, or on the website by a web browser. Windows clients may be more likely to send the bad payload.

Is this error being caused by old versions of launchpadlib on a new version of Launchpad? I'm not so sure anymore. Old versions of launchpadlib are sending the same data they've always sent, and it's now being rejected before any Launchpad code even runs.

One possibility is that a *new* version of launchpadlib is causing the problems. A new version might be sending different data which is more likely to trigger the error. I'll check this possibility out, but I would really like to see someone upload some release files or bug attachments using launchpadlib on Windows.