From 540a0515de93d99ef45f97b9114185f159587b51 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Fri, 15 Oct 2010 02:10:18 +0200 Subject: [PATCH] Fix corner case when not threaded. If the request is still running after 30s, it's probably because it was proxied, and the home server didn't bother to respond. --- src/main/event.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/event.c b/src/main/event.c index 78bb220..65fcb6b 100644 --- a/src/main/event.c +++ b/src/main/event.c @@ -1232,16 +1232,16 @@ static void wait_a_bit(void *ctx) case REQUEST_RUNNING: /* * If we're not thread-capable, OR we're capable, - * but have been told to run without threads, - * complain when the requests is queued for a - * thread, or running in a child thread. + * but have been told to run without threads, and + * the request is still running. This is usually + * because the request was proxied, and the home + * server didn't respond. */ #ifdef HAVE_PTHREAD_H if (!have_children) #endif { - rad_assert("We do not have threads, but the request is marked as queued or running in a child thread" == NULL); - break; + goto done; } #ifdef HAVE_PTHREAD_H @@ -1312,6 +1312,7 @@ static void wait_a_bit(void *ctx) * and clean it up. */ case REQUEST_DONE: + done: #ifdef HAVE_PTHREAD_H request->child_pid = NO_SUCH_CHILD_PID; #endif -- 2.1.4