fix to REQUIRE failure in resolver.c

Sotiris Tsimbonis tsimbonis at forthnet.gr
Tue Aug 12 13:40:52 UTC 2008


Sotiris Tsimbonis wrote, On 08/06/2008 10:20 AM:
> 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.

About a week later, and named hasn't crashed again because of this..
Only seen MAXEVENTS exceed 256 once in this period of time.

Cheers,
Sotiris

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