Seems like BEGIN{} block did the trick. Thanks, Alexander. I also moved from IPC to SQLite.
But now i am faced with another problem - memory leak. For about an hour of uptime i get this: 5575 radius 2874M 2870M sleep 59 0 0:01:25 1.2% radiusd/9 and it countinues to grow. thread pool: start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 20 max_requests_per_server = 300 perl threads: max_clones = 30 start_clones = 5 min_spare_clones = 2 max_spare_clones = 64 cleanup_delay = 1 max_request_per_clone = 100 what can cause such behaviour? radiusd -v radiusd: FreeRADIUS Version 2.1.11, for host sparc-sun-solaris2.10, built on Jun 20 2011 at 16:16:34 Thanks! В Mon, 20 Jun 2011 19:15:49 +0100 Alexander Clouter <a...@digriz.org.uk> пишет: > Energ <po...@ponch.ru> wrote: > > > > But, would it make any difference by using BEGIN{} block for > > creating shared memory segment? Wont threaded rlm_perl process this > > section in every thread it starts? > > > Threaded to FreeRADIUS means those methods you define are reentrant. > IIRC BEGIN{} is called only when rlm_perl fires up, afterwards your > methods are called whenever required, pre-emptively. > > Cheers > - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html