client.c Assertion Failure
smallpond
smallpond at juno.com
Wed Aug 23 21:02:35 UTC 2006
Ken Schweigert wrote:
> 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
client_request is being called with a bad argument. Does your
log have a stack trace showing what called client_request?
You can turn on additional logging with the rndc trace command.
-- S
More information about the bind-users
mailing list