> Ah... I don't usually do builds && tests without pthreads.

Actually, I am building/testing with pthreads.  However, I was running in debug 
mode (radiusd -X).  The problem does not occur when I don't start radiusd with 
-X.  Some additional debug code in event.c shows the following sequence of 
events:

radiusd.c:main                  spawn_flag = FALSE (due to -X flag) 
event.c:radius_event_init       have_children = spawn_flag
event.c:request_pre_handler     request->child_state = REQUEST_RUNNING
event.c:no_response_to_proxied_request: request->child_state = REQUEST_RUNNING
event.c:wait_a_bit              request->child_state == REQUEST_RUNNING &&
                                        !have_children
radiusd dies with ASSERT FAILED..

> Hmm... the assert isn't on line 1175 in current git, 

Ugh.. I tested originally with pre-2.1.0, then retested with current git, then 
posted the output from the original test <duh>.

> Delete the assert, and replace it with a "goto" that jumps down to the
"case REQUEST_DONE" statement.

I can do that; but, are you saying this should be a permanent change because 
REQUEST_RUNNING & REQUEST_QUEUED are valid states even if not threading?  If 
not, shouldn't the assignments be changed not to use REQUEST_RUNNING if not 
threading?  Seems like we wouldn't want the server to die just because we're 
debugging and I'd rather not have to maintain a local change (to delete the 
assert) if I don't have to..

Thanks and I'm sorry for the "20 questions", I'm just trying to better 
understand the issue..

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to