Hello friends! I think I might have found a bug in HAProxy. Honestly, I’ve never thought it would happen because it’s usually rock solid, but I’m not sure what else would cause it.
We run HAProxy in master-worker mode along with also using seamless reloads inside of Docker, which is managed by Kubernetes. The docker tag we were using was
haproxy:1.9.2 when this happened. We have since reverted back to
haproxy:1.8.14 because that was what was working prior to this error.
The behavior we experienced was during a seamless reload, HAProxy completely crashed with an error message of
*** Error in haproxy': free(): invalid pointer: 0x000055b420684028 ***
Here is an export of the logs of one of our HAProxy containers: (see gist)
If you are paying attention, you will notice some logs that do not look native to HAProxy. Those are from our script that wraps HAPRoxy and helps to manage reloading HAProxy inside of a Docker container. Here is that script: (see gist)
Out configuration uses quite a lot of the features that HAProxy exposes, I think, but since the crash, the configuration has been running just fine, so I don’t believe the configuration itself to be the issue. Since we have a decent amount of information in there I would likely need to redact, I will avoid pasting it here for now. I can go through and redact it later and paste it if necessary. I guess I’m curious if the logs provide enough information to debug because I have no idea how to read them once the crash happens.
I also tried to reproduce this by continually reloading HAProxy v1.9.2 in a lower traffic environment, but could not reproduce it.
I did check the mailing list but most of the crashes seem to be due to segfaults, not invalid pointers.
Any thoughts on what could cause this and if it has been seen before?