Re: [ANNOUNCE] haproxy-2.4.0

2021-05-17 Thread Vincent Bernat
 ❦ 17 mai 2021 17:48 +02, Artur:

> When can we expect prebuilt packages for Debian on haproxy.debian.net
> ?

Hello,

Sometimes this week.
-- 
The secret source of humor is not joy but sorrow; there is no humor in Heaven.
-- Mark Twain



Re: [ANNOUNCE] haproxy-2.4.0

2021-05-21 Thread Vincent Bernat
 ❦ 17 mai 2021 17:48 +02, Artur:

> When can we expect prebuilt packages for Debian on haproxy.debian.net
> ?

They have been published. Buster, Bionic and Focal are available.
-- 
He jests at scars who never felt a wound.
-- Shakespeare, "Romeo and Juliet, II. 2"



Re: Official ubuntu 20 repository

2021-06-06 Thread Vincent Bernat
 ❦  6 June 2021 11:54 +01, Ismail Azerty:

> Is there any official ubuntu 20 repository to install the latest
> version of haproxy ?

This is semi-official: 
https://haproxy.debian.net/#?distribution=Ubuntu&release=focal
-- 
Don't comment bad code - rewrite it.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.3.12

2021-07-08 Thread Vincent Bernat
 ❦  8 July 2021 17:47 +02, Willy Tarreau:

> I'm seeing that at least Vincent was fast enough to package 2.3.11 for
> debian 10, I hope nobody deployed it yet. I'm really sorry for the mess.
> For those who are wondering, 2.4 was not affected.

The new packages are available!
-- 
Let the data structure the program.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Test, please ignore

2021-07-23 Thread Vincent Bernat
 ❦ 23 July 2021 12:55 +02, Willy Tarreau:

> The list looks uncommonly quiet after having touched some
> anti-spam rules, just testing.

It's the holidays Willy! :)
-- 
Don't over-comment.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] HTTP/2 vulnerabilities from 2.0 to 2.5-dev

2021-08-17 Thread Vincent Bernat
 ❦ 17 August 2021 17:13 +02, Willy Tarreau:

> HAProxy is affected by 4 vulnerabilities in its HTTP/2 implementation in
> recent versions (starting with 2.0). Three of them are considered as having
> a moderate impact as they only affect the interpretation of the authority
> (Host header field) in H2->H2 communications in versions 2.2 and above.
> One only affects a risk of misinterpretation from lenient HTTP/1 backend
> servers, and affects version 2.0 and above, though at the time of writing
> we're not aware of any such vulnerable server among the mainstream ones
> that are commonly found behind HAProxy (Apache, NGINX, Varnish, etc).

For users of haproxy.debian.net or Launchpad PPA, the vulnerabilities
are fixed by patching the previous versions. Launchpad PPA builders are
still running but it should be available in the next hour. I will upload
the new versions later this week.

Check the changelog (in /usr/share/doc/haproxy/changelog.Debian.gz) if
you want to know if you are running a fixed version. The list of fixed
versions are:

haproxy_2.4.2-2~bpo10+1
haproxy_2.4.2-2~bpo11+1
haproxy_2.4.2-2ppa1~bionic
haproxy_2.4.2-2ppa1~focal
haproxy_2.2.9-2+deb11u1 (should be available from debian-security soon)
haproxy_2.3.12-2~bpo10+1
haproxy_2.3.12-2ppa1~bionic
haproxy_2.3.12-2ppa1~focal
haproxy_2.2.15-3~bpo9+1
haproxy_2.2.15-3~bpo10+1
haproxy_2.2.15-3ppa1~bionic
haproxy_2.2.15-3ppa1~focal
haproxy_2.0.23-3~bpo9+1
haproxy_2.0.23-3~bpo10+1
haproxy_2.0.23-3ppa1~xenial
haproxy_2.0.23-3ppa1~bionic
haproxy_2.0.23-3ppa1~focal

-- 
Make input easy to proofread.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] HTX vulnerability from 2.0 to 2.5-dev

2021-09-07 Thread Vincent Bernat
 ❦  7 September 2021 17:27 +02, Willy Tarreau:

> I'd like to thank the usual distro maintainers for having accepted to
> produce yet another version of their packages in a short time. Hopefully
> now we can all get back to development!

For Debian/Ubuntu, the fixed versions are:

2.4.3-2
2.4.3-2~bpo10+1
2.4.3-2~bpo11+1
2.4.3-2ppa2~bionic
2.4.3-2ppa1~focal

2.3.13-2
2.3.13-2~bpo10+1
2.3.13-2ppa1~bionic
2.3.13-2ppa1~focal

2.2.16-3
2.2.16-3~bpo9+1
2.2.16-3~bpo10+1
2.2.16-3ppa1~bionic
2.2.16-3ppa1~focal
2.2.9-2+deb11u2 (to be released pretty soon)
2.2.9-2+deb11u2~bpo10+1 (not released yet)
2.2.9-1ubuntu0.2 (not 100% sure as it is not released yet)

2.0.24-1
2.0.24-1~bpo9+1
2.0.24-1~bpo10+1
2.0.24-1ppa1~xenial
2.0.24-1ppa1~bionic
2.0.24-1ppa1~focal
2.0.13-2ubuntu0.3 (not 100% sure as it is not released yet)
-- 
Don't patch bad code - rewrite it.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] HTX vulnerability from 2.0 to 2.5-dev

2021-09-08 Thread Vincent Bernat
 ❦  8 September 2021 09:02 +02, Artur:

> Hello,
>
> Thank you.
>
> Could you please explain the version numbering differences between official 
> haproxy release and the linux distributions
> packages ?
>
> For example : 2.4.4 (official) -> 2.4.3-2~bpo10+1 (Debian 10
> backports)

2.4.3-2~bpo10+1 means this is based on upstream version 2.4.3, second
revision for Debian (-2), backport to Debian 10 (~bpo10), first iteration of
the backport (+1). The changelog (in ~doc/haproxy/changelog.Debian.gz)
gives a hint of the deviation compared to official upstream version:

haproxy (2.4.3-2~bpo10+1) buster-backports; urgency=medium

  * Rebuild for buster-backports.

 -- Vincent Bernat   Sat, 04 Sep 2021 15:19:43 +0200

haproxy (2.4.3-2) experimental; urgency=high

  * d/patches: fix missing header name length check in HTX (CVE-2021-40346).

 -- Vincent Bernat   Sat, 04 Sep 2021 11:56:31 +0200

haproxy (2.4.3-1~bpo10+1) buster-backports; urgency=medium

  * Rebuild for buster-backports.

 -- Vincent Bernat   Sat, 21 Aug 2021 16:47:45 +0200

haproxy (2.4.3-1) experimental; urgency=medium

  * New upstream release.
  * d/patches: remove patches applied upstream.
  * d/patches: h2: match absolute-path not path-absolute for :path.

 -- Vincent Bernat   Sat, 21 Aug 2021 16:32:25 +0200

Debian packages are not based on 2.4.4 because they were prepared in
advance to be ready when the vulnerability is announced. Packages based
on 2.4.4 will get available later this week.
-- 
Instrument your programs.  Measure before making "efficiency" changes.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.4.5

2021-10-03 Thread Vincent Bernat
 ❦  3 October 2021 08:53 +02, Christopher Faulet:

> I will push a fix. As a workaround, you can temporarily disable the HTTP 
> compression filter.

Will you release 2.4.6 or should we push packages for 2.4.5 with the
patch? For Debian/Ubuntu, I didn't push packages for 2.4.5 yet.
-- 
Don't sacrifice clarity for small gains in "efficiency".
- The Elements of Programming Style (Kernighan & Plauger)



[PATCH] BUILD: improve reproducibility by filtering BUILD_CFLAGS

2021-10-19 Thread Vincent Bernat
Some distributions (Debian) adds `-ffile-prefix-map=/current/pwd=` to
CFLAGS in an attempt to make the package more reproducible when source
code is using `__FILE__`. Unfortunately, this makes HAProxy build not
reproducible since CFLAGS is recorded to be displayed in `haproxy
--version`. To solve this, we filter out these arguments as they are
not really important to report to the user.

This could be backported to 2.4. Older versions do not display CFLAGS.
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 50a21b3105cd..6597f0bf855f 100644
--- a/Makefile
+++ b/Makefile
@@ -968,7 +968,7 @@ src/haproxy.o:  src/haproxy.c $(DEP)
  -DBUILD_ARCH='"$(strip $(ARCH))"' \
  -DBUILD_CPU='"$(strip $(CPU))"' \
  -DBUILD_CC='"$(strip $(CC))"' \
- -DBUILD_CFLAGS='"$(strip $(VERBOSE_CFLAGS))"' \
+ -DBUILD_CFLAGS='"$(filter-out -ffile-prefix-map=% 
-fmacro-prefix-map=% -fdebug-prefix-map=%,$(strip $(VERBOSE_CFLAGS)))"' \
  -DBUILD_OPTIONS='"$(strip $(BUILD_OPTIONS))"' \
  -DBUILD_DEBUG='"$(strip $(DEBUG))"' \
  -DBUILD_FEATURES='"$(strip $(BUILD_FEATURES))"' \
-- 
2.33.0




Re: [PATCH] BUILD: improve reproducibility by filtering BUILD_CFLAGS

2021-10-19 Thread Vincent Bernat
 ❦ 19 October 2021 09:22 +02, Vincent Bernat:

> This could be backported to 2.4. Older versions do not display CFLAGS.

Note that if you find this too ugly, I have no problem to maintain this
as an OOT patch.
-- 
Avoid unnecessary branches.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [PATCH] BUILD: improve reproducibility by filtering BUILD_CFLAGS

2021-10-22 Thread Vincent Bernat
 ❦ 22 October 2021 21:08 +02, Willy Tarreau:

>>  ? 19 October 2021 09:22 +02, Vincent Bernat:
>> 
>> > This could be backported to 2.4. Older versions do not display CFLAGS.
>> 
>> Note that if you find this too ugly, I have no problem to maintain this
>> as an OOT patch.
>
> I don't find it ugly. I think it's not the most elegant part of the
> makefile, but a makefile (and ours in particular) is generally not a
> collection of elegant stuff.
>
> I'm just thinking, we have a SILENT_DEFINE macro that should already
> address this. Could you please try to pass your -f... there ? If it
> works it would just be a matter of improving the SILENT_DEFINE
> description to indicate that it works as well for compiler options
> that we don't want to see on the output.

I don't use it directly, it's pushed by Debian build system with some
other flags. I could puts all of them (-g -O2
-ffile-prefix-map=/home/bernat/code/exoscale/haproxy=.
-fstack-protector-strong -Wformat -Werror=format-security) in
SILENT_DEFINE, but if at somepoint, some of them are more invasive, it
would may not be a good idea to hide them out of your view.

Maybe just sit on the patch and see if another distro see a need for it.
I'll keep it as a Debian patch for now and I'll complain in a few years
if I am tired of it.
-- 
Don't stop at one bug.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.2.18

2021-11-05 Thread Vincent Bernat
 ❦  5 November 2021 17:05 -06, Jim Freeman:

> Might this (or something 2.4-ish) be heading towards bullseye-backports ?
> https://packages.debian.org/search?keywords=haproxy
> https://packages.debian.org/bullseye-backports/

2.4 will be in bullseye-backports.
-- 
Don't patch bad code - rewrite it.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.5.2

2022-02-16 Thread Vincent Bernat
 ❦ 16 February 2022 16:27 +01, Willy Tarreau:

> Maybe that would even be a nice improvement for distros to provide these
> by default starting with 2.6 or maybe even 2.5.

Why not enabling them directly on your side then? Are there some numbers
on the performance impact of these options? I am a bit uncomfortable
providing packages that perform slower than an upstream build.
-- 
Don't stop with your first draft.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.5.2

2022-02-16 Thread Vincent Bernat
 ❦ 16 February 2022 22:15 +01, Willy Tarreau:

> That's exactly the sense behind the word "maybe" above, to open the
> discussion :-)  Those with large buffers can definitely see a
> difference. I've seen configs with WAF analysis using 1MB buffers,
> and there the extra CPU usage will be noticeable, maybe 5-10%. My
> impression is that the vast majority of users rely on distro packages
> and are not sensitive to performance (typically sites like haproxy.org
> where enabling everything has no measurable impact, when I'm lucky I
> see 1% CPU). Those who deal with high levels of traffic tend to be
> forced to follow stable updates more often, they'll typically build
> from the Git tree, and are also more at ease with debugging options.
> That was my reasoning, it may be wrong, and I perfectly understand
> your point which is equally valid. And I'm not even asking for a
> change, just saying "maybe it would be even better if".

For Debian, being a binary distribution, we cannot be flexible with the
users. In the past, we were often told we were less performant than a
source distribution because we didn't enable this or this optimization.
Also, 1% CPU increase could also translate to increased latency.

As a comparison, we did not have memory cgroups in our kernels until the
overhead was reduced quite significantly when not using them. On our
side, we believe everyone is using Debian packages. ;-)
-- 
Be careful of reading health books, you might die of a misprint.
-- Mark Twain



Re: [PATCH 1/1: BUILD/MINOR: TCP_KEEPIDLE macos equivalence

2022-05-08 Thread Vincent Bernat
 ❦  8 May 2022 10:57 +02, Willy Tarreau:

> After edition (still minimal and possibly inaccurate but the best I
> could do):
>
> On Linux the interval before starting to send TCP keep-alive packets
> is defined by TCP_KEEPIDLE. MacOS has an equivalent with TCP_KEEPIDLE,
> which also uses seconds as a unit, so it's possible to simply remap the
> definition of TCP_KEEPIDLE to TCP_KEEPALIVE there and get it to seamlessly
> work. The other settings (interval and count) are not present,
> though.

First instance of TCP_KEEPIDLE should be TCP_KEEPALIVE. ;-)
-- 
Treat end of file conditions in a uniform manner.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.6.0

2022-06-03 Thread Vincent Bernat
 ❦ 31 May 2022 17:56 +02, Willy Tarreau:

> HAProxy 2.6.0 was released on 2022/05/31. It added 57 new commits
> after version 2.6-dev12, essentially small bug fixes, QUIC counters
> and doc updates.

It's available on haproxy.debian.net. No QUIC support as neither Debian
nor Ubuntu has the appropriate library.
-- 
The better part of valor is discretion.
-- William Shakespeare, "Henry IV"



Re: [ANNOUNCE] haproxy-2.6.0

2022-06-14 Thread Vincent Bernat

On 6/14/22 14:22, Artur wrote:


No plan to prepare 2.6 packages for Debian 10 ?

If you can, I'm interested. Thank you.


No particular reason, just nobody asked for it. It will land shortly.



Re: Config will not start on 2.6.1 on Ubuntu 22.04

2022-07-06 Thread Vincent Bernat

On 7/6/22 00:37, Henning Svane wrote:

I get under load of haproxy the following problems for all frontends

What do you mean by "under load"?


Here are two of the errors

for frontend FrontEnd_Xmail_L7_IPv4: cannot bind socket (Permission 
denied) for IPv4 number and port


and

for frontend GLOBAL: cannot bind UNIX socket (Permission denied) 
[/run/haproxy/admin.sock]


global

    maxconn 8000

    log /dev/log local0

    log /dev/log local1 notice

    chroot /var/lib/haproxy

    stats socket /run/haproxy/admin.sock mode 660 level admin 
expose-fd listeners


    stats timeout 30s

    user haproxy

    group haproxy

    daemon

I have compared folder permission /run/haproxy on Ubuntu 20.04.4 with 
Ubuntu 22.04 and the permission looks like this for both.


 [/run/haproxy/admin.sock have these permission

drwxrwsr-x  2 haproxy haproxy   40 Jul  5 20:01 haproxy

I have tried your configuration on a freshly installed Ubuntu 22.04 and 
didn't run into any issue. Are you using apparmor? `journalctl -k | grep 
haproxy` may give a hint if you have a profile for it (not shipped by 
the package nor Ubuntu as far as I can see).


Re: SV: Config will not start on 2.6.1 on Ubuntu 22.04

2022-07-06 Thread Vincent Bernat
comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.752:6): apparmor="STATUS" operation="profile_load" 
profile="unconfined" name="man_filter" pid=790 comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.752:7): apparmor="STATUS" operation="profile_load" 
profile="unconfined" name="man_groff" pid=790 comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.756:8): apparmor="STATUS" operation="profile_load" 
profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=791 
comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.756:9): apparmor="STATUS" operation="profile_load" 
profile="unconfined" 
name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" 
pid=791 comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.760:10): apparmor="STATUS" operation="profile_load" 
profile="unconfined" name="lsb_release" pid=792 comm="apparmor_parser"


Jul 05 20:54:10 HAProxy02 kernel: audit: type=1400 
audit(1657047250.764:11): apparmor="STATUS" operation="profile_load" 
profile="unconfined" name="/usr/sbin/chronyd" pid=793 comm="apparmor_parser"


Regards

Henning

*Fra:*Vincent Bernat 
*Sendt:* 6. juli 2022 19:06
*Til:* haproxy@formilux.org
*Cc:* Henning Svane 
*Emne:* Re: Config will not start on 2.6.1 on Ubuntu 22.04

On 7/6/22 00:37, Henning Svane wrote:

I get under load of haproxy the following problems for all frontends

What do you mean by "under load"?

Here are two of the errors

for frontend FrontEnd_Xmail_L7_IPv4: cannot bind socket (Permission
denied) for IPv4 number and port

and

for frontend GLOBAL: cannot bind UNIX socket (Permission denied)
[/run/haproxy/admin.sock]

global

     maxconn 8000

     log /dev/log local0

     log /dev/log local1 notice

     chroot /var/lib/haproxy

     stats socket /run/haproxy/admin.sock mode 660 level admin
expose-fd listeners

     stats timeout 30s

     user haproxy

     group haproxy

     daemon

I have compared folder permission /run/haproxy on Ubuntu 20.04.4
with Ubuntu 22.04 and the permission looks like this for both.

  [/run/haproxy/admin.sock have these permission

drwxrwsr-x  2 haproxy haproxy   40 Jul  5 20:01 haproxy

I have tried your configuration on a freshly installed Ubuntu 22.04 and 
didn't run into any issue. Are you using apparmor? `journalctl -k | grep 
haproxy` may give a hint if you have a profile for it (not shipped by 
the package nor Ubuntu as far as I can see).






Re: SV: SV: Config will not start on 2.6.1 on Ubuntu 22.04

2022-07-08 Thread Vincent Bernat
The error when not running as root is expected. However, the fact it 
does not work on boot, then works after is odd. Can you share a minimal 
configuration file which exhibits this issue?


On 7/8/22 23:43, Henning Svane wrote:

Hi Vincent

And found out if I started the service manual with sudo it also worked
sudo service haproxy start
odin@haproxyxmail01:~$ systemctl status haproxy.service
● haproxy.service - HAProxy Load Balancer
  Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor 
preset: enabled)
  Active: active (running) since Fri 2022-07-08 23:39:11 CEST; 5s ago
Docs: man:haproxy(1)
  file:/usr/share/doc/haproxy/configuration.txt.gz
Main PID: 1945 (haproxy)
   Tasks: 17 (limit: 4578)
  Memory: 22.0M
 CPU: 945ms
  CGroup: /system.slice/haproxy.service
  ├─1945 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p 
/run/haproxy.pid -S /run/haproxy-master.sock
  └─1947 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p 
/run/haproxy.pid -S /run/haproxy-master.sock


sudo ls -l /run/haproxy.pid
-rw-r--r-- 1 root root 5 Jul  8 23:39 /run/haproxy.pid

Haproxy.pid will only be created it haproxy/haproxy.service has been started 
with sudo else it is missing

Regards
Henning

-Oprindelig meddelelse-
Fra: Henning Svane 
Sendt: 8. juli 2022 23:32
Til: Vincent Bernat 
Cc: haproxy@formilux.org
Emne: SV: SV: Config will not start on 2.6.1 on Ubuntu 22.04

Hi Vincent

I have now build 2 new Ubuntu 22.04 servers

It looks like when haproxy service is started under boot it do not have 
permission to bind to interfaces.
If I from console start haproxy manual with sudo it works, but not without 
sudo, then it behaves like when the haproxy.services is started under boot.
So my question how to fix this? So the service is started with permission to 
bind to interfaces.

I can see haproxy.service has these permissions
-rw-r--r-- 1 root root 1506 Jun 22 20:49 /lib/systemd/system/haproxy.service

Start of service under boot:
systemctl status haproxy.service
× haproxy.service - HAProxy Load Balancer
  Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor 
preset: enabled)
  Active: failed (Result: exit-code) since Fri 2022-07-08 16:13:25 CEST; 
1min 56s ago
Docs: man:haproxy(1)
  file:/usr/share/doc/haproxy/configuration.txt.gz
 Process: 1069 ExecStart=/usr/sbin/haproxy -Ws -f $CONFIG -p $PIDFILE 
$EXTRAOPTS (code=exited, status=1/FAILURE)
Main PID: 1069 (code=exited, status=1/FAILURE)
 CPU: 209ms

Jul 08 16:13:25 haproxyxmail01 systemd[1]: haproxy.service: Main process 
exited, code=exited, status=1/FAILURE Jul 08 16:13:25 haproxyxmail01 
systemd[1]: haproxy.service: Failed with result 'exit-code'.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: Failed to start HAProxy Load 
Balancer.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: haproxy.service: Scheduled restart 
job, restart counter is at 5.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: Stopped HAProxy Load Balancer.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: haproxy.service: Start request 
repeated too quickly.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: haproxy.service: Failed with result 
'exit-code'.
Jul 08 16:13:25 haproxyxmail01 systemd[1]: Failed to start HAProxy Load 
Balancer.

And if I try to run my configuration from console Without sudo it fails And 
with sudo it works (See below)

haproxy -d -f /etc/haproxy/haproxy.cfg
Available polling systems :
   epoll : pref=300,  test result OK
poll : pref=200,  test result OK
  select : pref=150,  test result FAILED
Total: 3 (2 usable), will use epoll.

Available filters :
 [CACHE] cache
 [COMP] compression
 [FCGI] fcgi-app
 [  OT] opentracing
 [SPOE] spoe
 [TRACE] trace
Using epoll() as the polling mechanism.
[NOTICE]   (1811) : haproxy version is 2.6.1-1ppa1~jammy
[NOTICE]   (1811) : path to executable is /usr/sbin/haproxy
[ALERT](1811) : Binding [/etc/haproxy/haproxy.cfg:85] for frontend 
FrontEnd_Xmail_L7_IPv4: cannot bind socket (Permission denied) for 
[xx.xx.58.10:80]
[ALERT](1811) : Binding [/etc/haproxy/haproxy.cfg:86] for frontend 
FrontEnd_Xmail_L7_IPv4: cannot bind socket (Permission denied) for 
[xx.xx.58.10:443]
...
[ALERT](1811) : [haproxy.main()] Some protocols failed to start their 
listeners! Exiting.


sudo haproxy -d -f /etc/haproxy/haproxy.cfg Available polling systems :
   epoll : pref=300,  test result OK
poll : pref=200,  test result OK
  select : pref=150,  test result FAILED
Total: 3 (2 usable), will use epoll.

Available filters :
 [CACHE] cache
 [COMP] compression
 [FCGI] fcgi-app
 [  OT] opentracing
 [SPOE] spoe
 [TRACE] trace
Using epoll() as the polling mechanism.
[WARNING]  (1794) : Health check for server HA_DAG_XMail_Autodiscover/XMailDB02 
succeeded, reason: Layer7 check pass

Re: SV: SV: Config will not start on 2.6.1 on Ubuntu 22.04

2022-07-09 Thread Vincent Bernat

On 7/9/22 10:55, Willy Tarreau wrote:

On Sat, Jul 09, 2022 at 12:03:02AM +0200, Vincent Bernat wrote:

The error when not running as root is expected. However, the fact it does
not work on boot, then works after is odd. Can you share a minimal
configuration file which exhibits this issue?


That's very strange, it sounds as if the service was not started as
root. Was there any change in ubuntu 22 regarding the definition of
what user a service starts under ?


We did some debugging off-list and the IP addresses were handled by 
keepalived and ip_nonlocal_bind sysctl was not enabled.




Re: Server timeouts since HAProxy 2.2

2022-08-04 Thread Vincent Bernat

On 2022-08-04 10:35, William Edwards wrote:

However, 
https://haproxy.debian.net/#distribution=Debian&release=buster&version=2.2 says:


"The Debian HAProxy packaging team provides various versions of HAProxy 
packages for use on different Debian or Ubuntu systems. The following 
wizard helps you to find the package suitable for your system. [...] You 
will get a stable release of HAProxy 2.2: you may not get the latest 
version but important fixes from later versions are included. Moreover, 
regressions are unlikely."


The bugs page tries to get users to ALWAYS use the latest version. But 
the haproxy.debian.org page says that it's okay not to use the latest 
version.


That's two different point of views, one from Debian, one from upstream. 
They are difficult to reconcile. That's why you (as a user) have to 
choose: an old version with only "important" fixes (security fixes 
mostly) and with known bugs but unlikely regressions on upgrade, or a 
recent version of a stable branch with fixes and sometimes regressions.


Upstream is unlikely to help debug old versions. The Debian solution is 
to report the issue on bugs.debian.org, but this does not scale well and 
I am likely to just ignore the bug because I am too short on time. If 
2.2.9 as in official Debian repository does not work for you, the 
easiest path is to upgrade to 2.2.25 using the second set of instructions.


> I found this bug[1] on the bugs page which looks promising. I'll do
> some more investigation today. Perhaps someone could corroborate that
> that bug's symptoms match what I'm seeing.

Note that if this patch fixes this bug, this is a lot of work to 
integrate it into the current release of Debian. This will have to wait 
for the next point release (not a security issue), I would need to ask 
people to authorize the patch, explain, ask again, prepare, upload, then 
upload the backports until you get the resulting package available as 
2.2.9-2+deb11u4~bpo10+1. Backporting a random patch may trigger 
regressions as it may need other patches to be backported. This is a 
nest of problems. So, if this patch solves your issue, you are on your 
own maintaining a fork of the package.


The commit mentioned in the patch (eddcfbc1911c when backported) is 
introduced in 2.2.23, so it's likely not the patch you need or you need 
other patches as well.




Re: [*EXT*] [ANNOUNCE] haproxy-2.6.3

2022-08-19 Thread Vincent Bernat

On 2022-08-19 22:16, Ionel GARDAIS wrote:


I had to rollback to 2.6.2 after having upgrade to 2.6.3 because systemd was 
restarting the haproxy process every 1m30s (on an up-to-date Debian 11)
apt upgrade itself hung while doing the upgrade.


With Debian packages from haproxy.debian.net? Logs from "journalctl -eu 
haproxy" should help.




Re: [*EXT*] [ANNOUNCE] haproxy-2.6.3

2022-08-19 Thread Vincent Bernat

On 2022-08-19 23:09, Ionel GARDAIS wrote:

Aug 19 22:09:09 haproxy-2 haproxy[1280]: [WARNING]  (1280) : Failed to connect 
to the old process socket '/run/haproxy/admin.sock'
Aug 19 22:09:09 haproxy-2 haproxy[1280]: [ALERT](1280) : Failed to get the 
sockets from the old process!


There was a change in 2.6.0 (but not in 2.6.3) where "expose-fd 
listeners" for stats socket is not needed anymore. Is the line present 
in your configuration? (grep admin.sock /etc/haproxy/haproxy.cfg)


What's the output of systemctl cat haproxy?


Aug 19 22:09:09 haproxy-2 haproxy[1280]: [NOTICE]   (1280) : New worker (1282) 
forked
Aug 19 22:09:09 haproxy-2 haproxy[1280]: [NOTICE]   (1280) : Loading success.
Aug 19 22:09:09 haproxy-2 haproxy[1282]: [WARNING]  (1282) : Server bck-speedtest/go-v6 
is DOWN, reason: Layer4 connection problem, info: "Connection>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: Server bck-speedtest/go-v6 is DOWN, reason: Layer4 
connection problem, info: "Connection refused", check dur>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: Server bck-speedtest/go-v6 is DOWN, reason: Layer4 
connection problem, info: "Connection refused", check dur>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: [WARNING]  (1282) : Server 
bck-nuxeo-arch/nuxeo-arch is DOWN, reason: Layer4 connection problem, info: "No 
r>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: [ALERT](1282) : backend 
'bck-nuxeo-arch' has no server available!
Aug 19 22:09:09 haproxy-2 haproxy[1282]: Server bck-nuxeo-arch/nuxeo-arch is DOWN, reason: 
Layer4 connection problem, info: "No route to host", check>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: Server bck-nuxeo-arch/nuxeo-arch is DOWN, reason: 
Layer4 connection problem, info: "No route to host", check>
Aug 19 22:09:09 haproxy-2 haproxy[1282]: backend bck-nuxeo-arch has no server 
available!
Aug 19 22:09:09 haproxy-2 haproxy[1282]: backend bck-nuxeo-arch has no server 
available!
[…] // others few backends not responding
// then


Are these expected?



Re: [*EXT*] [ANNOUNCE] haproxy-2.6.3

2022-08-20 Thread Vincent Bernat

On 2022-08-20 19:15, Ionel GARDAIS wrote:

Below is the systemctl cat haproxy output.
Yes, not responding backends was expected, sorry for not specified it.
"expose-fd listeners" was present in the configuration file. Update fails even 
after I removed the two keywords.
I have
 EXTRAOPTS="-x /run/haproxy/admin.sock"
defined in /etc/defaults/haproxy
This is the path referenced in the configuration file
 stats socket /run/haproxy/admin.sock mode 660 level admin


The EXTRAOPTS in /etc/default/haproxy is ignored since quite some time 
(due to being overrided in the systemd file).




Re: [*EXT*] [ANNOUNCE] haproxy-2.6.3

2022-08-20 Thread Vincent Bernat

On 2022-08-20 21:36, Ionel GARDAIS wrote:

That was it :
- remove the EXTRAOPTS from /etc/default/haproxy
- stop the running process referencing -x /run/haproxy/admin.sock on the CLI
- upgrade

All is OK.
First processes do not list -x on the CLI and a reload spawn a process with -x 
sockpair@


So, EXTRAOPTS is not ignored after all. I thought it would be overridden 
by the EXTRAOPTS set in the service file, but EnvironmentFile takes 
priority (despite being listed before), so that's the reverse situation.




Re: [*EXT*] [ANNOUNCE] haproxy-2.6.3

2022-08-20 Thread Vincent Bernat

On 2022-08-20 22:35, Bren wrote:


EnvironmentFile=-/etc/default/haproxy


Do you have something here too?


Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid"


This does not match the file shipped by HAProxy, but this may explain 
why you also run into this bug.




Re: SSL Certificate

2022-09-01 Thread Vincent Bernat

On 2022-09-01 18:53, Илья Шипицин wrote:


that website provides some non confidential documentation.
neither it asks you for login/password or payment details.

there's nothing wrong with http on such websites.


There are download links without an obvious way to check for their 
integrity. HTTPS would at least protect against simple man in the 
middle. Or links should be to directory (but an attacker could hide the 
fact there are hash for the files then).




Re: Followup on openssl 3.0 note seen in another thread

2022-12-14 Thread Vincent Bernat

On 2022-12-14 15:15, Willy Tarreau wrote:

Possibly, yes. It's more efficient in every way from what we can see.
For users who build themselves (and with QUIC right now you don't have
a better choice), it should not change anything and will keep robustness.
For those relying on the distro's package, I don't know if it's possible
to install the previous distro's package side-by-side, but in any case
it can start to become a mess to deal with.


It's possible on Debian and I suspect this is the same for RedHat. 
However, you don't get security updates in this case.




Re: Followup on openssl 3.0 note seen in another thread

2022-12-15 Thread Vincent Bernat

On 2022-12-16 05:49, Willy Tarreau wrote:

There's currently a great momentum around WolfSSL that was already
adopted by Apache, Curl, and Ngtcp2 (which is the QUIC stack that
powers most HTTP/3-compatible agents). Its support on haproxy is
making fast progress thanks to the efforts on the two sides, and it's
pleasant to speak to people who care about performance. I'd bet we'll
find it packaged in a usable state long before OpenSSL finally changes
their mind on QUIC and reaches distros in a usable state. That's a
perfect (though sad) example of the impact of design by committee!


It's currently packaged in Debian and Ubuntu. For Ubuntu, it is 
currently in universe (no security support). For Debian, there are 
discussions to not ship it in the next release due to security concerns, 
but this is worked on.


I'll ask again later when its support is finished in HAProxy if we can 
switch to it for Debian/Ubuntu packages.


Next Debian will be using OpenSSL 3.0.0. Ubuntu is using OpenSSL 3.0.0 
since Jammy.




Re: add-apt-repository ppa:vbernat/haproxy-2.7 fails

2023-01-05 Thread Vincent Bernat

On 2023-01-05 18:23, Henning Svane wrote:


TimeoutError: [Errno 110] Connection timed out


Either your system does not have a connection to Internet or there was a 
transient error with Launchpad. Not much to do except retry a bit later.




Re: [*EXT*] Important HAProxy releases to come next week

2023-02-13 Thread Vincent Bernat

On 2023-02-13 14:08, Thomas Pedoussaut wrote:

That's a pretty sneaky way to ruin one's Valentine dinner. :-D

Sure, but we have to compose between disclosing too early, ruining
the west coast's morning and too late, ruining eastern dinners :-)
Maybe this one will be remembered as the Valentine's bug.

I think we're mostly good as it is now, but I'm still having some
backports to finish for now.


Do you know if Vincent Bernat will be publishing his PPA quickly 
afterwards ?


Yes, I'll be ready.



Re: [*EXT*] Important HAProxy releases to come next week

2023-02-13 Thread Vincent Bernat

On 2023-02-13 19:34, Vincent Bernat wrote:

That's a pretty sneaky way to ruin one's Valentine dinner. :-D

Sure, but we have to compose between disclosing too early, ruining
the west coast's morning and too late, ruining eastern dinners :-)
Maybe this one will be remembered as the Valentine's bug.

I think we're mostly good as it is now, but I'm still having some
backports to finish for now.


Do you know if Vincent Bernat will be publishing his PPA quickly 
afterwards ?


Yes, I'll be ready.


For the Ubuntu PPA, there will be a small delay until the packages are 
built (I'll push the source at the disclosure time, but Launchpad will 
take a few minutes to build them). So, you should expect them a bit later.




Re: [*EXT*] RE: [ANNOUNCE] haproxy-2.4.22

2023-02-14 Thread Vincent Bernat

On 2023-02-14 18:08, Ionel GARDAIS wrote:

Hi Marc,

I guess Vincent choose to use a -2 tag so that users who hold their package on 
minor version will still get the update.


That's because the uploads were prepared in advance, before the 2.4.22 
release. Willy sent us the patch in advance to be ready. The real 2.4.22 
will likely be available tomorrow or the day after.




Re: process of release to debian, backports ?

2023-05-10 Thread Vincent Bernat
For Debian stable, usually only a critical vulnerability. In theory, 
this could also be major bugs, but maintaining an hybrid patched version 
is something we prefer not to do, to not have people running in the wild 
an additional unsupported (by upstream) branch.


For Debian backports, they should follow the version in testing. 
Sometimes (like now), I forget to upload the version once it reaches 
testing.


Note that Debian backports may upgrade you to a new major version 
without much warning.



On 2023-05-09 23:17, Jim Freeman wrote:

Just Curious ... (probably a Vincent et al question?)

What considerations/timings trigger gating an haproxy release getting 
into debian (and backports) archives ?


Severity of problems fixed in release (e.g. CVE, ...) ?
Available bandwidth/fatigue of uploaders ?
Debian guidelines ?

As always - gratitude and kudos to all for a stellar and useful system.
...jfree




Re: USE_QUIC in haproxy debian packages?

2023-11-22 Thread Vincent Bernat

On 2023-11-22 09:13, William Lallemand wrote:

Hello Vincent,

[HAProxy list in cc]

We backported the USE_QUIC_OPENSSL_COMPAT build option in HAProxy 2.8.4,
so we can build with USE_QUIC using OpenSSL without a patched version
of OpenSSL.

Unfortunately we can't activate this option in the default build,
because it's not compatible with other openssl libraries (quictls,
libressl and boringssl don't use a specific build option). And using
only a Makefile we can't really autodetect the libraries to activate an
option.

Do you think that's possible to activate these 2 options for the next
2.8 debian/ubuntu packages?


Yes, I'll upload shortly, plus for jemalloc.



Re: Segfault on 2.1.3

2020-03-03 Thread Vincent Bernat
 ❦  3 mars 2020 15:34 -07, Sean Reifschneider :

> We've been running haproxy 1.8 series for quite a while.  We're currently
> in the process of updating to 2.1, and have installed from the vbernat PPA
> on Ubuntu 18.04 using the same old config file.
>
> Now we are seeing segfaults a few times a day:

You can easily collect core information if you install systemd-coredump.
Then, use "coredumpctl list" to locate the collected core, then
"coredumpctl info XXX" to get some stack traces. If you install the
-dbgsym package, you can also use "coredumpctl debug XXX" then use "bt
full" and send the output.
-- 
Don't stop with your first draft.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Segfault on 2.1.3

2020-03-04 Thread Vincent Bernat
 ❦  4 mars 2020 13:19 -07, Sean Reifschneider :

> I've upgraded back to 2.1, and installed the systemd-coredump, I'll update
> when I have additional information.  I wasn't able to find a -dbgsym
> package, I even looked in the debian pool directory for the PPA.  We're
> talking like a haproxy-dbgsym package, right?  Or am I missing
> something?

Sorry, I forgot to enable this option for 2.1 PPA. You should still be
able to get tracebacks without the dbgsym package (with "coredumpctl
info XXX").
-- 
Indent to show the logical structure of a program.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Segfault on 2.1.3

2020-03-16 Thread Vincent Bernat
 ❦ 16 mars 2020 16:02 -06, Sean Reifschneider:

> I reverted back to haproxy 2.0.13 from the PPA last Wednesday and have
> verified that we get no segfaults on that.  If there's anything else I can
> provide for you, let me know.  Otherwise I'm just gonna close this ticket
> in our bugtracker.  :-)

Sorry, can't help you more. Maybe wait for the next release. It will get
-dbgsym and it should provide more info on why you get the problem.
-- 
Don't go around saying the world owes you a living.  The world owes you
nothing.  It was here first.
-- Mark Twain



Re: [PATCH] enable arm64 builds in travis-ci

2020-05-08 Thread Vincent Bernat
 ❦  8 mai 2020 14:25 +02, Willy Tarreau:

>> > Let's increase the timeout to see if it has a chance to finish, no ?
>> >
>> 
>> yes
>
> OK now pushed. It's really annoying to work blindly like this. The
> build model Travis uses is broken by design. Requiring to commit
> something for testing is utterly wrong. And doing so within the
> project that's supposed to being test is further wrong. We already
> have 44 patches only on .travis.yml! If this continues like this,
> I predict that a "pre-CI" solution will appear to test if your
> change is likely to trigger a travis error before it gets merged...

You can push changes to a (throwable) branch instead.
-- 
Make it clear before you make it faster.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Debian packaging note

2020-05-28 Thread Vincent Bernat
 ❦ 28 mai 2020 12:48 +02, Tim Düsterhus:

>> Okay, I've done what I really wanted to avoid and built my own HAProxy.
>> I'm now running HAProxy 2.1.5-1~~~timwolla+1 and I hope that it will
>> smoothly upgrade to Vincent's build once it is released.
>> 
>
> While researching how to build a 2.1.5 .deb based off your 2.1.4 sources
> I noticed that Debian QA complained that HAProxy's compiler flags were
> hidden [1]. You should be able to fix that by adjusting MAKEARGS in
> debian/rules to include 'V=1':

Thanks. I have added that for the next build on both 2.0 and 2.1.
-- 
Patch griefs with proverbs.
-- William Shakespeare, "Much Ado About Nothing"



Re: OSX builds in Travis

2020-07-10 Thread Vincent Bernat
 ❦  9 juillet 2020 13:12 +05, Илья Шипицин:

> do you think does it make sense to use scripted brew instead of travis
> plugin ?
>
> if so, we can try to "brew instal blah-blah-blah || ok, we failed, lets'
> update and install one more time"

I have also hit the problem several time. Brew upstream says to use
"brew bundle" instead:

#v+
-brew install libtool libxml2 check
+brew bundle --file=- <<-EOS
+brew "libtool"
+brew "libxml2"
+brew "check"
+EOS
#v-

This way, brew doesn't complain if a requested package is already
installed but not at the latest version.
-- 
It is a wise father that knows his own child.
-- William Shakespeare, "The Merchant of Venice"



Re: OSX builds in Travis

2020-07-10 Thread Vincent Bernat
 ❦ 11 juillet 2020 00:48 +05, Илья Шипицин:

> he-he, brew bundle is deprecated (does not work)
>
> https://apple.stackexchange.com/questions/148454/brew-bundle-reporting-error-unknown-command-bundle

It's very old. It has been added back at some point. Here is upstream
recommending its use: https://github.com/Homebrew/brew/issues/2491

However, as long as socat is not part of the packages already installed,
just `brew install socat` should always work.
-- 
It usually takes more than three weeks to prepare a good impromptu speech.
-- Mark Twain



Re: OSX builds in Travis

2020-07-11 Thread Vincent Bernat
 ❦ 11 juillet 2020 12:45 +05, Илья Шипицин:

>> > he-he, brew bundle is deprecated (does not work)
>> >
>> >
>> https://apple.stackexchange.com/questions/148454/brew-bundle-reporting-error-unknown-command-bundle
>>
>> It's very old. It has been added back at some point. Here is upstream
>> recommending its use: https://github.com/Homebrew/brew/issues/2491
>
>
> https://travis-ci.com/github/chipitsine/haproxy/jobs/359964175#L133

It seems brew shipped by Travis is quite old. A `brew update` would fix
this but then it adds 10 minutes to the build... So, back to square one.
-- 
Nothing so needs reforming as other people's habits.
-- Mark Twain, "Pudd'nhead Wilson's Calendar"



Re: Haproxy 2.2 LTS package for Debian Stretch oldstable

2020-08-03 Thread Vincent Bernat
 ❦  3 août 2020 22:29 +02, Artur:

> It would be nice to have a Debian Stretch package for the current LTS
> 2.2 branch in backports. It seems it's not available for now.

Well, you are the second person asking this in a short time, so I will
provide one. My rationale is that 2.2 is quite new and Stretch is
already maintained as LTS. When maintained as LTS, we loose the ability
to use backports (there is no LTS for official backports), so it may
make the maintenance more difficult. However, it's unlikely the build
system will change much during the lifecycle of the 2.2 and since it
doesn't require backports, we should be fine.
-- 
Parenthesise to avoid ambiguity.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy 1.8.26-1~bpo9+1

2020-08-04 Thread Vincent Bernat
 ❦  4 août 2020 14:10 +02, Bram Gillemon:

> Running debian stretch with 1.8.25-1~bpo9+1, this morning the package
> upgraded to 1.8.26-1~bpo9+1 and i started noticing some strange
> behaviour.

For reference:

HA-Proxy version 1.8.26-1~bpo9+1 2020/08/03
Copyright 2000-2020 Willy Tarreau 

Build options :
  TARGET  = linux2628
  CPU = generic
  CC  = gcc
  CFLAGS  = -O2 -g -O2 -fdebug-prefix-map=/build/haproxy-1.8.26=. 
-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time 
-D_FORTIFY_SOURCE=2 -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv 
-Wno-null-dereference -Wno-unused-label
  OPTIONS = USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 
USE_SYSTEMD=1 USE_PCRE2=1 USE_PCRE2_JIT=1 USE_NS=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with OpenSSL version : OpenSSL 1.1.0l  10 Sep 2019
Running on OpenSSL version : OpenSSL 1.1.0l  10 Sep 2019
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2
Built with Lua version : Lua 5.3.3
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT 
IP_FREEBIND
Encrypted password support via crypt(3): yes
Built with multi-threading support.
Built with PCRE2 version : 10.22 2016-07-29
PCRE2 library supports JIT : yes
Built with zlib version : 1.2.8
Running on zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), 
raw-deflate("deflate"), gzip("gzip")
Built with network namespace support.

Available polling systems :
  epoll : pref=300,  test result OK
   poll : pref=200,  test result OK
 select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available filters :
[SPOE] spoe
[COMP] compression
[TRACE] trace
-- 
Make your program read from top to bottom.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy 1.8.26-1~bpo9+1

2020-08-07 Thread Vincent Bernat
 ❦  5 août 2020 22:48 +02, Christopher Faulet:

>> i was just setting up the 2.2 version again and i think i did
>> something wrong this morning because i can't reproduce it anymore.
>>
>> Sorry for the extra work i caused.
>>
> No problem. I always prefer a false bug report than a long fix session :)

Does this bug happens often? Will a new version be released "soon"?
Should I update the packages with this patch?
-- 
10.0 times 0.1 is hardly ever 1.0.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy 1.8.26-1~bpo9+1

2020-08-16 Thread Vincent Bernat
 ❦  4 août 2020 14:10 +02, Bram Gillemon:

> Running debian stretch with 1.8.25-1~bpo9+1, this morning the package
> upgraded to 1.8.26-1~bpo9+1 and i started noticing some strange
> behaviour.

I have uploaded 1.8.26-2 with the upstream fix included (for all
supported distros). If you can check it also works for you...

Thanks.
-- 
Take care to branch the right way on equality.
- The Elements of Programming Style (Kernighan & Plauger)



Re: HAProxy 2.2.2 CE issue report

2020-08-25 Thread Vincent Bernat
 ❦ 24 août 2020 21:59 +03, Milen Simeonov:

> frontend fe_main
> bind 127.0.0.1:443 ssl crt-list /etc/haproxy/certs/websites.crt_list

I am not able to reproduce. The configuration is missing a path to a
certificate. Does it also crash if you don't provide a crt-list?
-- 
Don't comment bad code - rewrite it.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy 2.2.3 source

2020-09-08 Thread Vincent Bernat
 ❦  8 septembre 2020 16:13 -04, Alex Evonosky:

> Just compiling 2.2.3 and getting this reference:
>
>
> /haproxy-2.2.3/src/thread.c:212: undefined reference to
> `_Unwind_Find_FDE'

I am getting the same issue on armhf only. Other platforms don't get
this issue. On this platform, we only get:

  w   DF *UND*    GLIBC_2.4   __gnu_Unwind_Find_exidx
000165d0 gDF .text  000c  GCC_3.0 _Unwind_DeleteException
d1f6 gDF .text  0002  GCC_3.0 _Unwind_GetTextRelBase
00016e1c gDF .text  0022  GCC_4.3.0   _Unwind_Backtrace
00016df8 gDF .text  0022  GCC_3.0 _Unwind_ForcedUnwind
00016dd4 gDF .text  0022  GCC_3.3 _Unwind_Resume_or_Rethrow
d1f0 gDF .text  0006  GCC_3.0 _Unwind_GetDataRelBase
0001662c gDF .text  0036  GCC_3.5 _Unwind_VRS_Set
00016db0 gDF .text  0022  GCC_3.0 _Unwind_Resume
000169d8 gDF .text  02ba  GCC_3.5 _Unwind_VRS_Pop
00017178 gDF .text  000a  GCC_3.0 _Unwind_GetRegionStart
000165cc gDF .text  0002  GCC_3.5 _Unwind_Complete
00017184 gDF .text  0012  GCC_3.0 _Unwind_GetLanguageSpecificData
000165dc gDF .text  0036  GCC_3.5 _Unwind_VRS_Get
000164f0 gDF .text  0004  GCC_3.3 _Unwind_GetCFA
00016d8c gDF .text  0022  GCC_3.0 _Unwind_RaiseException

So, older symbols are:

000165d0 gDF .text  000c  GCC_3.0 _Unwind_DeleteException
d1f6 gDF .text  0002  GCC_3.0 _Unwind_GetTextRelBase
00016df8 gDF .text  0022  GCC_3.0 _Unwind_ForcedUnwind
d1f0 gDF .text  0006  GCC_3.0 _Unwind_GetDataRelBase
00016db0 gDF .text  0022  GCC_3.0 _Unwind_Resume
00017178 gDF .text  000a  GCC_3.0 _Unwind_GetRegionStart
00017184 gDF .text  0012  GCC_3.0 _Unwind_GetLanguageSpecificData
00016d8c gDF .text  0022  GCC_3.0 _Unwind_RaiseException

Moreover, comment says _Unwind_Find_DFE doesn't take arguments, but the
signature I have in glibc is:

fde *
_Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
-- 
Don't sacrifice clarity for small gains in "efficiency".
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy 2.2.3 source

2020-09-09 Thread Vincent Bernat
 ❦  9 septembre 2020 16:58 +02, Willy Tarreau:

> Ah I'm really angry because I tested on many platforms, *including* armhf,
> but now I'm not seeing it, so either I failed on one test or it depends
> on the compiler combination :-(

I am getting it on Debian Unstable (gcc 10.2.0, glibc 2.31), Ubuntu
Focal (gcc 9.3.0, glibc 2.31) and Ubuntu Bionic (gcc 7.5.0, glibc 2.27).
-- 
Sometimes I wonder if I'm in my right mind.  Then it passes off and I'm
as intelligent as ever.
-- Samuel Beckett, "Endgame"



Re: Haproxy 2.2.3 source

2020-09-09 Thread Vincent Bernat
It is not cross-built. Debian builds armhf from arm64 builders. It seems
Ubuntu is also using arm64 hardware to build armhf.

An alternative that could work is to use QEMU user emulation. You can
directly use "qemu-debootstrap --arch=armhf" to get a working chroot.
-- 
Format a program to help the reader understand it.
- The Elements of Programming Style (Kernighan & Plauger)

 ――― Original Message ―――
 From: Илья Шипицин 
 Sent:  9 septembre 2020 20:38 +05
 Subject: Re: Haproxy 2.2.3 source
 To: Willy Tarreau
 Cc: Vincent Bernat; Alex Evonosky; haproxy@formilux.org

> how do you build armh ? can you share details ?
> if that's cross build, we can easily add to github actions, for example.
>
> unfortunately, it is hard to get armh native CI.
>
> ср, 9 сент. 2020 г. в 20:01, Willy Tarreau :
>
>> On Tue, Sep 08, 2020 at 11:47:25PM +0200, Vincent Bernat wrote:
>> >  ?  8 septembre 2020 16:13 -04, Alex Evonosky:
>> >
>> > > Just compiling 2.2.3 and getting this reference:
>> > >
>> > >
>> > > /haproxy-2.2.3/src/thread.c:212: undefined reference to
>> > > `_Unwind_Find_FDE'
>> >
>> > I am getting the same issue on armhf only. Other platforms don't get
>> > this issue. On this platform, we only get:
>> >
>> >   w   DF *UND*    GLIBC_2.4   __gnu_Unwind_Find_exidx
>> > 000165d0 gDF .text  000c  GCC_3.0 _Unwind_DeleteException
>> > d1f6 gDF .text  0002  GCC_3.0 _Unwind_GetTextRelBase
>> > 00016e1c gDF .text  0022  GCC_4.3.0   _Unwind_Backtrace
>> > 00016df8 gDF .text  0022  GCC_3.0 _Unwind_ForcedUnwind
>> > 00016dd4 gDF .text  0022  GCC_3.3 _Unwind_Resume_or_Rethrow
>> > d1f0 gDF .text  0006  GCC_3.0 _Unwind_GetDataRelBase
>> > 0001662c gDF .text  0036  GCC_3.5 _Unwind_VRS_Set
>> > 00016db0 gDF .text  0022  GCC_3.0 _Unwind_Resume
>> > 000169d8 gDF .text  02ba  GCC_3.5 _Unwind_VRS_Pop
>> > 00017178 gDF .text  000a  GCC_3.0 _Unwind_GetRegionStart
>> > 000165cc gDF .text  0002  GCC_3.5 _Unwind_Complete
>> > 00017184 gDF .text  0012  GCC_3.0
>>  _Unwind_GetLanguageSpecificData
>> > 000165dc gDF .text  0036  GCC_3.5 _Unwind_VRS_Get
>> > 000164f0 gDF .text  0004  GCC_3.3 _Unwind_GetCFA
>> > 00016d8c gDF .text  0022  GCC_3.0 _Unwind_RaiseException
>> >
>> > So, older symbols are:
>> >
>> > 000165d0 gDF .text  000c  GCC_3.0 _Unwind_DeleteException
>> > d1f6 gDF .text  0002  GCC_3.0 _Unwind_GetTextRelBase
>> > 00016df8 gDF .text  0022  GCC_3.0 _Unwind_ForcedUnwind
>> > d1f0 gDF .text  0006  GCC_3.0 _Unwind_GetDataRelBase
>> > 00016db0 gDF .text  0022  GCC_3.0 _Unwind_Resume
>> > 00017178 gDF .text  000a  GCC_3.0 _Unwind_GetRegionStart
>> > 00017184 gDF .text  0012  GCC_3.0
>>  _Unwind_GetLanguageSpecificData
>> > 00016d8c gDF .text  0022  GCC_3.0 _Unwind_RaiseException
>> >
>> > Moreover, comment says _Unwind_Find_DFE doesn't take arguments, but the
>> > signature I have in glibc is:
>> >
>> > fde *
>> > _Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)
>>
>> Ah I'm really angry because I tested on many platforms, *including* armhf,
>> but now I'm not seeing it, so either I failed on one test or it depends
>> on the compiler combination :-(
>>
>> The principle was just to force to load libgcc_s that tends to cause
>> aborts on reload for some users in chroots when threads exit, because
>> pthread_exit() tends to be the first one to require libgcc_s and it's
>> quite too late.
>>
>> In the mean time you can probably get away with this:
>>
>> diff --git a/src/thread.c b/src/thread.c
>> index 5eb68e33a..167e26e9d 100644
>> --- a/src/thread.c
>> +++ b/src/thread.c
>> @@ -201,7 +201,7 @@ static void __thread_init(void)
>> exit(1);
>> }
>>
>> -#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(__GNU_LIBRARY__) &&
>> !defined(__clang__)
>> +#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(__GNU_LIBRARY__) &&
>> !defined(__clang__) && !defined(__arm__)
>> /* make sure libgcc_s is already loaded, because pthread_exit() may
>>  * may need it on exit after the chroot! _Unwind_Find_FDE() is
>> defined
>>  * there since gcc 3.0, has no side effect, doesn't take any
>> argument
>>
>>
>> But I'd really like to find a *reliable* way to force libgcc_s to be loaded
>> if available and required (i.e. not if statically built). I thought about
>> causing a 64/64 bit divide that usually is done via divsi3 and friend but
>> on x86_64 (where the problem was encountered) it will not do it.
>>
>> I'm thinking about something: maybe I can have a look around
>> pthread_getspecific() and pthread_key_create(). I would be very surprised
>> if they didn't rely on some compiler-specific help from libgcc_s.
>>
>> I'll keep testing and will get back to you guys.
>>
>> Willy
>>
>>



Re: Haproxy 2.2.3 source

2020-09-09 Thread Vincent Bernat
 ❦  9 septembre 2020 19:31 +02, Willy Tarreau:

>> Feel free to pick this patch if that helps for your builds, I'm going
>> to backport it to 2.2 once all platforms are happy.
>
> All builds are OK now, the commit was backported to 2.2 and the patch
> can be retrieved here:
>
>   http://git.haproxy.org/?p=haproxy-2.2.git;a=commitdiff_plain;h=10c627ab

All good on Debian:
 https://buildd.debian.org/status/package.php?p=haproxy&suite=experimental
-- 
Small things make base men proud.
-- William Shakespeare, "Henry VI"



Re: haproxy conflict between debian backports and haproxy.debian.net

2021-01-13 Thread Vincent Bernat
 ❦ 14 janvier 2021 07:39 +01, ghislain:

>   So, should i use basic debian backports or debian.haproxy.net
> because having both seems to collide with a boom ;p !

It's not really a conflict, but yes, you have an unecessary "downgrade"
to the same version as currently backports has 2.2.x. You can switch to
Debian backports but in the future, it may get 2.4.x while
haproxy.debian.net ensures you stay on 2.2.x.

Alternatively, I will be careful next time to upload the same binary to
haproxy.debian.net and to Debian backports.

Also, you seem to have a custom /etc/apt/preferences that may explain
why you are the first to notice that?
-- 
The human race is a race of cowards; and I am not only marching in that
procession but carrying a banner.
-- Mark Twain



Re: haproxy conflict between debian backports and haproxy.debian.net

2021-01-14 Thread Vincent Bernat
 ❦ 14 janvier 2021 19:24 +01, Tim Düsterhus:

> I just checked haproxy.debian.net and noticed that the information
> regarding the backports is not up to date:
>
> For Debian Buster the backport should be moved from 2.0 to 2.2.
>
> I'd also like to note that you have a typo in haproxy.js. It says
> 'backport+' instead of 'backports+' (missing 's').

Oh, thanks! Both issues are fixed!
-- 
Make input easy to prepare and output self-explanatory.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Packaging hatop for ubuntu20.04

2021-02-03 Thread Vincent Bernat
 ❦  3 février 2021 10:23 GMT, Louis Charreau:

> we use hatop daily to monitor in real time haproxy.
> This tool is no longer packaged in ubuntu 20.04 (LTS), which is a pity for 
> such a useful tool.
>
> It's true that the initial project doesn't seem to be maintained
> anymore (last commit 5 years ago) and only works in Python2 which is
> itself deprecated: feurix/hatop (https://github.com/feurix/hatop).
>
> We referred to the jhunt/hatop project
> (https://github.com/jhunt/hatop), which is compatible with Python2 and
> 3. And we integrated it into our private repositories.
>
> Do you think it would be possible and useful for others to reintegrate
> hatop into the official Debian / Ubuntu repositories?

It's already the case:

https://tracker.debian.org/news/1226222/accepted-hatop-080-1-source-all-into-unstable-unstable/
-- 
Write clearly - don't be too clever.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-1.6.16

2021-03-19 Thread Vincent Bernat
 ❦ 19 mars 2021 17:34 +01, Christopher Faulet:

> HAProxy 1.6.16 was released on 2021/03/19. It added 71 new commits
> after version 1.6.15.

1.6 was EOL last year, I don't understand why there is a last release.
Both 1.6 and 1.7 are marked for critical fixes but many fixes are pushed
in it. The risk is to introduce a late regression in this last version.
-- 
Make sure your code "does nothing" gracefully.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Table sticky counters decrementation problem

2021-03-30 Thread Vincent Bernat
 ❦ 30 mars 2021 11:21 +02, Thomas SIMON:

> And I confirm you than when rolling back with source compilation and
> 2.3.7 version (can't do this with repository as only last version is 
> available) , counters decrements well.

The old debs are still here, so you can still download them manually if
you need to. I need to switch to aptly at some point since reprepro is
unlikely to ever support several versions for the same source package. I
would also have to host and build packages for Ubuntu as well as it is
common request.
-- 
Choose variable names that won't be confused.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-2.3.9

2021-03-31 Thread Vincent Bernat
 ❦ 31 mars 2021 10:35 +02, Willy Tarreau:

>> Thanks Willy for the quick update. That's a good example to avoid
>> pushing stable versions at the same time, so we have opportunities to
>> find those regressions.
>
> I know and we're trying to separate them but it considerably increases the
> required effort. In addition there is a nasty effect resulting from shifted
> releases, which is that it ultimately results in older releases possibly
> having more recent fixes than recent ones. And it will happen again with
> 2.2.12 which I hope to issue today. It will contain the small fix for the
> silent-drop issue (which is already in 2.3 of course) but was merged after
> 2.3.9. The reporter of the issue is on 2.2, it would not be fair to him to
> release another 2.2 without it (or we'd fall into a bureaucratic process
> that doesn't serve users anymore). So 2.2.12 will contain this fix. But
> if the person finally decides to upgrade to 2.3.9 a week or two later, she
> may face the bug again. It's not a dramatic one so that's acceptable, but
> that shows the difficulties of the process.

It's a bit annoying that fixes reach a LTS version before the non-LTS
one. The upgrade scenario is one annoyance, but if there is a
regression, you also impact far more users. You could tag releases in
git (with -preX if needed) when preparing the releases and then issue
the release with a few days apart. Users of older versions will have
less frequent releases in case regressions are spotted, but I think
that's the general expectation: if you are running older releases it's
because you don't have time to upgrade and it's good enough for you.

For example:
 - 2.3, monthly release or when there is a big regression
 - 2.2, 3 days after 2.3
 - 2.0, 3 days after 2.2, skip one out of two releases
 - 1.8, 3 days after 2.0, skip one out of four releases

So, you have a 2.3.9. At the same time, you tag 2.2.12-pre1 (to be
released in 3 working days if everything is fine) and you skip skip 2.0
and 1.8 this time because they were releases to match 2.3.8. Next time,
you'll have a 2.0.22-pre1 but no 1.8.30-pre1 yet.

If for some reason, there is an important regression in 2.3.9 you want
to address, you release a 2.3.10 and a 2.2.12-pre2, still no 2.0.22-pre1
nor 1.8.30-pre1. Hopefully, no more regressions spotted, you tag 2.2.12
on top of 2.2.12-pre2 and issue a release.
-- 
He hath eaten me out of house and home.
-- William Shakespeare, "Henry IV"



Re: [ANNOUNCE] haproxy-2.3.9

2021-03-31 Thread Vincent Bernat
 ❦ 31 mars 2021 12:46 +02, Willy Tarreau:

> On the kernel Greg solved all this by issuing all versions very
> frequently: as long as you produce updates faster than users are
> willing to deploy them, they can choose what to do. It just requires
> a bandwidth that we don't have :-/ Some weeks several of us work full
> time on backports and tests! Right now we've reached a point where
> backports can prevent us from working on mainline, and where this lack
> of time increases the risk of regressions, and the regressions require
> more backport time.

Wouldn't this mean there are too many versions in parallel?

> I think that the real problem arrives when a version becomes generally
> available in distros. And distro users are often the ones with the least
> autonomy when it comes to rolling back. When you build from sources,
> you're more at ease. Thus probably that a nice solution would be to
> add an idle period between a stable release and its appearance in
> distros so that it really gets some initial deployment before becoming
> generally available. And I know that some users complain when they do
> not immediately see their binary package, but that's something we can
> easily explain and document. We could even indicate a level of confidence
> in the announce messages. It has the merit of respecting the principle
> of least surprise for everyone in the chain, including those like you
> and me involved in the release cycle and who did not necessarily plan
> to stop all activities to work on yet-another-release because the
> long-awaited fix-of-the-month broke something and its own fix broke
> something else.

We can do that. In the future, I may even tackle all the problems at
once: providing easy access to old versions and have two versions of
each repository: one with new versions immediately available and one
with a semi-fixed delay.
-- 
April 1

This is the day upon which we are reminded of what we are on the other three
hundred and sixty-four.
-- Mark Twain, "Pudd'nhead Wilson's Calendar"



Re: Proposal about libslz integration into haproxy

2021-04-20 Thread Vincent Bernat
 ❦ 21 avril 2021 08:04 +02, Willy Tarreau:

> William suggested that I was needlessly seeking for trouble and that it
> was pointless to keep compatibility for *both* an external version and
> an internal one. While I initially wanted to demonstrate him he was wrong,
> I realized that I was the one wrong because the lib had considerably
> stabilized (no change over one year), and after all we already embed a
> few other things like xxhash and ebtree without offering the possibility
> to build with an external variant, and in the end it probably was the
> right solution.
>
> So after changing my mind, I would go with the following approach:
>
>   - building with USE_SLZ=1  => always use the embedded one
>   - building with USE_ZLIB=1 => always build using the user-provided zlib
>
> We'd enable USE_SLZ by default and it would be disabled when ZLIB is used
> (or when SLZ is forced off). This way we could have fast and memory-less
> compression available by default without the hassle of cloning an unknown
> repository.
>
> Does anyone have any opinion, objection or suggestion on this (especially
> those in CC who participated to the first discussion or who could have
> packaging concerns) ? Barring any comment I think I'm going to do this
> tomorrow so that we have it in -dev17, leaving a bit of time for distro
> packagers to test and adjust their build process if needed.

>From a distribution point of view, we don't like bundled dependencies.
However, as I see it, libslz is an internal lib (like ebtree), so I
don't think this is really a problem. Moreover, we don't have the
external lib in Debian, so there is no duplicate work. Is there any
practical advantage of keeping using zlib (for a user)?
-- 
Test programs at their boundary values.
- The Elements of Programming Style (Kernighan & Plauger)



[PATCH] BUG/MINOR: stick-table: handle out-of-memory condition gracefully

2016-11-17 Thread Vincent Bernat
From: Vincent Bernat 

In case `pool_alloc2()` returns NULL, propagate the condition to the
caller. This could happen when limiting the amount of memory available
for HAProxy with `-m`.
---
 src/stick_table.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/stick_table.c b/src/stick_table.c
index 7a2fcc21af8b..2d5c042174fb 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -170,7 +170,10 @@ struct stksess *stksess_new(struct stktable *t, struct 
stktable_key *key)
return NULL;
}
 
-   ts = pool_alloc2(t->pool) + t->data_size;
+   ts = pool_alloc2(t->pool);
+   if (unlikely(ts == NULL))
+   return NULL;
+   ts += t->data_size;
if (ts) {
t->current++;
stksess_init(t, ts);
-- 
2.10.2




[PATCH] BUG/MINOR: stick-table: handle out-of-memory condition gracefully

2016-11-17 Thread Vincent Bernat
From: Vincent Bernat 

In case `pool_alloc2()` returns NULL, propagate the condition to the
caller. This could happen when limiting the amount of memory available
for HAProxy with `-m`.
---
 src/stick_table.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/stick_table.c b/src/stick_table.c
index 7a2fcc21af8b..7026fe65659a 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -170,9 +170,10 @@ struct stksess *stksess_new(struct stktable *t, struct 
stktable_key *key)
return NULL;
}
 
-   ts = pool_alloc2(t->pool) + t->data_size;
+   ts = pool_alloc2(t->pool);
if (ts) {
t->current++;
+   ts += t->data_size;
stksess_init(t, ts);
if (key)
stksess_setkey(t, ts, key);
-- 
2.10.2




Re: [PATCH] BUG/MINOR: stick-table: handle out-of-memory condition gracefully

2016-11-17 Thread Vincent Bernat
 ❦ 17 novembre 2016 15:14 +0100, Willy Tarreau  :

> Good catch, but look the original if intented to catch this but was
> wrong, thus I think it's better to remove it now :
>
>> ---
>>  src/stick_table.c | 5 -
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>> 
>> diff --git a/src/stick_table.c b/src/stick_table.c
>> index 7a2fcc21af8b..2d5c042174fb 100644
>> --- a/src/stick_table.c
>> +++ b/src/stick_table.c
>> @@ -170,7 +170,10 @@ struct stksess *stksess_new(struct stktable *t, struct 
>> stktable_key *key)
>>  return NULL;
>>  }
>>  
>> -ts = pool_alloc2(t->pool) + t->data_size;
>> +ts = pool_alloc2(t->pool);
>> +if (unlikely(ts == NULL))
>> +return NULL;
>> +ts += t->data_size;
>>  if (ts) {
> ^
> will always be true.

Wow, dunno how I missed that!

>>  t->current++;
>>  stksess_init(t, ts);
>
> Or another way to fix it is to simply move the addition inside the if.
>
> I can modify your patch if you don't have the time, just let me know.

Updated patch sent.
-- 
Vincent Bernat — vincent.ber...@exoscale.ch
❬❱ https://www.exoscale.ch



Re: [ANNOUNCE] haproxy-1.5.19

2016-12-28 Thread Vincent Bernat
 ❦ 25 décembre 2016 09:54 +0100, Willy Tarreau  :

> HAProxy 1.5.19 was released on 2016/12/25. It added 47 new commits
> after version 1.5.18.

Would it be possible to queue this patch as well for the next 1.5 (if
any)?

commit c6ca1aa34dd0e343c9a8754f447730b7563d
Author: Willy Tarreau 
Date:   Thu Oct 8 11:32:32 2015 +0200

MEDIUM: init: support more command line arguments after pid list

Given that all command line arguments start with a '-' and that
no pid number can start with this character, there's no constraint
to make the pid list the last argument. Let's relax this rule.

This would enable to use the same init scripts for both 1.5 and 1.6.
-- 
Make your program read from top to bottom.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-1.5.19

2016-12-28 Thread Vincent Bernat
 ❦ 28 décembre 2016 09:31 +0100, Vincent Bernat  :

>> HAProxy 1.5.19 was released on 2016/12/25. It added 47 new commits
>> after version 1.5.18.
>
> Would it be possible to queue this patch as well for the next 1.5 (if
> any)?
>
> commit c6ca1aa34dd0e343c9a8754f447730b7563d
> Author: Willy Tarreau 
> Date:   Thu Oct 8 11:32:32 2015 +0200
>
> MEDIUM: init: support more command line arguments after pid list
>
> Given that all command line arguments start with a '-' and that
> no pid number can start with this character, there's no constraint
> to make the pid list the last argument. Let's relax this rule.
>
> This would enable to use the same init scripts for both 1.5 and 1.6.

On the other hand, this is not really useful without a088d316. So, maybe
don't introduce another bug because of me and leave 1.5 as is. :)
-- 
Repartee is something we think of twenty-four hours too late.
-- Mark Twain



Re: [ANNOUNCE] haproxy-1.5.19

2016-12-28 Thread Vincent Bernat
 ❦ 28 décembre 2016 10:56 +0100, Willy Tarreau  :

>> >> HAProxy 1.5.19 was released on 2016/12/25. It added 47 new commits
>> >> after version 1.5.18.
>> >
>> > Would it be possible to queue this patch as well for the next 1.5 (if
>> > any)?
>> >
>> > commit c6ca1aa34dd0e343c9a8754f447730b7563d
>> > Author: Willy Tarreau 
>> > Date:   Thu Oct 8 11:32:32 2015 +0200
>> >
>> > MEDIUM: init: support more command line arguments after pid list
>> >
>> > Given that all command line arguments start with a '-' and that
>> > no pid number can start with this character, there's no constraint
>> > to make the pid list the last argument. Let's relax this rule.
>> >
>> > This would enable to use the same init scripts for both 1.5 and 1.6.
>> 
>> On the other hand, this is not really useful without a088d316. So, maybe
>> don't introduce another bug because of me and leave 1.5 as is. :)
>
> Well, neither of them are hard to backport, so this is something we can
> consider. However I'm making a difference between end-users requests and
> maintainers' convenience. If you think it would really be useful to end
> users one way or another, or if it solves some trouble you're facing
> with the package maintenance, let's backport them. If it's just to keep
> a single script to maintain, I think the benefit is low enough to avoid
> a backport. Just let me know what you prefer, I'm fine with both
> options.

I got caught by syncing SysV init script from 1.6 with 1.5. For my own
convenience, only c6ca1aa is needed. But I think that I won't be caught
again by this since the only diff is the argument order. I should be
able to remember why this is like that! So, no need from me.
-- 
Many pages make a thick book.



Re: Ubuntu 16.04 PPA logs not working

2017-01-27 Thread Vincent Bernat
 ❦ 27 janvier 2017 20:54 -0600, David Morton  :

> I have a pretty default Ubuntu 16.04 image on AWS set up with the
> haproxy 1.7 ppa package.   I'm not seeing a /var/log/haproxy log file.
>
>
> haproxy config is:
>
>   log /dev/loglocal0
>   log /dev/loglocal1 notice
>   chroot /var/lib/haproxy
>
>
> and rsyslog  is:
>
> # Create an additional socket in haproxy's chroot in order to allow
> logging via
> # /dev/log to chroot'ed HAProxy processes
> $AddUnixListenSocket /var/lib/haproxy/dev/log
>
> # Send HAProxy messages to a dedicated logfile
> if $programname startswith 'haproxy' then /var/log/haproxy.log
> &~
>
>
> Am I missing something obvious?

The package doesn't reload rsyslog for you (more recent versions of the
rsyslog package will do that). Does /var/lib/haproxy/dev/log exist?
-- 
After all, all he did was string together a lot of old, well-known quotations.
-- H. L. Mencken, on Shakespeare



Re: HAProxy 1.6.3: 100% cpu utilization for >17 days with 1 connection

2017-05-18 Thread Vincent Bernat
 ❦ 19 mai 2017 07:04 +0200, Willy Tarreau  :

>> I saw many similar issues posted earlier by others, but could not
>> find a thread where this is resolved or fixed in a newer release. We
>> are using Ubuntu 16.04 with distro HAProxy (1.6.3), and see that
>> HAProxy spins at 100% with 1-10 TCP connections, sometimes just 1 - a
>> stale connection that does not seem to belong to any frontend
>> session. Strace with -T shows the folllowing:
>
> In fact a few bugs have caused this situation and all known ones were
> fixed, which doesn't mean there is none left of course. However your
> version is totally outdated and contains tons of known bugs which were
> later fixed (196 total, 22 major, 78 medium, 96 minor) :
>
>http://www.haproxy.org/bugs/bugs-1.6.3.html

Those pages are quite useful!

That's the version in Ubuntu Xenial. It is possible to add some patches
and push a new release. However, we have to select the patches (all the
MAJOR ones?) and create this hybrid version. It could be useful for
people not allowed to use third party packages (like the ones on
haproxy.debian.net) or for those that just don't know they exist. While
I think this would be useful for many, the gap is so wide that it even
seems risky. If we are able to identify a couple of patches, I can walk
the process of pushing them.

This version is in Ubuntu because this was the version in Debian
unstable a few months before the freeze. It's always a bit random as we
(in Debian) don't really care about that when choosing the version we
push in unstable (we care about our own release).

FYI, we are likely to release 1.7.5 (with USE_GETADDRINFO=1 enabled) in
our next release (to happen in July I hope).
-- 
There's small choice in rotten apples.
-- William Shakespeare, "The Taming of the Shrew"



Re: HAProxy 1.6.3: 100% cpu utilization for >17 days with 1 connection

2017-05-19 Thread Vincent Bernat
 ❦ 19 mai 2017 08:28 +0200, Willy Tarreau  :

> The problem is that it's what was being attempted during the days of 1.3,
> resulting in still highly bogus versions being deployed in field and
> users being very confident in them because they were recently updated.
> These days, every patch going into a stable release MUST be applied.
> What is considered major for some has no impact for others and what is
> minor for some is business critical for others. In all cases it ends up
> with reports here on the list.

While there exists some exceptions, the rule of thumb in distributions
is to stick to a version and backport only very critical (and security)
patches. While this creates some friction with upstreams, this seems to
match the expectation of many users (no random breakages during
upgrades). This is a bit unfair to you since you maintain a bugfix-only
branch which is also the goal we have (we just have more draconian
rules about the accepted patches).

I said there are exceptions (maybe 5 packages) where packages are kept
up-to-date with the latest version of a branch, but they only apply to
unfriendly upstreams (Oracle for example). I let you draw any conclusion
on that. :)

In Debian, we have acknowledged a long time ago this doesn't fit the
need of all our users, so we have official backports. Ubuntu has them
also but this is not widely used (Trusty got a backport for HAProxy
1.5.14 because they needed it for a customer).

>> FYI, we are likely to release 1.7.5 (with USE_GETADDRINFO=1 enabled) in
>> our next release (to happen in July I hope).
>
> Do you think there's an opportunity to get 1.7.6 if I release it next week ?
> It provides -fwrapv which will likely avoid certain bugs with more recent
> compilers, and there's a fix for a segfault in Lua.

We need to take the decision with the release team. We are in freeze
since January but we were able to push the latest version nonetheless. I
think it is likely we will be able to push 1.7.6 as well. Otherwise,
we'll push the patches marked "BUG/MAJOR" (this is what we have done
with 1.5.8 currently in Jessie, this is 1.5.8 + patches from 1.5.9 and
1.5.10 + a security patch).
-- 
Format a program to help the reader understand it.
- The Elements of Programming Style (Kernighan & Plauger)



Re: 1.7.6 redirect regression (commit 73d071ecc84e0f26ebe1b9576fffc1ed0357ef32)

2017-06-22 Thread Vincent Bernat
 ❦ 21 juin 2017 11:48 +0200, William Lallemand  :

>> > This bug was fixed in 1.8 (see commit
>> > 9f724edbd8d1cf595d4177c3612607f395b4380e "BUG/MEDIUM: http: Drop the
>> > connection establishment when a redirect is performed"). I attached
>> > the patch. Could you quickly check if it fixes your bug (it should
>> > do so) ?
>> > 
>> > It was not backported in 1.7 because we thought it only affected the
>> > 1.8. I will check with Willy.
>> 
>> Thanks, patch fixes the problem (with test config (I'll try to
>> test with prod. config later)).
>> 
>> -Jarno
>> 
>
> Thanks for tests, I will backport it in the 1.7 branch.

Is the patch important enough to warrant a 1.7.7 soon? Notably, should
downstreams continue to push 1.7.6 to users?
-- 
Parenthesise to avoid ambiguity.
- The Elements of Programming Style (Kernighan & Plauger)



Re: PIDs are not dying on a reload

2017-07-28 Thread Vincent Bernat
 ❦ 28 juillet 2017 12:09 +0200, "Arnaud B."  :

> I'm having an issue on debian 9's stable version of HAProxy :
>
> https://dooby.fr/y/j9qgknb
>
> I have to regularly reload haproxy to fetch new configurations, and it
> now always result on a set of undying pids.
>
> If I strace pid 2677 on this screenshot :
> $ strace -p 2677
> strace: Process 2677 attached
> epoll_wait(0, [], 200, 18)  = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 12)  = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 14)  = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 13)  = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 121) = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 6)   = 0
> epoll_wait(0, [], 200, 0)   = 0
> epoll_wait(0, [], 200, 22)  = 0
>
> if I check what's going on on the network level for this pid :
> $ ss -lntpuae |grep -i 'pid=2677'
> udpUNCONN 0  0 *:28382
> *:*  
> users:(("haproxy",pid=2677,fd=14),("haproxy",pid=2611,fd=14))
> ino:1822334707 sk:aa61 -->

For information, haproxy -vv is:

HA-Proxy version 1.7.5-2 2017/05/17
Copyright 2000-2017 Willy Tarreau 

Build options :
  TARGET  = linux2628
  CPU = generic
  CC  = gcc
  CFLAGS  = -g -O2 -fdebug-prefix-map=/build/haproxy-2dHYaz/haproxy-1.7.5=. 
-fstack-protector-strong -Wformat -Werror=format-security -Wdate-time 
-D_FORTIFY_SOURCE=2
  OPTIONS = USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 
USE_PCRE=1 USE_NS=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.8
Running on zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), 
raw-deflate("deflate"), gzip("gzip")
Built with OpenSSL version : OpenSSL 1.1.0e  16 Feb 2017
Running on OpenSSL version : OpenSSL 1.1.0f  25 May 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.39 2016-06-14
Running on PCRE version : 8.39 2016-06-14
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with Lua version : Lua 5.3.3
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT 
IP_FREEBIND
Built with network namespace support

Available polling systems :
  epoll : pref=300,  test result OK
   poll : pref=200,  test result OK
 select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available filters :
[COMP] compression
[TRACE] trace
[SPOE] spoe

On your screenshot, the user is www-data while on lsof, this is
haproxy. Handover between HAProxy instances is done through signal,
maybe you reloaded the configuration with a change of user. The new
HAProxy cannot signal the old one to shutdown in this case. However,
this wouldn't explain why lsof and htop don't agree.
-- 
Fame is a vapor; popularity an accident; the only earthly certainty is
oblivion.
-- Mark Twain



Re: PIDs are not dying on a reload

2017-08-01 Thread Vincent Bernat
 ❦ 31 juillet 2017 13:58 +0200, "Arnaud B."  :

> I changed my haproxy.cfg to use only the haproxy user instead of
> www-data, but it haven't fixed my undying pid issue, I have the exact
> same stale processes, with a UDP UNCON socket open, no trafic and the
> epoll_wait() on strace.

Unfortunately, I don't have any other clue. Maybe someone else could
help.

Otherwise, you can also try to upgrade to the latest upstream version to
check if this has been fixed. You can grab a more recent version from
https://haproxy.debian.net.
-- 
Don't diddle code to make it faster - find a better algorithm.
- The Elements of Programming Style (Kernighan & Plauger)



Re: PIDs are not dying on a reload

2017-08-01 Thread Vincent Bernat
 ❦  1 août 2017 10:49 +0200, "Arnaud B."  :

> thank's Vincent.
>
> Unfortunately, I already am on the latest upstream (not backport though) :
>
> $ apt-get update -qq; apt-cache madison haproxy; dpkg -l|grep -i haproxy
>haproxy | 1.7.8-1~bpo9+1 | http://debian.mirrors.ovh.net/debian
> stretch-backports/main amd64 Packages
>haproxy | 1.7.8-1~bpo9+1 | http://ftp.fr.debian.org/debian
> stretch-backports/main amd64 Packages
>haproxy |1.7.5-2 | http://debian.mirrors.ovh.net/debian
> stretch/main amd64 Packages
>haproxy | 1.7.8-1~bpo9+1 | http://debian.mirrors.ovh.net/debian
> stretch-backports/main Sources
>haproxy |1.7.5-2 | http://debian.mirrors.ovh.net/debian
> stretch/main Sources
> ii  haproxy  1.7.5-2   
> amd64fast and reliable load balancing reverse proxy
> ii  vim-haproxy  1.7.5-2   
> all  syntax highlighting for HAProxy configuration files
>
> This stale process issue is quite a mystery atm.

It depends what you call upstream. :) My suggestion was to try 1.7.8
(through the backports for example).
-- 
Patch griefs with proverbs.
-- William Shakespeare, "Much Ado About Nothing"



Re: PIDs are not dying on a reload

2017-08-01 Thread Vincent Bernat
 ❦  1 août 2017 12:00 +0200, "Arnaud B."  :

> I'm not using peers, it's a feature that I've discovered as you
> mentionned it, seems worth the try.
>
> I'll upgrade to the latest bpo package from Vincent's repository and see
> if it fixes my issue, I'll get back to you if it succeeds or not.

You can use the "official" backport from Debian repositories. You just
have to know it could be updated to 1.8 at some point (while the
packages served directly by haproxy.debian.net won't).
-- 
Document your data layouts.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 10:31 +0200, Marcus Ulbrich  :

> I am running haproxy 1.7.9-1~bpo9+1 on debian 9.1. And after running a
> while with production data haproxy stops working wiith segmentation
> fault:
>
> haproxy[26291]: segfault at 5562af80e000 ip 7f5985e48149 sp
> 7ffe1d613488 error 4 in libc-2.24
>
> Can you please help or have any ideas?

Try to obtain a core file:

 - don't use chroot directive in /etc/haproxy/haproxy.cfg
 - sysctl -w kernel.core_pattern=/tmp/core.%e.%p.%h.%t
 - systemctl edit haproxy.service and put the following:

[Service]
LimitCORE=infinity

 - systemctl daemon-reload
 - systemctl restart haproxy

Check with "cat /proc/$(pidof haproxy | head -1)/limits" both limits for
"core file size" is unlimited.

Once you get a core file in /tmp/core.haproxy.something, use:

 - apt-get install haproxy-dbgsym libc6-dbg gdb
 - gdb /usr/sbin/haproxy /tmp/core.haproxy.something
 - bt full (post the result)

To reverse your system:

 - apt-get remove haproxy-dbgsym libc6-dbg gdb
 - rm /etc/systemd/system/haproxy.service.conf.d/something.conf
 - systemctl daemon-reload
 - sysctl -w kernel.core_pattern=core
-- 
How apt the poor are to be proud.
-- William Shakespeare, "Twelfth-Night"



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
Hello,

Not sure to understand. Is there no core dump or more than one? If none,
did you check in /proc/xxx/status that the limit was correctly applied?
-- 
Don't just echo the code with comments - make every comment count.
- The Elements of Programming Style (Kernighan & Plauger)

 ――― Original Message ―――
 From: Marcus Ulbrich 
 Sent:  2 octobre 2017 12:49 +0200
 Subject: Re: Haproxy segfault error 4 in libc-2.24
 To: Vincent Bernat
 Cc: haproxy@formilux.org

> Hello Vincent,
>
> thanks for your reply. I have done what you said... but there ist nore
> core file dumped in /tmp/.
>
> running gdb console it only says "[Inferior 1 (process 719) exited
> normally]" when the segfault error occours and haproxy restarts. bt
> and bt full results in "No stack."
>
> Can you help about this?
>
> kind regards,
>
> marcus
>
>
> Am 02.10.2017 um 11:35 schrieb Vincent Bernat:
>>   ❦  2 octobre 2017 10:31 +0200, Marcus Ulbrich 
>>  :
>>
>>> I am running haproxy 1.7.9-1~bpo9+1 on debian 9.1. And after running a
>>> while with production data haproxy stops working wiith segmentation
>>> fault:
>>>
>>> haproxy[26291]: segfault at 5562af80e000 ip 7f5985e48149 sp
>>> 7ffe1d613488 error 4 in libc-2.24
>>>
>>> Can you please help or have any ideas?
>> Try to obtain a core file:
>>
>>   - don't use chroot directive in /etc/haproxy/haproxy.cfg
>>   - sysctl -w kernel.core_pattern=/tmp/core.%e.%p.%h.%t
>>   - systemctl edit haproxy.service and put the following:
>>
>> [Service]
>> LimitCORE=infinity
>>
>>   - systemctl daemon-reload
>>   - systemctl restart haproxy
>>
>> Check with "cat /proc/$(pidof haproxy | head -1)/limits" both limits for
>> "core file size" is unlimited.
>>
>> Once you get a core file in /tmp/core.haproxy.something, use:
>>
>>   - apt-get install haproxy-dbgsym libc6-dbg gdb
>>   - gdb /usr/sbin/haproxy /tmp/core.haproxy.something
>>   - bt full (post the result)
>>
>> To reverse your system:
>>
>>   - apt-get remove haproxy-dbgsym libc6-dbg gdb
>>   - rm /etc/systemd/system/haproxy.service.conf.d/something.conf
>>   - systemctl daemon-reload
>>   - sysctl -w kernel.core_pattern=core



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 15:58 +0200, Marcus Ulbrich  :

> Yes there is no core dump...
>
> i've ched it and ist was both unlimited...

And "ls -l /proc/xxx/root" is "/" (where xxx is the PID of one of the
HAProxy processes)?
-- 
What good is an obscenity trial except to popularize literature?
-- Nero Wolfe, "The League of Frightened Men"



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 16:05 +0200, Marcus Ulbrich  :

> this is linked to /proc/20313/root -> /var/lib/haproxy
>
> and there is dev/log as empty file..

Then, create /var/lib/haproxy/tmp:

mkdir /var/lib/haproxy/tmp
chmod 1777 /var/lib/haproxy/tmp

You should get the core files in this directory (keep core_pattern to /tmp/...).
-- 
Choose a data representation that makes the program simple.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
Then, remove the chroot directive from HAProxy configuration.
-- 
Format a program to help the reader understand it.
- The Elements of Programming Style (Kernighan & Plauger)

 ――― Original Message ―――
 From: Marcus Ulbrich 
 Sent:  2 octobre 2017 16:23 +0200
 Subject: Re: Haproxy segfault error 4 in libc-2.24
 To: Vincent Bernat
 Cc: haproxy@formilux.org

> nope...  /var/lib/haproxy/tmp/ directory is left empty after crash...
>
>
> Am 02.10.2017 um 16:09 schrieb Vincent Bernat:
>>   ❦  2 octobre 2017 16:05 +0200, Marcus Ulbrich 
>>  :
>>
>>> this is linked to /proc/20313/root -> /var/lib/haproxy
>>>
>>> and there is dev/log as empty file..
>> Then, create /var/lib/haproxy/tmp:
>>
>> mkdir /var/lib/haproxy/tmp
>> chmod 1777 /var/lib/haproxy/tmp
>>
>> You should get the core files in this directory (keep core_pattern to 
>> /tmp/...).



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 16:29 +0200, Marcus Ulbrich  :

> sorry, but it is commented out... :(

Humm, I don't see how HAProxy would chroot itself without this
directive. Let's try to get the core inside the chroot.

Could you confirm the output of:

 sysctl kernel.core_pattern
 ls -ld /var/lib/haproxy/tmp
-- 
Use the "telephone test" for readability.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
Well, I have no idea why you don't get those core files. It's also quite
odd that you get chrooted without the chroot directive. Maybre 'rgrep
chroot /etc' to check if there is anything fishy. Is there anything
special in your environment? Running in a container with memory limits
maybe?

To be sure the core pattern works correctly, could you run:

ulimit -c unlimited
python -c 'import os,time; os.chroot("/var/lib/haproxy"); time.sleep(1000)' &
kill -SEGV %1

You should get a "segmentation fault (core dumped)" and a core file in
/var/lib/haproxy/tmp. If not, check in /tmp directly (on my system, I
didn't get the core file in the chroot, this is new to me). If it
doesn't work, try without os.chroot() and check you get a core file in
/tmp.
-- 
All things that are, are with more spirit chased than enjoyed.
-- Shakespeare, "Merchant of Venice"

 ――― Original Message ―――
 From: Marcus Ulbrich 
 Sent:  2 octobre 2017 16:39 +0200
 Subject: Re: Haproxy segfault error 4 in libc-2.24
 To: Vincent Bernat
 Cc: haproxy@formilux.org

> okay...
>
> $# sysctl kernel.core_pattern
>
> kernel.core_pattern = /tmp/core.%e.%p.%h.%t
>
> $# ls -ld /var/lib/haproxy/tmp
>
> drwxrwxrwt 2 root root 4096 Okt  2 16:11 /var/lib/haproxy/tmp



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 17:06 +0200, Marcus Ulbrich  :

> I even get no core dump with the python oneliner either with chroot
> nor without...

So, kernel.core_pattern seems to be problematic (unrelated, but my
python one-liner wasn't totally correct either). Try again with just
"core", the core file should be in the current directory. If it works,
retry with HAProxy and you should get the core in /var/lib/haproxy.
-- 
Don't just echo the code with comments - make every comment count.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
 ❦  2 octobre 2017 18:38 +0200, Marcus Ulbrich  :

> yes... core of python script is there than... but i can't get one of
> haproxy segfault :-/

Not even in /var/lib/haproxy then?

If it works with the Python script, try set kernel.core_pattern to just
"/tmp/core". Do you get it? If yes, do you get it too with:

python -c 'import os,time; os.chroot("/var/lib/haproxy"); os.chdir("/"); 
time.sleep(1000)' &
kill -SEGV %1

It should be in /var/lib/haproxy/tmp. If yes, you should get it with
HAProxy too.
-- 
So so is good, very good, very excellent good:
and yet it is not; it is but so so.
-- William Shakespeare, "As You Like It"



Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
How many haproxy process do you have? Can you reduce nbprocs to 1 if you set it 
to another value? In this case, attach directly to haproxy with gdb -p pid, 
type continue to unblock it and wait for the segfault. Then bt full.

On October 2, 2017 6:59:47 PM GMT+02:00, Marcus Ulbrich 
 wrote:
>no chance... error or killing haproxy there is no core file there... 
>wether in /var/lib, nor in /tmp
>I am frustrated...


Re: Haproxy segfault error 4 in libc-2.24

2017-10-02 Thread Vincent Bernat
Could you get another one with libssl1.1-dbgsym installed? But just with
that, maybe other people could infer what's wrong.
-- 
Make sure comments and code agree.
- The Elements of Programming Style (Kernighan & Plauger)

 ――― Original Message ―――
 From: Marcus Ulbrich 
 Sent:  2 octobre 2017 19:57 +0200
 Subject: Re: Haproxy segfault error 4 in libc-2.24
 To: Vincent Bernat
 Cc: haproxy@formilux.org

> Okay... I've got a core dump... Thanks a lot!!!
>
> But what this means?
>
>
>
> Program received signal SIGSEGV, Segmentation fault.
>
> __memmove_sse2_unaligned_erms () at
> ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S:
>
> ../sysdeps/x86_64/multiarch/../multiarch/memmove-vec-unaligned-erms.S:
> File or Directory not found.
>
>
> (gdb) bt
>
> #0 0x7ff59a39f760 in __write_nocancel () at
> ../sysdeps/unix/syscall-template.S:84
>
> #1 0x7ff59abc4a45 in ?? () from
> /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
>
> #2 0x7ff59abbf58b in BIO_write () from
> /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
>
> #3 0x7ff59afbfa4b in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> #4 0x7ff59afc0260 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> #5 0x7ff59afc8751 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> #6 0x7ff59afc6b55 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> #7 0x7ff59afd0cd9 in SSL_shutdown () from
> /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> #8 0x55bfb883e6b9 in ssl_sock_shutw (conn=0x55bfb9edf9f0,
> clean=)
>
> at src/ssl_sock.c:3923
>
> #9 0x55bfb8801696 in conn_data_shutw (c=) at
> include/proto/connection.h:437
>
> #10 stream_int_shutw_conn (si=0x55bfb9e80798) at src/stream_interface.c:856
>
> #11 0x55bfb8802c8b in si_shutw (si=0x55bfb9e80798) at
> include/proto/stream_interface.h:322
>
> #12 stream_int_notify (si=si@entry=0x55bfb9e80798) at
> src/stream_interface.c:459
>
> #13 0x55bfb8802ecd in si_conn_wake_cb (conn=0x55bfb9edf9f0) at
> src/stream_interface.c:581
>
> #14 0x55bfb87dde3a in conn_fd_handler (fd=) at
> src/connection.c:158
>
> #15 0x55bfb87aae5d in fd_process_cached_events () at src/fd.c:223
>
> #16 0x55bfb8799638 in run_poll_loop () at src/haproxy.c:1751
>
> #17 0x55bfb87958a9 in main (argc=, argv= out>) at src/haproxy.c:2114
>
>
> (gdb) bt full
>
> #0 0x7ff59a39f760 in __write_nocancel () at
> ../sysdeps/unix/syscall-template.S:84
>
> No locals.
>
> #1 0x7ff59abc4a45 in ?? () from
> /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
>
> No symbol table info available.
>
> #2 0x7ff59abbf58b in BIO_write () from
> /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
>
> No symbol table info available.
>
> #3 0x7ff59afbfa4b in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> No symbol table info available.
>
> #4 0x7ff59afc0260 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> No symbol table info available.
>
> #5 0x7ff59afc8751 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> No symbol table info available.
>
> #6 0x7ff59afc6b55 in ?? () from /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> No symbol table info available.
>
> #7 0x7ff59afd0cd9 in SSL_shutdown () from
> /usr/lib/x86_64-linux-gnu/libssl.so.1.1
>
> No symbol table info available.
>
> #8 0x55bfb883e6b9 in ssl_sock_shutw (conn=0x55bfb9edf9f0,
> clean=) at src/ssl_sock.c:3923
>
> clean = 
>
> conn = 0x55bfb9edf9f0
>
> #9 0x55bfb8801696 in conn_data_shutw (c=) at
> include/proto/connection.h:437
>
> No locals.
>
> #10 stream_int_shutw_conn (si=0x55bfb9e80798) at src/stream_interface.c:856
>
> No locals.
>
> #11 0x55bfb8802c8b in si_shutw (si=0x55bfb9e80798) at
> include/proto/stream_interface.h:322
>
> No locals.
>
> #12 stream_int_notify (si=si@entry=0x55bfb9e80798) at
> src/stream_interface.c:459
>
> No locals.
>
> #13 0x55bfb8802ecd in si_conn_wake_cb (conn=0x55bfb9edf9f0) at
> src/stream_interface.c:581
>
> si = 0x55bfb9e80798
>
> #14 0x55bfb87dde3a in conn_fd_handler (fd=) at
> src/connection.c:158
>
> conn = 0x55bfb9edf9f0
>
> flags = 
>
> #15 0x55bfb87aae5d in fd_process_cached_events () at src/fd.c:223
>
> fd = 22
>
> entry = 0
>
> e = 
>
> #16 0x55bfb8799638 in run_poll_loop () at src/haproxy.c:1751
>
> next = 
>
> #17 0x55bfb87958a9 in main (argc=, argv= out>) at src/haproxy.c:2114
>
> err = 
>
> retry = 
>
> limit = {rlim_cur = 8046, rlim_max = 8046}
>
> errmsg =
> "\000\000\000\000\000\000\000\000\340\230\273\271\277U\000\000
> !\271P\374\177\000\000\350
> \271P\374\177\000\000\006\000\000\000\000\000\000\000\064\357\063\232\365\177\000\000
> !\271P\374\177\000\000 F\273\271\277U\000\000\000\313
> \233\365\177\000\000\256\215ǚ\365\177\000\000>\001\000\024\000\000\000\000\000bca\304h\347Kh\371",
> 
>
> pidfd = 



Re: Aw: Re: Haproxy segfault error 4 in libc-2.24

2017-10-03 Thread Vincent Bernat
 ❦  3 octobre 2017 11:15 +0200, lu...@gmx.net :

>> Could you get another one with libssl1.1-dbgsym installed?
>
> Mmmh there is no libssl1.1-dbgsym in stretch, only in sid?
>
> I do think we need those stack traces from libssl.

It should be there. But you need to enable the right repository:

https://wiki.debian.org/AutomaticDebugPackages
-- 
Make your program read from top to bottom.
- The Elements of Programming Style (Kernighan & Plauger)



Re: Haproxy segfault error 4 in libc-2.24

2017-10-03 Thread Vincent Bernat
 ❦  3 octobre 2017 11:29 +0200, Marcus Ulbrich  :

> and here is the coredump with libssl and haproxy... I can not get
> clear about this:

Not the same one as previously. But this one is entirely in HAProxy. For
this one, I think an excerpt of your configuration would help. It seems
that one HTTP ACL is not working as expected.
-- 
Kindness is a language which the deaf can hear and the blind can read.
-- Mark Twain



Re: Haproxy segfault error 4 in libc-2.24

2017-10-03 Thread Vincent Bernat
 ❦  3 octobre 2017 16:34 +0200, Marcus Ulbrich  :

>     acl badbots hdr_reg(User-Agent) -i -f /etc/haproxy/badbots.lst
>     http-request deny if badbots !whitelistips_agents

Try removing this one and check if it still crashes (hoping there is
only one crash).
-- 
By trying we can easily learn to endure adversity.  Another man's, I mean.
-- Mark Twain



Re: Haproxy segfault error 4 in libc-2.24

2017-10-03 Thread Vincent Bernat
 ❦  3 octobre 2017 17:54 +0200, Marcus Ulbrich  :

> yes... it crashed after 5mins also without this acl.

I was suspecting this ACL as this is the only one with a
case-insensitive match. But maybe the same codepath is used when
matching header names.

> I should test commenting all acl for testing. Is there no way to see
> what acl was active, when haproxy crashes?

While in gdb, you are likely to be able to do, but I can't say exactly
how. Just with the information you provided, I think other people are
more likely to pinpoint the ACL triggering the code path you get and the
cause.

Of course, you can also comment all ACL one by one until crash
disappear. This would also help.
-- 
Avoid multiple exits from loops.
- The Elements of Programming Style (Kernighan & Plauger)



Re: patch: allow to use any compiler

2017-10-04 Thread Vincent Bernat
 ❦  4 octobre 2017 23:49 +0500, Илья Шипицин  :

> while some Makefiles allow to use CC, other just stick to gcc.
> I think we should change to
>
> CC ?= gcc

This doesn't change much. You can already override gcc with "make
TARGET=... CC=clang". The only thing "?=" is that you can do "env
CC=clang make TARGET=...".

Doesn't this work for you?
-- 
O, what a tangled web we weave, When first we practice to deceive.
-- Sir Walter Scott, "Marmion"



Re: patch: allow to use any compiler

2017-10-08 Thread Vincent Bernat
 ❦  8 octobre 2017 15:46 +0500, Илья Шипицин  :

>> > while some Makefiles allow to use CC, other just stick to gcc.
>> > I think we should change to
>> >
>> > CC ?= gcc
>>
>> This doesn't change much. You can already override gcc with "make
>> TARGET=... CC=clang". The only thing "?=" is that you can do "env
>> CC=clang make TARGET=...".
>>
>> Doesn't this work for you?
>>
>
> any particular reason for mixing "CC=gcc" with "CC?=gcc" ?

I don't see any use of ?=, except for stuff that are expected to be in
environment variables (like HOME, DISPLAY, LANG, PATH).
-- 
Consider well the proportions of things.  It is better to be a young June-bug
than an old bird of paradise.
-- Mark Twain, "Pudd'nhead Wilson's Calendar"



Re: patch: allow to use any compiler

2017-10-08 Thread Vincent Bernat
 ❦  9 octobre 2017 08:49 +0500, Илья Шипицин  :

>> > any particular reason for mixing "CC=gcc" with "CC?=gcc" ?
>>
>> I don't see any use of ?=, except for stuff that are expected to be in
>> environment variables (like HOME, DISPLAY, LANG, PATH).
>>
>
> # find . -name Makefile -exec grep -E '^CC' {} ';' -print
> CC = gcc
> ./Makefile
> CC   = gcc
> ./contrib/debug/Makefile
> CC   = gcc
> ./contrib/halog/Makefile
> CC   = gcc
> ./contrib/ip6range/Makefile
> CC   = gcc
> ./contrib/iprange/Makefile
> CC ?= gcc
> ./contrib/mod_defender/Makefile
> CC ?= gcc
> ./contrib/modsecurity/Makefile
> CC = gcc
> ./contrib/spoa_example/Makefile
> CC   = gcc
> ./contrib/tcploop/Makefile

Oh, I didn't understand. I think ?= should just be =.
-- 
Your manuscript is both good and original, but the part that is good is not
original and the part that is original is not good.
-- Samuel Johnson



Re: Client cert verification on some paths

2017-12-02 Thread Vincent Bernat
 ❦  2 décembre 2017 10:47 GMT, "Aleksandar Lazic"  :

> You can use the following line to full fill your request, untested.
>
>   bind :443 ssl ca-file "${PATH_TO_CAFILE}" crl-file
> "${PATH_TO_CRLFILE}" verify "${VERIFY_MODE}"

If verify mode is set to optional, on browsers, this will still trigger
the dialog box to get a certificate from the user. AFAIK, there is no
way to achieve what Apache is doing using HAProxy: there is no code to
change SSL parameters after initial bind.
-- 
If you tell the truth you don't have to remember anything.
-- Mark Twain



Re: HTTP/2 stream 1 was not closed cleanly

2017-12-04 Thread Vincent Bernat
 ❦  4 décembre 2017 12:34 GMT, Gregory Storme  :

> haproxy -vv
> HA-Proxy version 1.8.0-2~bpo8+1 2017/12/02

If you want to try with 1.8.1, it has just been uploaded.
-- 
Lord, what fools these mortals be!
-- William Shakespeare, "A Midsummer-Night's Dream"



Re: DNS resolution issue with Docker swarm and HAProxy 1.8.15/1.9.0

2018-12-20 Thread Vincent Bernat
 ❦ 20 décembre 2018 17:14 +01, Willy Tarreau :

>> this is indeed a regression in haproxy.  thanks for reporting it.
>> attached patch should fix it.
>> CC'ing Remi as the original author, and Baptiste, as DNS maintainer.
>
> Good catch, the patch looks obviously good, I've just merged it.
> Thanks for fixing this one, Jérôme.

Is it important enough for an 1.8.16? Is it important enough for
distributors to release a fixed version? Why doesn't it affect most DNS
implementations?
-- 
There is no distinctly native American criminal class except Congress.
-- Mark Twain



Re: haproxy segfault

2019-02-12 Thread Vincent Bernat
 ❦ 12 février 2019 21:44 +01, Mildis :

> I'm struggling with Stretch/systemd to generate the coredump on crash.
> Even running haproxy by hand with ulimit -c unlimited does not
> generate a coredump.

Also install haproxy-dbgsym. You need to comment the chroot directive in
your HAProxy configuration if it's enabled. Also, you need to set the
core pattern to a fixed directory where haproxy user can write to, like:

sysctl -w kernel.core_pattern=/tmp/core.%p

Then, on next segfault, you should get your coredump.
-- 
Let me take you a button-hole lower.
-- William Shakespeare, "Love's Labour's Lost"



Re: [ANNOUNCE] haproxy-1.8.20

2019-05-04 Thread Vincent Bernat
 ❦ 29 avril 2019 11:04 +02, Christopher Faulet :

> HAProxy 1.8.20 was released on 2019/04/25. It added 48 new commits
> after version 1.8.19.

Hey!

Debian Buster will soon be released (nobody knows exactly when, but we
are in full freeze since 2 months). It currently contains HAProxy
1.8.19. I don't think it would be possible to push 1.8.20 as is.

We can either keep 1.8.19 as is or select a few critical patches to
apply on it. For example, we could take the MAJOR patches:

BUG/MAJOR: checks: segfault during tcpcheck_main
BUG/MAJOR: http_fetch: Get the channel depending on the keyword used
BUG/MAJOR: listener: Make sure the listener exist before using it.
BUG/MAJOR: spoe: Fix initialization of thread-dependent fields
BUG/MAJOR: stats: Fix how huge POST data are read from the channel

And maybe:

BUG/MEDIUM: listener: make sure the listener never accepts too many conns

The more changes, the less likely the release team will accept the
change. Assuming we can only make one proposition (which is not true),
what would you (as upstream) try? 1.8.19, one bug, all major bugs, even
more bugs, or 1.8.20?
-- 
Choose a data representation that makes the program simple.
- The Elements of Programming Style (Kernighan & Plauger)



Re: [ANNOUNCE] haproxy-1.8.20

2019-05-05 Thread Vincent Bernat
 ❦  5 mai 2019 09:14 +02, Willy Tarreau :

> So I'd suggest to insist on having the up to date version (even 1.8.21 if
> we have a reason to have this one released by then). In the worst case,
> if this is rejected for whatever reason, it's better to leave a well known
> version there and continue to encourage every user to switch to your up to
> date PPA than making them believe their version contains the essential
> fixes, which would be misleading.

OK, I have just asked our release team if they would accept 1.8.20 as
is. Let's see!
-- 
Replace repetitive expressions by calls to a common function.
- The Elements of Programming Style (Kernighan & Plauger)



  1   2   3   4   >