Re: (RADIATOR) AuthRADIUS (non)forking problem

2002-02-27 Thread Chris M

>From what I have seen with my own (meager) experiments with Perl threading,
it appears to behave radically different on different OSes, presumably
because every OS treats threading differently.

This may be the reason for the non-production-quality aspect.

Chris

> From: Hugh Irvine <[EMAIL PROTECTED]>
> Organization: Open System Consultants
> Reply-To: [EMAIL PROTECTED]
> Date: Thu, 28 Feb 2002 11:17:15 +1100
> To: Damir Dzeko <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: Re: (RADIATOR) AuthRADIUS (non)forking problem
> 
> 
> Hello Damir -
> 
> Mike and I have discussed this issue at length over a long period of time,
> and indeed the topic has also been discussed on the mailing list several
> times as well.
> 
> Basically, it is our intention to extend Radiator to use multi-threading so
> that each request runs in a separate thread, which we feel is the best
> approach for dealing with all these sorts of problems (not just with AuthBy
> RADIUS clauses).
> 
> The only reason that this has not been done yet is due to the fact that
> although there is experimental support for multi-threading in Perl now, it is
> specifically stated that it is not to be considered "production-quality" code.
> 
> This being the case, we have opted to wait until there is a solid
> multi-threading release of Perl first before spending more time on it.
> 
> regards
> 
> Hugh
> 
> 
> On Wed, 27 Feb 2002 19:55, Damir Dzeko wrote:
>> Hugh Irvine <[EMAIL PROTECTED]> writes:
>>> Hello Damir -
>>> 
>>> As always, many thanks for your very valuable contributions.
>>> 
>>> Mike will apply the fixes for the next release.
>> 
>> My coleagues & I are discussing an interesting idea. Would it
>> be possible to handle slow AuthRADIUS proxy requests in a single
>> process (forked out of main radiusd)?
>> 
>> That process would have a communication line with main radius
>> daemon through some socket (or whatever) and handle all slow
>> requests in one big select loop (instead of forking an extra
>> process to do the job for less then a few packets). That would
>> make more efficient use of system resources.
>> 
>> -d
> 
> -- 
> Radiator: the most portable, flexible and configurable RADIUS server
> anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
> -
> Nets: internetwork inventory and management - graphical, extensible,
> flexible with hardware, software, platform and database independence.
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on [EMAIL PROTECTED]
> To unsubscribe, email '[EMAIL PROTECTED]' with
> 'unsubscribe radiator' in the body of the message.

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.



Re: (RADIATOR) AuthRADIUS (non)forking problem

2002-02-27 Thread Hugh Irvine


Hello Damir -

Mike and I have discussed this issue at length over a long period of time, 
and indeed the topic has also been discussed on the mailing list several 
times as well.

Basically, it is our intention to extend Radiator to use multi-threading so 
that each request runs in a separate thread, which we feel is the best 
approach for dealing with all these sorts of problems (not just with AuthBy 
RADIUS clauses).

The only reason that this has not been done yet is due to the fact that 
although there is experimental support for multi-threading in Perl now, it is 
specifically stated that it is not to be considered "production-quality" code.

This being the case, we have opted to wait until there is a solid 
multi-threading release of Perl first before spending more time on it.

regards

Hugh


On Wed, 27 Feb 2002 19:55, Damir Dzeko wrote:
> Hugh Irvine <[EMAIL PROTECTED]> writes:
> > Hello Damir -
> >
> > As always, many thanks for your very valuable contributions.
> >
> > Mike will apply the fixes for the next release.
>
> My coleagues & I are discussing an interesting idea. Would it
> be possible to handle slow AuthRADIUS proxy requests in a single
> process (forked out of main radiusd)?
>
> That process would have a communication line with main radius
> daemon through some socket (or whatever) and handle all slow
> requests in one big select loop (instead of forking an extra
> process to do the job for less then a few packets). That would
> make more efficient use of system resources.
>
> -d

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
===
Archive at http://www.open.com.au/archives/radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.



Re: (RADIATOR) AuthRADIUS (non)forking problem

2002-02-27 Thread Damir Dzeko

Hugh Irvine <[EMAIL PROTECTED]> writes:

> Hello Damir -
> 
> As always, many thanks for your very valuable contributions.
> 
> Mike will apply the fixes for the next release.

My coleagues & I are discussing an interesting idea. Would it
be possible to handle slow AuthRADIUS proxy requests in a single
process (forked out of main radiusd)?

That process would have a communication line with main radius
daemon through some socket (or whatever) and handle all slow
requests in one big select loop (instead of forking an extra
process to do the job for less then a few packets). That would
make more efficient use of system resources.

-d

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.



Re: (RADIATOR) AuthRADIUS (non)forking problem

2002-02-26 Thread Hugh Irvine


Hello Damir -

As always, many thanks for your very valuable contributions.

Mike will apply the fixes for the next release.

regards

Hugh


On Wed, 27 Feb 2002 00:06, Damir Dzeko wrote:
> Hello,
>
> Using Radiator with AuthRADIUS module to handle requests for GRIC
> authentication I noticed strange problems. Although in my
> configuration was specified that handler for that type of request
> should fork, no forking occured.
>
> That caused our radiusd to block forever(!). That could be because
> some bug exists in Select.pm (in process_timeouts function perhaps?).
>
> Useful information could be that I'm using AuthRADIUS with "Synchronous"
> flag set.
>
> I traced bug to AuthRADIUS::handle_request function which overrides
> default handle_request function defined in its superclass AuthGeneric.
>
> Other Auth* modules which do not redefine handle_request worked fine
> with 'Fork' option set, but this one never forked.
>
> Because of that I added the same piece of code found in
> AuthGeneric::handle_request into AuthRADIUS::handle_request
>
> # Now we might fork before processing the request
> # Should only do this for "slow" authentication methods
> return ($main::IGNORE, 'forked')
>   if $self->{Fork} && !$self->handlerFork;
>
> I hope you will include that in new release of Radiator.
>
> Also, it would be of great help if someone could correct the
> bug that caused my radiusd to wait forever (almost for one
> hour) in this loop:
>
>  while (! defined $p->{RadiusResult})
>   {
>   ...
>
>   &Radius::Select::process_timeouts();
>   }
>  return ($p->{RadiusResult});
>
> During that period users of ISP that I work for could not
> connect to our dial-up service and that is certainly something
> that should happen never again.
>
> -d
>
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on [EMAIL PROTECTED]
> To unsubscribe, email '[EMAIL PROTECTED]' with
> 'unsubscribe radiator' in the body of the message.

-- 
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
===
Archive at http://www.open.com.au/archives/radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.



(RADIATOR) AuthRADIUS (non)forking problem

2002-02-26 Thread Damir Dzeko

Hello,

Using Radiator with AuthRADIUS module to handle requests for GRIC
authentication I noticed strange problems. Although in my 
configuration was specified that handler for that type of request
should fork, no forking occured.

That caused our radiusd to block forever(!). That could be because
some bug exists in Select.pm (in process_timeouts function perhaps?).

Useful information could be that I'm using AuthRADIUS with "Synchronous"
flag set.

I traced bug to AuthRADIUS::handle_request function which overrides
default handle_request function defined in its superclass AuthGeneric.

Other Auth* modules which do not redefine handle_request worked fine
with 'Fork' option set, but this one never forked.

Because of that I added the same piece of code found in
AuthGeneric::handle_request into AuthRADIUS::handle_request

# Now we might fork before processing the request
# Should only do this for "slow" authentication methods
return ($main::IGNORE, 'forked')
if $self->{Fork} && !$self->handlerFork;

I hope you will include that in new release of Radiator.

Also, it would be of great help if someone could correct the
bug that caused my radiusd to wait forever (almost for one
hour) in this loop:

 while (! defined $p->{RadiusResult})
{
  ...

&Radius::Select::process_timeouts();
}
 return ($p->{RadiusResult});

During that period users of ISP that I work for could not
connect to our dial-up service and that is certainly something
that should happen never again.

-d

===
Archive at http://www.open.com.au/archives/radiator/
Announcements on [EMAIL PROTECTED]
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.