> 5 maj 2017 kl. 15:55 skrev Maxim Bourmistrov <m...@alumni.chalmers.se>: > > >> 5 maj 2017 kl. 14:41 skrev Hiltjo Posthuma <hil...@codemadness.org>: >> >> 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 > > The whole config is like this: > > include "/etc/pj/nz/akl1/shared/pf/int/networks" > include "/etc/pj/nz/akl1/shared/pf/int/common_tables" > > interval 10 > timeout 1000 > prefork 3 #15 > log all > > #include "/etc/pj/shared/relayd/protocols" > > tcp protocol tcp_proto { > tcp { nodelay, sack, socket buffer 65536, backlog 128 } > } > > relay rabbitmq { > listen on 10.5.128.16 port 5674 > # protocol tcp_proto > # session timeout 10800 > forward to <rabbitmqpool> port 5672 mode roundrobin check tcp > forward to <rabbitmqfallback> port 5672 mode roundrobin check tcp > } > > Tables are shared with PF so I don’t have to re-define those. > ”common_tables” in config contains: > > table <rabbitmqpool> { $RMQ1_VLAN302 } > table <rabbitmqfallback> { $RMQ2_VLAN302 } > > I seems not be able to find a place in manage were it states that global > options need to go before > table definitions. > > Note, config layout exactly the same which runs already on 6.0-stable. > > My original question is why I can’t fork more than 3 procs any more > and why relayd starts then prefork > 3 and does not do a health check. > > Br
Hm, I tried this out - re-ordering the layout of the config. You are, indeed, correct here. Strange that this runs on 6.0. Case closed. Sorry for the noise. Br