Proxy Issue

Garber, Neal Neal.Garber at iberdrolausa.com
Fri Oct 15 23:12:12 CEST 2010


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




More information about the Freeradius-Users mailing list