We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using dataplane API in versions from 3.0.4 onward causes crash.
Simple to replicate by uncommenting 'program api' and 'userlist haproxy-dataplaneapi' section of the example config (note the VERSION variable in the following link!) (https://raw.githubusercontent.com/haproxytech/haproxy-docker-ubuntu/refs/tags/$VERSION/3.0/haproxy.cfg) Not yet found a way to use the dataplane API in versions later than 3.0.3
working in 3.0.3-95a607c broken in 3.0.4-7a59afa onward
Uncomment these two lines from the haproxy.cfg:
program api command /usr/bin/dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /usr/local/etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --restart-cmd "kill -SIGUSR2 1" --reload-delay 5 --userlist haproxy-dataplaneapi no option start-on-reload userlist haproxy-dataplaneapi user admin insecure-password mypassword
log output:
[NOTICE] (1) : New program 'api' (8) forked [NOTICE] (1) : New worker (9) forked [NOTICE] (1) : Loading success. [WARNING] (9) : Server static/static1 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. 2024/09/19 13:47:00 maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined 2024/09/19 13:47:00 INFO memory is not limited, skipping package=github.com/KimMachineGun/automemlimit/memlimit [WARNING] (9) : Server static/static2 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. [ALERT] (9) : backend 'static' has no server available! configuration file /etc/haproxy/dataplaneapi.yaml does not exists, creating one panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0xb0 pc=0x101ce74] goroutine 1 [running]: github.com/haproxytech/dataplaneapi/configuration.(*Configuration).migrateUsers(0xc0003c3608) github.com/haproxytech/dataplaneapi/configuration/configuration_deprecated.go:76 +0xf4 github.com/haproxytech/dataplaneapi/configuration.(*Configuration).migrateDeprecatedFields(0xc0003c3608) github.com/haproxytech/dataplaneapi/configuration/configuration_deprecated.go:34 +0x12c github.com/haproxytech/dataplaneapi/configuration.(*Configuration).LoadDataplaneStorageConfig(0xc0003c3608) github.com/haproxytech/dataplaneapi/configuration/configuration.go:312 +0x6c main.startServer(0xc0003c3608, 0xc0003d8140) github.com/haproxytech/dataplaneapi/cmd/dataplaneapi/main.go:154 +0x985 main.main() github.com/haproxytech/dataplaneapi/cmd/dataplaneapi/main.go:67 +0x59 [NOTICE] (1) : haproxy version is 3.0.4-7a59afa [NOTICE] (1) : path to executable is /usr/local/sbin/haproxy [ALERT] (1) : Current program 'api' (8) exited with code 2 (Exit) [ALERT] (1) : exit-on-failure: killing every processes with SIGTERM [ALERT] (1) : Current worker (9) exited with code 143 (Terminated) [WARNING] (1) : All workers exited. Exiting... (2)
Here is a BASH script to reproduce the issue:
#! /bin/bash # fails with VERSION=3.0.4 # works with VERSION=3.0.3 VERSION=3.0.4 # remove any previous instances if [ "$(docker ps -a -q -f name=my-running-haproxy)" ]; then docker stop my-running-haproxy docker rm my-running-haproxy fi mkdir -p /tmp/haproxy rm -fR /tmp/haproxy/* curl -k -L https://raw.githubusercontent.com/haproxytech/haproxy-docker-ubuntu/refs/tags/$VERSION/3.0/haproxy.cfg -o /tmp/haproxy/haproxy.cfg dataplaneLines=$(cat <<EOF userlist haproxy-dataplaneapi user admin insecure-password mypassword program api command /usr/bin/dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /usr/local/etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --restart-cmd "kill -SIGUSR2 1" --reload-delay 5 --userlist haproxy-dataplaneapi no option start-on-reload EOF ) printf "%s\n" "$dataplaneLines" >> /tmp/haproxy/haproxy.cfg docker pull ghcr.io/haproxytech/haproxy-docker-ubuntu:$VERSION docker run -d --name my-running-haproxy --expose 5555 -v /tmp/haproxy:/usr/local/etc/haproxy:rw haproxytech/haproxy-ubuntu:$VERSION sleep 5 CONTAINER_ID=$(docker ps -a | grep haproxy | awk '{print $1}') docker logs $CONTAINER_ID
The text was updated successfully, but these errors were encountered:
Please if possible open an issue in dataplaneapi issue tracker, but in the meantime I'll ping DPAPI devs right away. Thanks!
Sorry, something went wrong.
No branches or pull requests
Using dataplane API in versions from 3.0.4 onward causes crash.
Simple to replicate by uncommenting 'program api' and 'userlist haproxy-dataplaneapi' section of the example config (note the VERSION variable in the following link!)
(https://raw.githubusercontent.com/haproxytech/haproxy-docker-ubuntu/refs/tags/$VERSION/3.0/haproxy.cfg)
Not yet found a way to use the dataplane API in versions later than 3.0.3
working in 3.0.3-95a607c
broken in 3.0.4-7a59afa onward
Uncomment these two lines from the haproxy.cfg:
log output:
Here is a BASH script to reproduce the issue:
The text was updated successfully, but these errors were encountered: