Comment 3 for bug 943452

Revision history for this message
Jonathan Lange (jml) wrote : Re: [Bug 943452] Re: Double submitting to callback?

On Tue, Mar 6, 2012 at 2:01 AM, James Westby <email address hidden> wrote:
> On Mon, 05 Mar 2012 16:30:42 -0000, Jonathan Lange <email address hidden> wrote:
>> I don't think so.  If you change the harness so that it doesn't shut
>> down when it gets a response, you'll see that only one request is ever
>> sent to it. I think the problem is that we are shutting down the service
>> too early.
>>
>> >From #twisted.web on 2012-01-12:
>>
>> jml: When is Resource.render() called?
>> exarkun: When a Resource is found to service a request
>> jml: is the request fully received by that point?
>> exarkun: Yes
>> jml: OK, thanks.
>> jml: I have a Resource locally that waits for one request and then shuts down the web server. However, the other end is reporting a connection refused after sending the request. I can't figure out what this second attempted connection is all about.
>> exarkun: favicon? :)
>> exarkun: You may also be shutting down the reactor such that the response is never sent, and some kind of retry logic in the client is kicking in.
>> jml: exarkun: ooh, that last one might be it.
>> jml: exarkun: is there an event I can hook into to ensure the response has been sent?
>> exarkun: :(
>> exarkun: not as far as I know
>> jml: exarkun: how vexing.
>> jml: I'm currently starting the shutdown on notifyFinish
>> exarkun: Yea, you'd sorta expect that to be good enough.
>> jml: I'll try a callLater to verify that this is indeed what's happening.
>> jml: reactor.callLater(0, ...) to the rescue :(
>
> That's the code we have right? So it seems that callLater isn't enough
> to make sure that the response is sent before the reactor shuts down?
>

Yeah, that's correct. My guess is that it's a cheap hack that doesn't work.

Probably the right thing to do here is file a bug on Twisted. I'll do that now.

jml