Summary: | libevent: ошибка сборки с glibc 2.36 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Alexey Sheplyakov <asheplyakov> |
Component: | libevent | Assignee: | placeholder <placeholder> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | asheplyakov, asheplyakov, glebfm, iv, ldv, nir, placeholder, sin |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 45802 |
Description
Alexey Sheplyakov
2023-05-18 20:23:43 MSK
http://git.altlinux.org/people/asheplyakov/packages/libevent.git tags/2.1.12-alt1 #321176 FAILED #1 [test-only] sisyphus libevent.git=2.1.12-alt1 FAILED потому что поехало ABI, и нужно пересобрать клиентов (MySQL, chromium, и всякое такое) task add rebuild-unmets? (Ответ для Dmitry V. Levin на комментарий #3) > task add rebuild-unmets? Вопрос в другом: есть ли какие-то возражения против обновления на 2.1.12 (и последующей массовой пересборки)? У пакета много пользователей, но по сути нет мантейнера, поэтому, я думаю, результат пересборки зависимых пакетов будет определяющим. (Ответ для Dmitry V. Levin на комментарий #5) > У пакета много пользователей, но по сути нет мантейнера, Значит я буду. > поэтому, я думаю, результат пересборки зависимых пакетов будет определяющим. Автоматика не осилила, с первого взгляда видно, что chromium надо было собирать последним. Падает тест openldap: [00:21:14] Starting lloadd on TCP/IP port 9011... [00:21:15] ./scripts/lloadd/test000-rootdse: line 70: 3131293 Aborted $SLAPD -f $CONF1.slapd -h $URI6 -d $LVL > $LOG1 2>&1 [00:21:15] Using ldapsearch to retrieve the root DSE... [00:21:15] <39>May 19 08:16:53 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:15] Waiting 7 seconds for lloadd to start... [00:21:22] <39>May 19 08:17:00 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:22] Waiting 7 seconds for lloadd to start... [00:21:29] <39>May 19 08:17:07 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:29] Waiting 7 seconds for lloadd to start... [00:21:36] <39>May 19 08:17:14 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:36] Waiting 7 seconds for lloadd to start... [00:21:43] <39>May 19 08:17:21 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:43] Waiting 7 seconds for lloadd to start... [00:21:50] <39>May 19 08:17:28 lt-ldapsearch: DIGEST-MD5 common mech free [00:21:50] Waiting 7 seconds for lloadd to start... [00:21:57] ./scripts/lloadd/test000-rootdse: line 100: kill: (3131293) - No such process [00:21:57] >>>>> Test failed [00:21:57] <39>May 19 08:17:35 lt-slapd[3131241]: DIGEST-MD5 common mech free [00:21:57] <39>May 19 08:17:35 lt-slapd[3131235]: DIGEST-MD5 common mech free [00:21:57] <39>May 19 08:17:35 lt-slapd[3131244]: DIGEST-MD5 common mech free [00:21:57] <39>May 19 08:17:35 lt-slapd[3131235]: DIGEST-MD5 common mech free [00:21:57] <39>May 19 08:17:35 lt-slapd[3131244]: DIGEST-MD5 common mech free [00:21:57] >>>>> 00:00:44 Failed test000-rootdse for lloadd+mdb after 44 seconds [00:21:57] (exit 255) На loongarch падает этот же тест с вот такой диагностикой: 64673ab3.388d97f2 0x7ffff3bf4100 lt-slapd startup: initiated. 64673ab3.3897095e 0x7ffff31370c0 lloadd startup: failed to set up for async name resolution 64673ab3.3899ed86 0x7ffff3bf4100 backend_startup: bi_open 4 (lload) failed! 64673ab3.389a1b4e 0x7ffff3bf4100 lt-slapd shutdown: initiated lt-slapd: module_init.c:132: lload_back_close: Assertion `lloadd_inited == 1' failed. Это похоже на https://github.com/libevent/libevent/issues/1155 (Ответ для Alexey Sheplyakov на комментарий #7) > Падает тест openldap: > > [00:21:14] Starting lloadd on TCP/IP port 9011... > [00:21:15] ./scripts/lloadd/test000-rootdse: line 70: 3131293 Aborted > $SLAPD -f $CONF1.slapd -h $URI6 -d $LVL > $LOG1 2>&1 > [00:21:15] Using ldapsearch to retrieve the root DSE... > [00:21:15] <39>May 19 08:16:53 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:15] Waiting 7 seconds for lloadd to start... > [00:21:22] <39>May 19 08:17:00 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:22] Waiting 7 seconds for lloadd to start... > [00:21:29] <39>May 19 08:17:07 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:29] Waiting 7 seconds for lloadd to start... > [00:21:36] <39>May 19 08:17:14 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:36] Waiting 7 seconds for lloadd to start... > [00:21:43] <39>May 19 08:17:21 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:43] Waiting 7 seconds for lloadd to start... > [00:21:50] <39>May 19 08:17:28 lt-ldapsearch: DIGEST-MD5 common mech free > [00:21:50] Waiting 7 seconds for lloadd to start... > [00:21:57] ./scripts/lloadd/test000-rootdse: line 100: kill: (3131293) - No > such process > [00:21:57] >>>>> Test failed > [00:21:57] <39>May 19 08:17:35 lt-slapd[3131241]: DIGEST-MD5 common mech free > [00:21:57] <39>May 19 08:17:35 lt-slapd[3131235]: DIGEST-MD5 common mech free > [00:21:57] <39>May 19 08:17:35 lt-slapd[3131244]: DIGEST-MD5 common mech free > [00:21:57] <39>May 19 08:17:35 lt-slapd[3131235]: DIGEST-MD5 common mech free > [00:21:57] <39>May 19 08:17:35 lt-slapd[3131244]: DIGEST-MD5 common mech free > [00:21:57] >>>>> 00:00:44 Failed test000-rootdse for lloadd+mdb after 44 > seconds > [00:21:57] (exit 255) > > На loongarch падает этот же тест с вот такой диагностикой: > > 64673ab3.388d97f2 0x7ffff3bf4100 lt-slapd startup: initiated. > 64673ab3.3897095e 0x7ffff31370c0 lloadd startup: failed to set up for async > name resolution > 64673ab3.3899ed86 0x7ffff3bf4100 backend_startup: bi_open 4 (lload) failed! > 64673ab3.389a1b4e 0x7ffff3bf4100 lt-slapd shutdown: initiated > lt-slapd: module_init.c:132: lload_back_close: Assertion `lloadd_inited == > 1' failed. > > Это похоже на https://github.com/libevent/libevent/issues/1155 Ошибка вызвана тем, что /etc/resolv.conf в сборочнице пустой. Код в openldap (servers/lloadd/daemon.c) делает следующее: 1235 int 1236 lloadd_daemon( struct event_base *daemon_base ) 1237 { 1238 int i, rc; 1239 LloadTier *tier; 1240 struct event_base *base; 1241 struct event *event; 1242 struct timeval second = { 1, 0 }; 1243 1244 assert( daemon_base != NULL ); 1245 1246 dnsbase = evdns_base_new( daemon_base, EVDNS_BASE_INITIALIZE_NAMESERVERS ); 1247 if ( !dnsbase ) { 1248 Debug( LDAP_DEBUG_ANY, "lloadd startup: " 1249 "failed to set up for async name resolution\n" ); 1250 return -1; 1251 } evdns_base_new выдаёт ошибку, если не удалось разобрать /etc/resolv.conf (или он отсутствует), и lloadd не стартует. Для эксплуатации openldap (nfs, и прочих сетевых служб) поведение "не работает DNS - выругался и упал" - правильное и желательное, а для тестов в изолированном окружении - не очень. Загвоздка в том, что у libevent нет "ручек" (файла настроек, переменных окружения), чтобы переключиться между режимами "нормальная эксплуатация" и "тестирование", и разработчик(и) libevent не видят в ней необходимости, см. https://github.com/libevent/libevent/issues/1155#issuecomment-918826471 В libevent 2.1.8 проверка на наличие и правильность /etc/resolv.conf сломана, её починили позже, а именно в https://github.com/libevent/libevent/commit/c3f353450e94248ee677a068ed2c4ed29d64f79e Есть несколько вариантов решения: 1) Отключить тест lloadd в openldap 2) Соорудить какой-то непустой /etc/resolv.conf 3) Запатчить libevent, чтобы она игнорировала битый/отсутствующий /etc/resolv.conf (очень, очень плохой вариант). 4) Перенаправить операции с /etc/resolv.conf (stat, open) (cmocka или ещё какой LD_PRELOAD). Лично я предпочитаю вариант 2 (непустой /etc/resolv.conf), но не знаю, как его соорудить в хешернице. > > Это похоже на https://github.com/libevent/libevent/issues/1155 > > Ошибка вызвана тем, что /etc/resolv.conf в сборочнице пустой. > evdns_base_new выдаёт ошибку, если не удалось разобрать /etc/resolv.conf > (или он отсутствует), и lloadd не стартует. > > > Для эксплуатации openldap (nfs, и прочих сетевых служб) поведение "не > работает DNS - выругался и упал" - правильное и желательное, а для тестов в > изолированном окружении - не очень. > Загвоздка в том, что у libevent нет "ручек" (файла настроек, переменных > окружения), чтобы переключиться между режимами "нормальная эксплуатация" и > "тестирование", и разработчик(и) libevent не видят в ней необходимости, см. > https://github.com/libevent/libevent/issues/1155#issuecomment-918826471 > > В libevent 2.1.8 проверка на наличие и правильность /etc/resolv.conf > сломана, её починили позже, а именно в > https://github.com/libevent/libevent/commit/ > c3f353450e94248ee677a068ed2c4ed29d64f79e > > > Есть несколько вариантов решения: > > 1) Отключить тест lloadd в openldap > 2) Соорудить какой-то непустой /etc/resolv.conf > 3) Запатчить libevent, чтобы она игнорировала битый/отсутствующий > /etc/resolv.conf (очень, очень плохой вариант). > 4) Перенаправить операции с /etc/resolv.conf (stat, open) (cmocka или ещё > какой LD_PRELOAD). > > Лично я предпочитаю вариант 2 (непустой /etc/resolv.conf), но не знаю, как > его соорудить в хешернице. В итоге сделал, чтобы пустой /etc/resolv.conf не вызывал ошибки. Во-первых, это сохраняет текущее поведение и соблюдает принцип наименьшего удивления. Во-вторых, в libevent 2.2 такое поведение будет "из коробки", см. https://github.com/libevent/libevent/commit/ebd7e8d7930df0ef9f11a23309c59cded735e7c4 #321176 EPERM #9 sisyphus libevent.git=2.1.12-alt1 MySQL.git=8.0.30-alt1.1 openldap.git=2.6.4-alt1 avahi.git=avahi-0.8-alt2 bfgminer.git=5.5.0-alt2 bitcoin.git=24.0.1-alt1 hiredis.git=1.1.0-alt1 ccnet.git=7.1.1-alt1 memcached.git=1.6.19-alt1 srpm=fstrm-0.6.1-alt1_2.src.rpm fvwm3.git=1.0.5-alt2 gearmand.git=1.1.19.1-alt1 getstream.git=20120411-alt4 libcamera.git=0.0.5-alt1.1 libcoeurl.git=0.1.1-alt2 srpm=libevhtp-1.2.18-alt1_4.src.rpm srpm=libverto-0.3.2-alt1_1.src.rpm srpm=links2-2.29-alt1.src.rpm lldpd.git=1.0.16-alt1 lua5.1-module-event.git=lua5.1-event-0.4.6-alt1 lua5.3-module-event.git=lua5.3-event-0.4.6-alt1 lua5.4-module-event.git=lua5.4-event-0.4.6-alt1 netatalk.git=3.1.13-alt1 nfs.git=nfs-2.6.3-al t1 nsd.git=4.6.1-alt1 ocproxy.git=1.60-alt1 unbound.git=1.17.1-alt1 srpm=perl-Event-Lib-1.03-alt7.src.rpm pgbouncer.git=1.16.1-alt1 qt5-webengine.git=5.15.13-alt2 qt6-webengine.git=6.4.2-alt1 rsyslog.git=8.2304.0-alt1 scanssh.git=2.1.2-alt1 seafile.git=8.0.6-alt1 srpm=seamonkey-2.53.14-alt1.src.rpm sstp-client.git=1.0.12-alt1 suricata.git=6.0.10-alt1 taler.git=0.15.0.1-alt6 thrift.git=0.18.1-alt1 thunderbird.git=102.11.0-alt1 tmate.git=2.4.0-alt2 tmux.git=3.3a-alt2 tor.git=0.4.7.13-alt1 trickle.git=1.07-alt5 ustreamer.git=ustreamer-5.38-alt1 webdis.git=0.1.20-alt1 zabbix.git=6.0.16-alt1 chromium.git=113.0.5672.63-alt1 coturn.git=4.5.2-alt1 srpm=chromium-gost-111.0.5563.64-alt1.src.rpm transmission.git=3.00-alt2.1 ossec-hids.git=3.6.0-alt2 |