From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 9 Feb 2022 04:10:36 +0300 From: Gleb Fotengauer-Malinovskiy To: ALT Linux Team development discussions Message-ID: References: <20220207054116.gwnxt6apzpiauygg@titan.localdomain> <20220208233917.GD21338@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [devel] ldd segfault at verify-elf // samba-4.14.11-alt3: Sisyphus/x86_64 test rebuild failed X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Feb 2022 01:11:28 -0000 Archived-At: List-Archive: List-Post: On Wed, Feb 09, 2022 at 04:51:32AM +0400, Evgeny Sinelnikov wrote: > ср, 9 февр. 2022 г. в 03:39, Dmitry V. Levin : > > > > 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 : > > [...] > > > > В данном случае тут и проблема в 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 уже диагностировал это выше. > Я не понимаю как мне интерпретировать этот вывод, чтобы что-то понять > мне требуется воспроизвести проблему руками. В упор, не понимаю как > мне это сделать. -- glebfm