On Fri, May 05, 2017 at 12:30:56PM +0200, Maxim Bourmistrov wrote:
> 
> Hey,
> on OpenBSD 6.0-stable I have following configuration for relayd:
> 
> ————snip———————
> interval 10
> timeout 1200
> prefork 15
> log all
> ——————————————————
>  
> Respective login.conf to spawn more relayd procs:
> 
> relayd:\
>         :maxproc-max=31:\
>         :maxproc-cur=15:\
>         :openfiles=65536:\
>         :tc=daemon:
> 
> 
> With config options above moved to a 6.1 creates following:
> 
> relayd starts but brings up no more that 3 relay-processes.
> Also after start up it refuses to do any checks configured (in my simple test 
> I used check tcp) 
> 
> [mxb-test]-[12:21:41]# relayctl sh su
> Id      Type            Name                            Avlblty Status
> 1       relay           rabbitmq                                active
> 1       table           rabbitmqpool:5672                       empty
> 1       host            10.5.96.8                               unknown
> 2       table           rabbitmqfallback:5672                   empty
> 2       host            10.5.96.9                               unknown
> 
> 
> Changing ’prefork’ from 15 to 3 makes it work.
> 
> Is this a bug?
> 
> Br
> 
> 
> 

Hey,

This is a random guess since you haven't posted the whole config, but I think
it has bitten me too sometime:

Do you have the global options such as prefork defined before your
relays and routes or not?

The order of the global options matter. If the global options are set after
the table they are not initialized on the tables and can actually crash relayd.
This is because the health checking uses a different prefork value and checks
the "wrong" amount.

I'm not sure, but I think it is not a bug: it is documented in relayd.conf(5).

Thinking about it: would it be acceptable if `relayd -n` shows a warning if
global options are defined in the wrong order? I can write the patch for it
if it makes sense.

I hope this helps you in some way,

-- 
Kind regards,
Hiltjo

Reply via email to