[chrony-dev] LTO breaks chrony/clocknetsim on s390x |
[ Thread Index |
Date Index
| More chrony.tuxfamily.org/chrony-dev Archives
]
Hi,
we were about to switch on LTO by default on Ubuntu 21.04.
While doing so I was made aware of a related test breakage on s390x.
Components
Chrony: 4.0-5ubuntu2
Gcc: 4:10.2.0-1ubuntu1
Glibc: 2.33-0ubuntu2
For the test, chrony is rebuilt which now started to pick up LTO being enabled.
Most of the tests actually worked, so it is no general all-goes-to-h... problem
But when running the simulation tests it failed case 110.
Reprocuced in a s390x LXD container:
$ apt update
$ apt build-dep chrony
$ apt source chrony
$ cd chrony-4.0
$ ./debian/rules build
$ mkdir /tmp/mytest/
$ export AUTOPKGTEST_TMP=/tmp/mytest/
$ export CLKNETSIM_PATH=/tmp/mytest/
$ cd test/simulation
$ ./110-chronyc
Looking into that I had I found that 110 has quite a subset of tests
All of them worked until this one:
network with 1*0 servers and 1 clients:
non-default settings:
chronyc_conf=dns -n dns +n dns -4 dns -6 dns -46 timeout 200
retries 1 keygen keygen 10 MD5 128 keygen 11 MD5 40 help quit
nosuchcommand
chronyc_start=0
dns=1
limit=1
refclock_jitter=1e-4
server_conf=server 192.168.123.1
server_strata=0
starting node 1: OK
starting node 2: OK
running simulation:clknetsim failed
ERROR
FAIL
After eliminating a bunch of red herrings I've found that when I
trigger that I get a user space fault in dmesg like:
[2680568.517156] Last Breaking-Event-Address:
[2680568.517159] [<000002aa2e603214>] 0x2aa2e603214
[2684266.007865] User process fault: interruption code 003b ilc:2 in
libc-2.33.so[3ff8f480000+1c5000]
[2684266.007878] Failing address: 00000000d1230000 TEID: 00000000d1230800
[2684266.007880] Fault in primary space mode while using user ASCE.
[2684266.007882] AS:00000006dd8341c7 R3:0000000000000024
[2684266.007887] CPU: 21 PID: 798868 Comm: chronyc Tainted: P
O 5.4.0-66-generic #74-Ubuntu
[2684266.007888] Hardware name: IBM 2964 N63 400 (LPAR)
[2684266.007890] User PSW : 0705100180000000 000003ff8f5b4620
[2684266.007892] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:1 AS:0
CC:1 PM:0 RI:0 EA:3
[2684266.007894] User GPRS: 0000000000000000 0000000000000015
00000000ffffffff 0000000000000200
[2684266.007895] 0000000000000001 0000000000000014
00000000d1230123 000003fff087c930
[2684266.007896] 0000000000000014 0000000000000014
00000000d1230123 0000000000000001
[2684266.007897] 000003ff8fa2cf98 000002aa2b3971f0
000002aa2b387efc 000003fff087c7d0
[2684266.007905] User Code: 000003ff8f5b460e: ec1200762065 clgrj
%r1,%r2,2,000003ff8f5b46fa
000003ff8f5b4614: ec93007f2065 clgrj
%r9,%r3,2,000003ff8f5b4712
#000003ff8f5b461a: ec980050007c cgij
%r9,0,8,000003ff8f5b46ba
>000003ff8f5b4620: 9180a002 tm 2(%r10),128
000003ff8f5b4624: a7740025 brc 7,000003ff8f5b466e
000003ff8f5b4628: b24f0060 ear %r6,%a0
000003ff8f5b462c: e310a0880004 lg %r1,136(%r10)
000003ff8f5b4632: eb660020000d sllg %r6,%r6,32
[2684266.007920] Last Breaking-Event-Address:
[2684266.007924] [<000002aa2b383214>] 0x2aa2b383214
I was able to confirm that disabling LTO resolved the issue, so for
now that will stay disabled on s390x. But I wanted to ask here if
chrony-experts could have a look at reproducing that if it makes any
sense to you and if myber there could be a fix that then allows to
enable LTO.
FYI: See [1] for the related Ubuntu bug and the strange trip until I
found it indeed was LTO.
[1]: https://bugs.launchpad.net/ubuntu/+source/chrony/+bug/1921377
--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd
--
To unsubscribe email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "unsubscribe" in the subject.
For help email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "help" in the subject.
Trouble? Email listmaster@xxxxxxxxxxxxxxxxxxxx.