[zeromq-dev] Using zeroMQ socket from freeradius module

Max Kuznecov mek at mek.uz.ua
Fri Jul 6 16:11:20 CEST 2012


Oh, sorry I forgot to mention  versions:
linux centos 6.2, zeromq 2.2.0

2012/7/6 Max Kuznecov <mek at mek.uz.ua>:
> Hi!
>
> I'm facing a strange problem which I'm unable to resolve for about a
> week, so I decided to ask in the list as a last resort.
>
> I've got a system which collects requests from custom freeradius
> account module, stores them in persistent queue on disk and then
> serves to the agents, which put them into postgres afterwards.
> Here's a brief arch image: http://imageshack.us/photo/my-images/821/archn.png/
>
> In radius module a single 0mq socket (REQ) is instantiated which is
> later used for sending requests to collector.
>
> Collector is a separate process which binds on the REP socket (tcp, on
> the same port as radius module, of course)
> Collector's loop code: http://pastebin.com/xuN4pitv
>
> Radius module code: http://pastebin.com/HhUK4nGG
> It uses mutexes as radius calls the function from various threads.
>
> xsend function is a basic wrapper: http://pastebin.com/V3dG0kV9
>
> So, the problem is: when the radius initiates the module, it
> successfully creates the context and the socket.
> But, when it tries to send a message to the collector, the following happens:
> Send operation reports ok (code 0), but when it tries to receive
> afterwards it blocks. And the collector doesn't receive the data sent
> by module!
>
> I've put a lot of debug printfs all around and the collector just
> doesn't seem to complete the recv function call.
> But what is the most strange in all this is that if I run radius with
> debug flag (-X) which tell it to run in single threaded and in
> foreground - everything works just as planned - modules sends messages
> to collector, collector replies etc. Even when I supply a -f option to
> radiusd, which just evades calling fork() it still works. It doesn't
> only when radius daemon is run in background.
>
> So, basically this is what I cannot understand, if it didn't work in
> any case I'd understand, but this...
> Maybe anybody could came up with any idea about what's wrong here. I'd
> be greatly appreciated!
>
> --
> ~syhpoon



-- 
~syhpoon



More information about the zeromq-dev mailing list