[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [Libevent-users] Re: libevent-2.0.8-rc/evdns.c:2672: Assertion (req)->handle && (req)->handle->current_req == (req) failed in evdns_cancel_request
On Wed, Nov 3, 2010 at 10:38 PM, Nick Mathewson <nickm@xxxxxxxxxxxxx> wrote:
>> Probably the right answer here is to add a reference count to the
>> request, and not actually free it until the reference count hits zero.
>
> Actually, we can go even simpler. Here's the patch I've got in mind.
>
> There may be better ways to do this, and simplify the code even more,
> but I'd rather keep changes to this rats'-nest nice and minimal while
> we're trying to stabilize it.
>
> Denis, does this fix stuff for you?
No, it's still crashes. The crash is now more certain though.
This seems wrong:
+ if (! req->handle->pending_cb) {
+ /* If we're planning to run the callback,
+ * don't free the handle until later. */
+ mm_free(req->handle);
+ }
+ req->handle->current_req = NULL;
You free req->handle and then access it.
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.