Summary: | make: cannot open output sync mutex | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Ivan A. Melnikov <iv> |
Component: | glibc-source | Assignee: | placeholder <placeholder> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | glebfm, ldv, legion, mikealley23, placeholder |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Ivan A. Melnikov
2022-11-11 15:10:27 MSK
Запустил под strace'ом и вижу такое: [builder@localhost obj_glibc]$ grep /usr/src/tmp/Gmhy *strace* the_make.strace.2131235:11:00:33.693720 openat(AT_FDCWD, "/usr/src/tmp/Gmhyxom8", O_RDWR|O_CREAT|O_EXCL, 0600) = 5 the_make.strace.2131235:11:00:33.723026 unlink("/usr/src/tmp/Gmhyxom8") = 0 the_make.strace.2131236:11:00:33.702617 openat(AT_FDCWD, "/usr/src/tmp/Gmhyxom8", O_WRONLY) = 3 the_make.strace.2131236:11:00:33.702734 openat(AT_FDCWD, "/usr/src/tmp/Gmhyxom8", O_WRONLY) = 4 the_make.strace.2131236:11:00:33.722006 openat(AT_FDCWD, "/usr/src/tmp/Gmhyxom8r", O_WRONLY) = -1 ENOENT (No such file or directory) Откуда взялся это 'r' в конце? похоже на use-after-free или просто ошибка индекса буфера. Совсем забыл: $ rpm -qa make make-4.4.0-alt1.x86_64 (In reply to Alexey Gladkov from comment #2) > похоже на use-after-free или просто ошибка индекса буфера. Угу. Я пробовал запускать под valgrind'ом, ничего интересного. Сообщение отсюда: https://git.altlinux.org/gears/m/make.git?p=make.git;a=blob;f=make/src/posixos.c#l668 (In reply to Ivan A. Melnikov from comment #0) > При пересборке cross-toolchain-* обновлённым make получаем ошибку Ещё веслее: если попытаться после этого зайти в hsh-shell и запустить make, получим другую ошибку: make[2]: *** Cannot open jobserver /usr/src/tmp/GMfifo2236197r: No such file or directory. Stop. Тоже 'r', но в другом месте. Причём этот 'r' уже присутсвует в переданных процессу MFLAGS (посмотрел на /exec в strace --ff -tt -v -s 99999). Возможно связанная проблема https://savannah.gnu.org/bugs/?63333 А это случайно не та же самая проблема, которая вылезла в glibc: https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2d7ed98add14f75041499ac189696c9bd3d757fe ? -MAKEFLAGS := $(MAKEFLAGS)r +MAKEFLAGS := $(MAKEFLAGS) -r очень похоже. Тогда это надо в пакетах исправлять. Значит в этом случае проблема в glibc-source? (In reply to Dmitry V. Levin from comment #8) > А это случайно не та же самая проблема, которая вылезла в glibc: > https://sourceware.org/git/?p=glibc.git;a=commitdiff; > h=2d7ed98add14f75041499ac189696c9bd3d757fe > ? Да, оно, спасибо. (In reply to Gleb F-Malinovskiy from comment #11) > Значит в этом случае проблема в glibc-source? Да, пожалуй. glibc-6:2.35.0.6.491f2e-alt2 -> sisyphus: Sat Nov 12 2022 Gleb F-Malinovskiy <glebfm@altlinux> 6:2.35.0.6.491f2e-alt2 - Backported upstream commits: + "Makerules: fix MAKEFLAGS assignment for upcoming make-4.4" to fix build with make 4.4 (thx Sergei Trofimovich) (ALT#44277); + "Avoid undefined behaviour in ibm128 implementation of llroundl" (thx Aurelien Jarno) to fix test-ibm128-llround test regression on ppc64le. - ppc64le: xfailed test-ibm128-y1 test. The mutex merely assures that no two goroutines write/read the count at the same time; it has no control over the sequence in which those goroutines are performed. https://retrobowlgo.com/ |