fix to REQUIRE failure in resolver.c

Sotiris Tsimbonis tsimbonis at forthnet.gr
Wed Aug 6 07:20:03 UTC 2008


On 08/05/2008 10:31 PM, JINMEI Tatuya / 神明達哉 wrote:
> For those who've seen a crash of recent beta versions on entry of
> resolver.c:resquery_response() like this:
> 
> 17-Jul-2008 13:20:48.425 general: resolver.c:5494: REQUIRE((((query) !=
> ((void *)0)) && (((const isc__magic_t *)(query))->magic == ((('Q') << 24
> | ('!') << 16 | ('!') << 8 | ('!')))))) failed
> 
> please try the patch copied below if possible.  We believe this will
> perfectly solve this issue, but confirming it from users who've
> actually seen this would also be helpful.  The fix will appear in the
> next beta.
> 

I have now applied this patch to 9.4.3b2 and deployed the new binary 
(Solaris 9 and 10). I have also increased ISC_SOCKET_MAXEVENTS to 256.
I'll let you know if named crashes again.

Cheers,
Sotiris.

> Thanks,
> 
> ---
> JINMEI, Tatuya
> 
> Index: dispatch.c
> ===================================================================
> RCS file: /proj/cvs/prod/bind9/lib/dns/dispatch.c,v
> retrieving revision 1.149
> diff -u -r1.149 dispatch.c
> --- dispatch.c	23 Jul 2008 23:27:54 -0000	1.149
> +++ dispatch.c	5 Aug 2008 03:15:03 -0000
> @@ -3085,7 +3085,7 @@
>  	 */
>  	LOCK(&qid->lock);
>  	for (resp = linear_first(qid);
> -	     resp != NULL && !resp->item_out;
> +	     resp != NULL && resp->item_out;
>  	     /* Empty. */)
>  		resp = linear_next(qid, resp);
>  
> 



More information about the bind-users mailing list