Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Dec 2000 18:19:49 +0200 (EET)
From:      bamby@marka.net.ua
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/23212: Timeout bug in Merit AAA server
Message-ID:  <200012011619.SAA88857@bamby.marka.net.ua>

next in thread | raw e-mail | index | archive | help

>Number:         23212
>Category:       ports
>Synopsis:       Timeout bug in Merit AAA server
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 01 08:30:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     Andriy I Pilipenko
>Release:        FreeBSD 4.1-RELEASE i386
>Organization:
Marka Ltd
>Environment:

	

>Description:

There is serious bug in handling requests in AATV module of AA_FORK 
and AA_FREPLAY types in Merit AAA server. If AATV module not 
responding for a long time main server drops original request without 
cleaning some critical information (process counter aatv->proc_cnt). 
As a result after some definite number of timeouts server stops 
responding.

Vendor notified of this problem and fix.

>How-To-Repeat:

Write AATV module that may sleep long enough to make timeout in main 
server. Send to server aatv->proc_max requests (16 by default) and 
wait for timeout to occure for all requests. Make the AATV module
to respond quickly (without restarting server of course :-) ).
Now you may see that server does not respond at all.

>Fix:

*** radiusd.c.orig	Mon Jul 27 23:52:37 1998
--- radiusd.c	Wed Nov 29 18:09:48 2000
***************
*** 4467,4473 ****
  	while ((event = authreq->event_q) != (EVENT_ENT *) NULL)
  	{
  		authreq->event_q = event->next;
! 		free_event_final (event);
  	}
  
  	while ((event = authreq->freed_events) != (EVENT_ENT *) NULL)
--- 4467,4473 ----
  	while ((event = authreq->event_q) != (EVENT_ENT *) NULL)
  	{
  		authreq->event_q = event->next;
! 		free_event (event);
  	}
  
  	while ((event = authreq->freed_events) != (EVENT_ENT *) NULL)

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200012011619.SAA88857>