client.c Assertion Failure

Ken Schweigert shawing at gmail.com
Wed Aug 23 19:25:55 UTC 2006


For the past two nights one of the bind servers that I manage has
crashed and throws this error in syslog:

Aug 23 01:52:28 servr named[3384]: client.c:1143: REQUIRE((((client)
!= ((void *)0)) && (((const isc__magic_t *)(client))->magic == ((('N')
<< 24 | ('S') << 16 | ('C') << 8 | ('c')))))) failed
Aug 23 01:52:28 servr named[3384]: exiting (due to assertion failure)

The box is running Debian Sarge (3.1) on x86 with Bind 9.3.2 running
in a chroot jail.  The box has been running beautifully since April
this year.

Here is a snippet of client.c at/around line 1143:

   1119 /*
   1120  * Handle an incoming request event from the socket (UDP case)
   1121  * or tcpmsg (TCP case).
   1122  */
   1123 static void
   1124 client_request(isc_task_t *task, isc_event_t *event) {
   1125         ns_client_t *client;
   1126         isc_socketevent_t *sevent;
   1127         isc_result_t result;
   1128         isc_result_t sigresult = ISC_R_SUCCESS;
   1129         isc_buffer_t *buffer;
   1130         isc_buffer_t tbuffer;
   1131         dns_view_t *view;
   1132         dns_rdataset_t *opt;
   1133         isc_boolean_t ra;       /* Recursion available. */
   1134         isc_netaddr_t netaddr;
   1135         isc_netaddr_t destaddr;
   1136         int match;
   1137         dns_messageid_t id;
   1138         unsigned int flags;
   1139         isc_boolean_t notimp;
   1140
   1141         REQUIRE(event != NULL);
   1142         client = event->ev_arg;
   1143         REQUIRE(NS_CLIENT_VALID(client));
   1144         REQUIRE(task == client->task);

If I had to guess, my guess would be that the client querying the
server is not valid?  Hardly seems a reason to stop the server.  Or
maybe somebody is trying something not nice and Bind is stopping as a
safety measure.

I also looked around and could not find any core dump files.

I'm unable to tell anyone how to reproduce the error, but it did
happen near 2:00am both nights so I assume it will happen again
tonight.

Is there anything I can do to get more details about what is
happening?  Some info I can gather that will help someone help me to
get this sorted out?

Thanks.

-ken



More information about the bind-users mailing list