I just checked with my installed pound 2.5 branch and enabling/disabling backends for both global and listener specific services work for me. And I know it works, because I have a perl based web interface wrapped around it.
However my poundctl looks more than a little different, because I’m running my custom/v2.5 branch. https://github.com/goochjj/pound/commits/custom/v2.5 I do know there is no serialization protocol between pound and poundctl… It uses the exact same binary structures used to store data within pound to send across the domain socket. Which means it can be very sensitive to things like using a pound binary from one version and a poundctl binary from another… or things like a 32bit poundctl with a 64bit pound. Usually I would just expect it to segfault if such a mismatch occurred. (Which is why I implemented magic values in my overly customized versions) I pulled up my stage for upstream v2.7b branch : https://github.com/goochjj/pound/commits/stage_for_upstream/v2.7b And found a segfault… However it was something I broke in my backendcookie patch. I’ve committed a fix. Backend enabling/disabling works… I see messages from pound on stderr showing it’s enabling and disabling, and I see the results when I run poundctl again. Anyone running my v2.7b branch should pull down the latest commit if they want poundctl to work. So it seems poundctl works.. at least for me. What versions are you guys having problems with? Joe From: Brad Allison [mailto:[email protected]] Sent: Tuesday, June 18, 2013 9:46 AM To: [email protected] Subject: Re: [Pound Mailing List] poundctl command simply do not work It would appear I'm not the only one to run into and document this exact problem: https://groups.google.com/forum/#!msg/pound_proxy/s_OZhTcznRc/nq_HqNMjFwcJ On Tue, Jun 18, 2013 at 9:37 AM, Brad Allison <[email protected]<mailto:[email protected]>> wrote: I'm trying to use the -b option for poundctl to disable a backend. The command runs with the three fields listener service and backend. The command appears to work. But when I list out the -X option it says all backends are enabled... even though I just disabled it. So the options for poundctl do not work. Notice how the status for the backend index=1 it still set to "active" after I disabled it. [root@ ~]# /usr/sbin/poundctl -c /var/lib/pound/pound.cfg -b 0 0 1 [root@ ~]# /usr/sbin/poundctl -c /var/lib/pound/pound.cfg -X <pound> <listener index="0" protocol="HTTPS" address="0.0.0.0:443<http://0.0.0.0:443>" status="active"> </listener> <service index="0"> <backend index="0" address="10.0.2.21:443<http://10.0.2.21:443>" avg="0.000" priority="5" alive="yes" status="active" /> <backend index="1" address="10.0.3.22:443<http://10.0.3.22:443>" avg="0.000" priority="5" alive="yes" status="active" /> <session index="0" key="demo.lalala.com<http://demo.lalala.com>" backend="1" /> <session index="1" key="107.11.11.11" backend="1" /> </service> </pound>
