Bug 37425

Summary: [aarch64] systemd re-exec is fatally broken
Product: Sisyphus Reporter: Sergey Bolshakov <sbolshakov>
Component: systemdAssignee: Alexey Shabalin <shaba>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: arseny, glebfm, iv, ldv, mike, shaba
Version: unstable   
Hardware: aarch64   
OS: Linux   
Attachments:
Description Flags
systemd backtrace none

Description Sergey Bolshakov 2019-11-05 16:08:52 MSK
Created attachment 8363 [details]
systemd backtrace

# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following packages will be upgraded
  glibc-core glibc-gconv-modules glibc-locales glibc-nss glibc-preinstall
  glibc-pthread glibc-timezones glibc-utils iconv
9 upgraded, 0 newly installed, 0 removed and 0 not upgraded.
Need to get 0B/8906kB of archives.
After unpacking 4032B disk space will be freed.
Do you want to continue? [Y/n] 
Committing changes...
Preparing...                            ################################# [100%]
Updating / installing...
 1: glibc-preinstall-6:2.27-alt11       ################################# [  6%]
 2: glibc-core-6:2.27-alt11             ################################# [ 11%]
 3: glibc-pthread-6:2.27-alt11          ################################# [ 17%]
 4: glibc-gconv-modules-6:2.27-alt11    ################################# [ 22%]
 5: iconv-6:2.27-alt11                  ################################# [ 28%]
 6: glibc-timezones-6:2.27-alt11        ################################# [ 33%]
 7: glibc-nss-6:2.27-alt11              ################################# [ 39%]
 8: glibc-utils-6:2.27-alt11            ################################# [ 44%]
 9: glibc-locales-6:2.27-alt11          ################################# [ 50%]
Cleaning up / removing...
10: glibc-locales-6:2.27-alt10          ################################# [ 56%]
11: glibc-utils-6:2.27-alt10            ################################# [ 61%]
12: glibc-timezones-6:2.27-alt10        ################################# [ 67%]
13: iconv-6:2.27-alt10                  ################################# [ 72%]
14: glibc-gconv-modules-6:2.27-alt10    ################################# [ 78%]
15: glibc-nss-6:2.27-alt10              ################################# [ 83%]
16: glibc-pthread-6:2.27-alt10          ################################# [ 89%]
17: glibc-core-6:2.27-alt10             ################################# [ 94%]
18: glibc-preinstall-6:2.27-alt10       ################################# [100%]
[  608.602441] systemd[1]: Caught <ABRT>, dumped core as pid 1027.
[  608.608614] systemd[1]: Freezing execution.
Done.
Comment 1 Dmitry V. Levin 2019-11-05 23:38:46 MSK
Между -alt10 и -alt11 были коммиты, затрагивающие непосредственно aarch64:
$ git log --no-merges --oneline 2.27-alt10..2.27-alt11 -- $(find sysdeps/ -name aarch64)
5f0d2e0491 [AArch64] Add ifunc support for Ares
e6b7252040 aarch64,falkor: Use vector registers for memcpy
c74b884f70 aarch64,falkor: Ignore prefetcher tagging for smaller copies
0fc5934ebd aarch64/strncmp: Use lsr instead of mov+lsr
e0a0bd3acc aarch64/strncmp: Unbreak builds with old binutils
638caf3000 aarch64: Improve strncmp for mutually misaligned inputs
d5f45a29ff aarch64/strcmp: fix misaligned loop jump target
40df047b3b aarch64: Fix branch target to loop16
062139f233 aarch64: Optimized memcmp for medium to large sizes
f3e2add213 aarch64: Use the L() macro for labels in memcmp
bdd16894aa aarch64: handle STO_AARCH64_VARIANT_PCS

Все эти коммиты были смержены вместе со стабильным бранчем release/2.27/master.

Непонятно, почему обновление с 2.27-alt10 до 2.27-alt11 так себя проявило только сейчас.

Если бы ошибка "stack smashing detected" не произошла на фоне обновления glibc, я бы вообще предложил сперва посмотреть на libsystemd.
Comment 2 Sergey Bolshakov 2019-11-05 23:44:59 MSK
Да, я смотрел в git log.
Проблема не проявляется на чистой установке, уже с -alt11,
но именно при upgrade и только на aarch64.
Принимая во внимание, что alt11 уже успела добраться до p9,
последствия могут быть малоприятными.
Comment 3 Sergey Bolshakov 2019-11-06 12:05:57 MSK
upd: проявляется и на чистых установках.
Comment 4 Michael Shigorin 2019-11-07 03:35:51 MSK
(В ответ на комментарий №2)
> Принимая во внимание, что alt11 уже успела добраться до p9,
> последствия могут быть малоприятными.
Похоже, регламент ждут поправки...
Comment 5 Sergey Bolshakov 2019-11-07 13:21:51 MSK
upd падает так же, даже если делать upgrade на локально пересобранную
2.27-alt10 (+ %set_gcc_version 8)
Comment 6 Dmitry V. Levin 2019-11-07 13:24:20 MSK
(In reply to comment #5)
> upd падает так же, даже если делать upgrade на локально пересобранную
> 2.27-alt10 (+ %set_gcc_version 8)

Может, всё-таки посмотреть на libsystemd?
Comment 7 Dmitry V. Levin 2019-11-07 13:25:59 MSK
(In reply to comment #5)
> upd падает так же, даже если делать upgrade на локально пересобранную
> 2.27-alt10 (+ %set_gcc_version 8)

А если не делать upgrade, а просто сказать "/sbin/telinit u"?
Comment 8 Sergey Bolshakov 2019-11-07 15:46:08 MSK
ну да, просто reexec ва(In reply to comment #7)
> (In reply to comment #5)
> > upd падает так же, даже если делать upgrade на локально пересобранную
> > 2.27-alt10 (+ %set_gcc_version 8)
> 
> А если не делать upgrade, а просто сказать "/sbin/telinit u"?

да, простой reexec точно так же может привести к проблеме --
не каждый раз и не везде (= не на любом железе), но довольно часто.
Comment 9 Dmitry V. Levin 2019-11-07 15:52:40 MSK
(In reply to comment #8)
> да, простой reexec точно так же может привести к проблеме --
> не каждый раз и не везде (= не на любом железе), но довольно часто.

Тогда перевешу пока на systemd.  Не то, чтобы это на что-то повлияло, но всё же.