ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Evgeny Sinelnikov <sin@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] ldd segfault at verify-elf // samba-4.14.11-alt3: Sisyphus/x86_64 test rebuild failed
Date: Wed, 9 Feb 2022 05:43:41 +0400
Message-ID: <CAK42-GrAJ0D+8KCnUSmeyujtG0hFZUqvQrKyiEDjrr7PJquDBQ@mail.gmail.com> (raw)
In-Reply-To: <YgMUjPpZeZPia874@glebfm.altlinux.org>

ср, 9 февр. 2022 г. в 05:11, Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>:
>
> On Wed, Feb 09, 2022 at 04:51:32AM +0400, Evgeny Sinelnikov wrote:
> > ср, 9 февр. 2022 г. в 03:39, Dmitry V. Levin <ldv@altlinux.org>:
> > >
> > > On Wed, Feb 09, 2022 at 03:34:57AM +0400, Evgeny Sinelnikov wrote:
> > > > Доброй ночи,
> > > >
> > > > честно говоря, я даже не знаю как к этой проблеме подступиться.
> > > >
> > > > Вот вышел очередной CVE:
> > > > https://git.altlinux.org/tasks/295057/build/200/x86_64/log
> > > >
> > > > Теперь для его закрытия нужно сделать что?
> > > > Раскопать где в недрах waf задаётся правильная линковка?
> > > >
> > > > Я даже не уверен, что понимаю о чём идёт речь в плане правильная/неправильная.
> > > >
> > > > Прошу помочь разобраться со следующим:
> > > >
> > > > 1) Как воспроизвести проверку локально?
> > > > Вот я смотрел-смотрел сюда и хотел уже было заплакать, но решил написать:
> > > > https://sourceware.org/bugzilla/show_bug.cgi?id=28868
> > > >
> > > > 2) Где про всё это можно почитать так, чтобы было понятно?
> > > > Я не понимаю как диагностировать и решать данную проблему.
> > >
> > > Цитирую цитату:
> >
> > Спасибо, я перечитал. Понял, что не особо понял что будет дальше.
> > Поясню. Сборку запустил, ожидаю сам не знаю чего. Не уверен, что
> > verify-elf, запускающий ldd со старым алгоритмом сортировки библиотек,
> > будет информативнее, что то, что имеется...
> >
> > Я ведь не понимаю, что ожидается. Как мне догадаться то получилось,
> > что имелось в виду как "список ошибок" или нет?
>
> Ожидается, что при работе verify-elf динамический загрузчик не упадёт и
> verify-elf сможет вывести всё, что он должен вывести.
>
> > > > пн, 7 февр. 2022 г. в 19:12, Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>:
> > > [...]
> > > > > В данном случае тут и проблема в samba и бага (см. [1]) в новой glibc
> > > > > 2.35.  Если бы в glibc не было бы баги, то samba (вместе с бы просто
> > > > > оказалась во вчерашнем списке пакетов с library not found[2].
> > > > >
> > > > > Чтобы посмотреть на список ошибок в упаковке библиотек samba, можно
> > > > > добавить export GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1 в конец секции
> > > > > %install, чтобы verify-elf запустил ldd со старым алгоритмом сортировки
> > > > > библиотек.
> >
> > Вот такой diff:
> >
> > sin@xdt samba $ git diff | cat
> > diff --git a/samba4.spec b/samba4.spec
> > index 759d45b8525..aec070bbea2 100644
> > --- a/samba4.spec
> > +++ b/samba4.spec
> > @@ -1088,6 +1088,8 @@ install -m755 script/traffic_replay
> > %buildroot%_bindir/traffic_replay
> >  %find_lang pam_winbind
> >  %find_lang net
> >
> > +export GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1
> > +
> >  %if_with testsuite
> >  %check
> >  TDB_NO_FSYNC=1 %make_build test V=2 -Onone
> >
> >
> > Вот такой вывод:
> >
> > ...
>
> Где-то выше был вывод verify-elf, в нём есть сообщения о том, что при
> проверке некоторых ELF-ов не были найдены необходимые библиотеки.
>
> > Processing files: samba-libs-4.14.12-alt1
> > warning: File listed twice: /usr/lib64/samba/pdb
> > Finding Provides (using /usr/lib/rpm/find-provides)
> > Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.0jr7RN
> > find-provides: running scripts
> > (alternatives,debuginfo,gir,lib,pam,perl,pkgconfig,python,python3,shell,typelib,vala)
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libdcerpc-binding.so.0:
> > 227 symbols, 18 bpp
> > lib.prov: WARNING:
> > /usr/src/tmp/samba-buildroot/usr/lib64/libdcerpc-samr.so.0: no symbols
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libdcerpc-server-core.so.0:
> > 53 symbols, 16 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libdcerpc.so.0: 169
> > symbols, 18 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libnetapi.so.0: 716
> > symbols, 20 bpp
> > warning: hash collision: NetWkstaGetInfo_r ndr_pull_WKSTA_INFO_100
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsamba-credentials.so.1:
> > 109 symbols, 17 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsamba-hostconfig.so.0:
> > 582 symbols, 20 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsamba-passdb.so.0:
> > 307 symbols, 19 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsamdb.so.0: 44
> > symbols, 16 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsmbconf.so.0: 1133
> > symbols, 21 bpp
> > lib.prov: /usr/src/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2: 33
> > symbols, 16 bpp
> > Finding Requires (using /usr/lib/rpm/find-requires)
> > Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.qVAaY1
> > find-requires: running scripts
> > (cpp,debuginfo,files,gir-js,gir-python,gir,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services,typelib,vala)
> > /usr/lib/rpm/ldd: line 100: 3544681 Segmentation fault
> > LD_TRACE_LOADED_OBJECTS=1 LD_WARN=$warn LD_BIND_NOW=$bind_now
> > LD_DEBUG=$debug LD_LIBRARY_VERSION=$verify_out
> > LD_PRELOAD="$rtld_preload" "$rtld" --library-path "$rpath"
> > "$rtld_target"
> > ldd: ERROR: /usr/src/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0:
> > trace failed
>
> Если бы не ошибка в glibc, в этом месте была бы ошибка с указанием того,
> какой именно библиотеки не нашлось при обработке библиотеки
> libsmbldap.so.2.1.0, но к счастью verify-elf уже диагностировал это выше.

sin@xdt samba $ head verify-elf.log
Verifying ELF objects in /usr/src/tmp/samba-buildroot
(arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=relaxed)
verify-elf: WARNING: ./usr/lib/ctdb/ctdb-eventd: RPATH entry found:
/usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb_mutex_fcntl_helper: RPATH
entry found: /usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb-config: RPATH entry found:
/usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb-event: RPATH entry found:
/usr/lib64/samba
versin@xdt samba $ wc -l verify-elf.log
1167 verify-elf.logify-elf: WARNING: ./usr/lib/ctdb/ctdb_lock_helper:
RPATH entry found: /usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb-path: RPATH entry found:
/usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb_recovery_helper: RPATH entry
found: /usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb_takeover_helper: RPATH entry
found: /usr/lib64/samba
verify-elf: WARNING: ./usr/lib/ctdb/ctdb_killtcp: RPATH entry found:
/usr/lib64/samba

sin@xdt samba $ wc -l verify-elf.log
1167 verify-elf.log

sin@xdt samba $ grep libsmbldap verify-elf.log
verify-elf: WARNING: ./usr/lib64/samba/libsmbldaphelper-samba4.so:
RPATH entry found: /usr/lib64/samba
verify-elf: WARNING: ./usr/lib64/samba/libsmbldaphelper-samba4.so:
undefined symbol: decode_account_policy_name
verify-elf: WARNING: ./usr/lib64/samba/libsmbldaphelper-samba4.so:
undefined symbol: account_policy_get_default
verify-elf: WARNING: ./usr/lib64/samba/libsmbldaphelper-samba4.so:
undefined symbol: algorithmic_rid_base
verify-elf: WARNING: ./usr/lib64/samba/libsmbldaphelper-samba4.so:
undefined symbol: get_account_policy_attr
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldaphelper-samba4.so:
RPATH entry found: /usr/lib64/samba-dc
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldaphelper-samba4.so:
undefined symbol: decode_account_policy_name
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldaphelper-samba4.so:
undefined symbol: account_policy_get_default
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldaphelper-samba4.so:
undefined symbol: algorithmic_rid_base
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldaphelper-samba4.so:
undefined symbol: get_account_policy_attr
verify-elf: WARNING: ./usr/lib64/samba-dc/libsmbldap.so.2.1.0: RPATH
entry found: /usr/lib64/samba-dc
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-debug-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libreplace-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-security-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsmbd-shim-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libgenrand-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsocket-blocking-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-debug-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libtime-basic-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsys-rw-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libreplace-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libutil-reg-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libmessages-util-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba3-util-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-debug-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libdbwrap-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsys-rw-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libserver-id-db-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libreplace-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-security-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libtalloc-report-printf-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libiov-buf-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsocket-blocking-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libmessages-dgm-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libinterfaces-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-sockets-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libCHARSET3-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsmbd-shim-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-cluster-support-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libutil-tdb-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libtime-basic-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libtdb-wrap-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libgenrand-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libutil-setid-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libserver-role-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libreplace-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-debug-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libgenrand-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libtime-basic-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libreplace-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libserver-role-samba4.so
verify-elf: WARNING: ./usr/lib64/libsmbldap.so.2.1.0: not found:
libsamba-debug-samba4.so

[builder@localhost SPECS]$ ldd
~/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0
    linux-vdso.so.1 (0x00007fff8ddfa000)
    libsamba-util.so.0 => not found
    libsmbconf.so.0 => not found
    libsamba-debug-samba4.so => not found
    libreplace-samba4.so => not found
    libsamba-security-samba4.so => not found
    libsmbd-shim-samba4.so => not found
    libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f24730ab000)
    liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f2473097000)
    libtalloc.so.2 => /usr/lib64/libtalloc.so.2 (0x00007f247308a000)
    libtevent.so.0 => /usr/lib64/libtevent.so.0 (0x00007f2473075000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f2472e6e000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2472e58000)
    libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f2472e39000)
    libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f2472da2000)
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f2472aca000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f2473126000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f2472ac5000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f2472a8e000)
    libz.so.1 => /lib64/libz.so.1 (0x00007f2472a6f000)

[builder@localhost SPECS]$ readelf -a
~/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0 |grep RPATH
[builder@localhost SPECS]$ readelf -a
~/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0 |grep RPATH
[builder@localhost SPECS]$ readelf -a
~/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0 |less
[builder@localhost SPECS]$ readelf -a
~/tmp/samba-buildroot/usr/lib64/libsmbldap.so.2.1.0 |grep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [libsamba-util.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libsmbconf.so.0]
 0x0000000000000001 (NEEDED)             Shared library:
[libsamba-debug-samba4.so]
 0x0000000000000001 (NEEDED)             Shared library: [libreplace-samba4.so]
 0x0000000000000001 (NEEDED)             Shared library:
[libsamba-security-samba4.so]
 0x0000000000000001 (NEEDED)             Shared library:
[libsmbd-shim-samba4.so]
 0x0000000000000001 (NEEDED)             Shared library: [libldap-2.4.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [liblber-2.4.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libtalloc.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libtevent.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]

Где же счастье?

> > Я не понимаю как мне интерпретировать этот вывод, чтобы что-то понять
> > мне требуется воспроизвести проблему руками. В упор, не понимаю как
> > мне это сделать.
>
> --
> glebfm
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Sin (Sinelnikov Evgeny)

  reply	other threads:[~2022-02-09  1:43 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-07  5:41 Ivan A. Melnikov
2022-02-07 15:11 ` Gleb Fotengauer-Malinovskiy
2022-02-08 23:34   ` Evgeny Sinelnikov
2022-02-08 23:39     ` Dmitry V. Levin
2022-02-09  0:51       ` Evgeny Sinelnikov
2022-02-09  1:10         ` Gleb Fotengauer-Malinovskiy
2022-02-09  1:43           ` Evgeny Sinelnikov [this message]
2022-02-09  1:42         ` Dmitry V. Levin
2022-02-09  1:47           ` Evgeny Sinelnikov
2022-02-09  2:04             ` Dmitry V. Levin
2022-02-09 17:43   ` Gleb Fotengauer-Malinovskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK42-GrAJ0D+8KCnUSmeyujtG0hFZUqvQrKyiEDjrr7PJquDBQ@mail.gmail.com \
    --to=sin@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git