[Bug 1804069] Re: haproxy fails on arm64 due to alignment error
Andreas Hasenack
andreas at canonical.com
Thu Jan 24 19:39:36 UTC 2019
** Description changed:
[Impact]
* An explanation of the effects of the bug on users and
* justification for backporting the fix to the stable release.
* In addition, it is helpful, but not required, to include an
explanation of how the upload fixes this bug.
[Test Case]
* install haproxy and apache in an up-to-date ubuntu release you are testing, in an arm64 system:
sudo apt update && sudo apt dist-upgrade -y && sudo apt install haproxy apache2 -y
* Create /etc/haproxy/haproxy.cfg with the following contents:
global
- chroot /var/lib/haproxy
- user haproxy
- group haproxy
- daemon
- maxconn 4096
+ chroot /var/lib/haproxy
+ user haproxy
+ group haproxy
+ daemon
+ maxconn 4096
defaults
- log global
- option dontlognull
- option redispatch
- retries 3
- timeout client 50s
- timeout connect 10s
- timeout http-request 5s
- timeout server 50s
- maxconn 4096
+ log global
+ option dontlognull
+ option redispatch
+ retries 3
+ timeout client 50s
+ timeout connect 10s
+ timeout http-request 5s
+ timeout server 50s
+ maxconn 4096
frontend test-front
- bind *:8080
- mode http
- default_backend test-back
+ bind *:8080
+ mode http
+ default_backend test-back
backend test-back
- mode http
- stick store-request src
- stick-table type ip size 256k expire 30m
- server test-1 localhost:80
-
+ mode http
+ stick store-request src
+ stick-table type ip size 256k expire 30m
+ server test-1 localhost:80
* in one terminal, keep tailing the (still nonexistent) haproxy log file:
tail -F /var/log/haproxy.log
- * in another terminal, restart haproxy and tail its logs:
+ * in another terminal, restart haproxy:
sudo systemctl restart haproxy
- tail -f /var/log/haproxy.log
* in another terminal, start haproxy:
sudo systemctl restart haproxy
* The haproxy log fill become live, and already show errors:
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : Exiting Master process...
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [ALERT] 023/191958 (2286) : Current worker 2287 exited with code 143
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : All workers exited. Exiting... (143)
* Run wget to try to fetch the apache frontpage, via haproxy, limited to one attempt. It will fail:
$ wget -t1 http://localhost:8080
--2019-01-24 19:23:51-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... No data received.
Giving up.
$ echo $?
4
* the haproxy logs will show errors:
- Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : Current worker 6412 exited with code 135
- Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : exit-on-failure: killing every workers with SIGTERM
- Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [WARNING] 023/192351 (6411) : All workers exited. Exiting... (135)
+ Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : Current worker 6412 exited with code 135
+ Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : exit-on-failure: killing every workers with SIGTERM
+ Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [WARNING] 023/192351 (6411) : All workers exited. Exiting... (135)
* Update the haproxy package and try the wget one more time. This time it will work, and the haproxy logs will stay silent:
wget -t1 http://localhost:8080
--2019-01-24 19:26:14-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10918 (11K) [text/html]
Saving to: ‘index.html’
index.html
100%[================================================================================================================================>]
10.66K --.-KB/s in 0s
2019-01-24 19:26:14 (75.3 MB/s) - ‘index.html’ saved [10918/10918]
-
[Regression Potential]
* discussion of how regressions are most likely to manifest as a result
of this change.
* It is assumed that any SRU candidate patch is well-tested before
upload and has a low overall risk of regression, but it's important
to make the effort to think about what ''could'' happen in the
event of a regression.
* This both shows the SRU team that the risks have been considered,
and provides guidance to testers in regression-testing the SRU.
[Other Info]
* Anything else you think is useful to include
* Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
* and address these questions in advance
[Original Description]
This fault was reported via the haproxy mailing list https://www.mail-
archive.com/haproxy at formilux.org/msg31749.html
And then patched in the haproxy code here
https://github.com/haproxy/haproxy/commit/52dabbc4fad338233c7f0c96f977a43f8f81452a
Without this patch haproxy is not functional on aarch64/arm64.
Experimental deployments of openstack-ansible on arm64 fail because of
this bug, and without a fix applied to the ubuntu bionic packages we
cannot proceed further as the openstack CI only installs the upstream
ubuntu distribution packages.
** Description changed:
[Impact]
* An explanation of the effects of the bug on users and
* justification for backporting the fix to the stable release.
* In addition, it is helpful, but not required, to include an
explanation of how the upload fixes this bug.
[Test Case]
* install haproxy and apache in an up-to-date ubuntu release you are testing, in an arm64 system:
sudo apt update && sudo apt dist-upgrade -y && sudo apt install haproxy apache2 -y
* Create /etc/haproxy/haproxy.cfg with the following contents:
global
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
maxconn 4096
defaults
log global
option dontlognull
option redispatch
retries 3
timeout client 50s
timeout connect 10s
timeout http-request 5s
timeout server 50s
maxconn 4096
frontend test-front
bind *:8080
mode http
default_backend test-back
backend test-back
mode http
stick store-request src
stick-table type ip size 256k expire 30m
server test-1 localhost:80
* in one terminal, keep tailing the (still nonexistent) haproxy log file:
tail -F /var/log/haproxy.log
* in another terminal, restart haproxy:
sudo systemctl restart haproxy
- * in another terminal, start haproxy:
- sudo systemctl restart haproxy
-
- * The haproxy log fill become live, and already show errors:
+ * The haproxy log will become live, and already show errors:
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : Exiting Master process...
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [ALERT] 023/191958 (2286) : Current worker 2287 exited with code 143
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : All workers exited. Exiting... (143)
* Run wget to try to fetch the apache frontpage, via haproxy, limited to one attempt. It will fail:
$ wget -t1 http://localhost:8080
--2019-01-24 19:23:51-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... No data received.
Giving up.
$ echo $?
4
* the haproxy logs will show errors:
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : Current worker 6412 exited with code 135
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : exit-on-failure: killing every workers with SIGTERM
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [WARNING] 023/192351 (6411) : All workers exited. Exiting... (135)
* Update the haproxy package and try the wget one more time. This time it will work, and the haproxy logs will stay silent:
wget -t1 http://localhost:8080
--2019-01-24 19:26:14-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10918 (11K) [text/html]
Saving to: ‘index.html’
index.html
100%[================================================================================================================================>]
10.66K --.-KB/s in 0s
2019-01-24 19:26:14 (75.3 MB/s) - ‘index.html’ saved [10918/10918]
[Regression Potential]
* discussion of how regressions are most likely to manifest as a result
of this change.
* It is assumed that any SRU candidate patch is well-tested before
upload and has a low overall risk of regression, but it's important
to make the effort to think about what ''could'' happen in the
event of a regression.
* This both shows the SRU team that the risks have been considered,
and provides guidance to testers in regression-testing the SRU.
[Other Info]
* Anything else you think is useful to include
* Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
* and address these questions in advance
[Original Description]
This fault was reported via the haproxy mailing list https://www.mail-
archive.com/haproxy at formilux.org/msg31749.html
And then patched in the haproxy code here
https://github.com/haproxy/haproxy/commit/52dabbc4fad338233c7f0c96f977a43f8f81452a
Without this patch haproxy is not functional on aarch64/arm64.
Experimental deployments of openstack-ansible on arm64 fail because of
this bug, and without a fix applied to the ubuntu bionic packages we
cannot proceed further as the openstack CI only installs the upstream
ubuntu distribution packages.
** Description changed:
[Impact]
* An explanation of the effects of the bug on users and
* justification for backporting the fix to the stable release.
* In addition, it is helpful, but not required, to include an
explanation of how the upload fixes this bug.
[Test Case]
* install haproxy and apache in an up-to-date ubuntu release you are testing, in an arm64 system:
sudo apt update && sudo apt dist-upgrade -y && sudo apt install haproxy apache2 -y
* Create /etc/haproxy/haproxy.cfg with the following contents:
global
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
maxconn 4096
defaults
log global
option dontlognull
option redispatch
retries 3
timeout client 50s
timeout connect 10s
timeout http-request 5s
timeout server 50s
maxconn 4096
frontend test-front
bind *:8080
mode http
default_backend test-back
backend test-back
mode http
stick store-request src
stick-table type ip size 256k expire 30m
server test-1 localhost:80
* in one terminal, keep tailing the (still nonexistent) haproxy log file:
tail -F /var/log/haproxy.log
* in another terminal, restart haproxy:
sudo systemctl restart haproxy
* The haproxy log will become live, and already show errors:
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : Exiting Master process...
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [ALERT] 023/191958 (2286) : Current worker 2287 exited with code 143
Jan 24 19:22:23 cosmic-haproxy-1804069 haproxy[2286]: [WARNING] 023/191958 (2286) : All workers exited. Exiting... (143)
* Run wget to try to fetch the apache frontpage, via haproxy, limited to one attempt. It will fail:
$ wget -t1 http://localhost:8080
--2019-01-24 19:23:51-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... No data received.
Giving up.
$ echo $?
4
* the haproxy logs will show errors:
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : Current worker 6412 exited with code 135
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [ALERT] 023/192351 (6411) : exit-on-failure: killing every workers with SIGTERM
Jan 24 19:24:36 cosmic-haproxy-1804069 haproxy[6411]: [WARNING] 023/192351 (6411) : All workers exited. Exiting... (135)
- * Update the haproxy package and try the wget one more time. This time it will work, and the haproxy logs will stay silent:
- wget -t1 http://localhost:8080
+ * Update the haproxy package and try the wget one more time. This time
+ it will work, and the haproxy logs will stay silent:
+
+ $ wget -t1 http://localhost:8080
--2019-01-24 19:26:14-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10918 (11K) [text/html]
Saving to: ‘index.html’
index.html
100%[================================================================================================================================>]
10.66K --.-KB/s in 0s
2019-01-24 19:26:14 (75.3 MB/s) - ‘index.html’ saved [10918/10918]
[Regression Potential]
* discussion of how regressions are most likely to manifest as a result
of this change.
* It is assumed that any SRU candidate patch is well-tested before
upload and has a low overall risk of regression, but it's important
to make the effort to think about what ''could'' happen in the
event of a regression.
* This both shows the SRU team that the risks have been considered,
and provides guidance to testers in regression-testing the SRU.
[Other Info]
* Anything else you think is useful to include
* Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
* and address these questions in advance
[Original Description]
This fault was reported via the haproxy mailing list https://www.mail-
archive.com/haproxy at formilux.org/msg31749.html
And then patched in the haproxy code here
https://github.com/haproxy/haproxy/commit/52dabbc4fad338233c7f0c96f977a43f8f81452a
Without this patch haproxy is not functional on aarch64/arm64.
Experimental deployments of openstack-ansible on arm64 fail because of
this bug, and without a fix applied to the ubuntu bionic packages we
cannot proceed further as the openstack CI only installs the upstream
ubuntu distribution packages.
--
You received this bug notification because you are a member of Ubuntu
Server, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1804069
Title:
haproxy fails on arm64 due to alignment error
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/1804069/+subscriptions
More information about the Ubuntu-server-bugs
mailing list