При использовании в Makefile команд true или false происходит SegFault. Вот что происходит с прилагаемым файлом: $ ls Makefile -l -rw-r--r-- 1 lav users 120 Фев 11 02:33 Makefile $ make echo "timestamp" >stamp-eggtypebuiltins.h make: *** [eggtypebuiltins.h] Segmentation fault (сделан дамп памяти) $ rpmqf true coreutils-5.93-alt2
Created attachment 1383 [details] Makefile for problem reproduce
На alt1 не падает.
Не падает: $ rpmquery coreutils make sh coreutils-5.93-alt2 make-3.81beta4-alt1 sh-3.1.7-alt1 Запустите strace, посмотрите, что у вас неисправно.
И так не воспроизводится? $ /bin/true QTDIR=/usr/lib/qt3/ MC_SID=1936 LINES=24 COLUMNS=127 SHELL=/bin/bash Segmentation fault
Ну я не знаю :( execve("/bin/true", ["/bin/true"], [/* 92 vars */]) = -1 EFAULT (Bad address) --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV (core dumped) +++ Process 2907 detached $ md5sum /bin/true 3a4776ba7a9465b4aa5a95b88f2bdd2b /bin/true
У меня воспроизводится на любой машине и в hasher. Достаточно запустить $ /bin/true
Плохо дело в вашей системе: /bin/true даже не запускается. Попробуйте ещё 2 теста: $ env -i strace -v /bin/true $ strace -v /bin/true
$ env -i strace -v /bin/true execve("/bin/true", ["/bin/true"], []) = -1 EFAULT (Bad address) --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 26750 detached $ strace -v /bin/true execve("/bin/true", ["/bin/true"], ["GTK_FILESEL_SIMPLE=0", "LESSKEY=/etc/.less", "KDE_MULTIHEAD=false", "SSH_AGENT_PID=21591", "DM_CONTROL=/var/run/xdmctl", "HOSTNAME=lav.sp.ru", "GPG_AGENT_INFO=/tmp/gpg-gv5asy/S"..., "TERM=xterm", "SHELL=/bin/bash", "AEGIS_AUTOMOUNT_POINTS=/tmp_mnt:"..., "XDM_MANAGED=/var/run/xdmctl/xdmc"..., "HISTSIZE=9999", "GTK2_RC_FILES=/usr/share/themes/"..., "TMPDIR=/tmp/.private/lav", "GTK_RC_FILES=/usr/share/themes/I"..., "GS_LIB=/home/lav/.fonts", "WINDOWID=33554439", "KDEHOME=/home/lav/.kde", "QTDIR=/usr/lib/qt3/", "QTINC=/usr/lib/qt3/include/", "TMAKEPATH=/usr/lib/tmake/linux-g"..., "KDE_FULL_SESSION=true", "XLIB_SKIP_ARGB_VISUALS=1", "KDEVARTMP=/tmp/.private/lav", "USER=lav", "HISTFILESIZE=9999", "LS_COLORS=", "SSH_AUTH_SOCK=/home/lav/.ssh/age"..., "KDEDIR=/usr", "SESSION_MANAGER=local/lav.sp.ru:"..., "USERNAME=", "COLUMNS=80", "XDG_CONFIG_DIRS=/etc/xdg:/etc/kd"..., "KONSOLE_DCOP=DCOPRef(konsole-217"..., "MINICOM= -c on -8", "PATH=/home/lav/bin/et:/home/lav/"..., "DESKTOP_SESSION=KDE", "MAIL=/var/mail/lav", "KONSOLE_DCOP_SESSION=DCOPRef(kon"..., "PWD=/home/lav", "INPUTRC=/etc/inputrc", "JAVA_HOME=/usr/lib/j2se1.4-black"..., "EDITOR=edr", "LANG=ru_RU.KOI8-R", "GTK_FILESEL_NO_ICONS=1", "HELP_BROWSER=konqueror --profile"..., "LINES=42", "SSH_ASKPASS=/usr/lib/openssh/ssh"..., "GPG_TTY=\316\305 \324\305\314\305\324\301\312\320", "HOME=/home/lav", "SHLVL=2", "GIVERTCAP=/usr/bin/givertcap", "XCURSOR_THEME=jimmac", "BASH_ENV=/home/lav/.bashrc", "LOGNAME=lav", "TMP=/tmp/.private/lav", "LESS=-MM", "G_FILENAME_ENCODING=koi8-r", "CVS_RSH=ssh", "QTLIB=/usr/lib/qt3/lib/", "MPAGE=-CKOI8-R", "XDG_DATA_DIRS=/usr/share:/var/ca"..., "LESSOPEN=|/usr/share/less/lesspi"..., "XMP_LIB_PATH=/usr/lib/xmp", "BROWSER=konqueror --profile webb"..., "KDETMP=/tmp/.private/lav", "DISPLAY=:0", "LADSPA_PATH=/usr/lib/ladspa", "GTK_FILESEL_NO_MIME=1", "G_BROKEN_FILENAMES=1", "COLORTERM=", "XAUTHORITY=/home/lav/.Xauthority"..., "_=/usr/bin/strace"]) = -1 EFAULT (Bad address) --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 11118 detached
У меня воспроизводится просто на любой машине. Берём скрипт и запускаем: #!/bin/sh HASHDIR=/srv/lav/hsh-test hsh --initroot-only $HASHDIR hsh-install $HASHDIR mc echo Run /bin/true for testing... hsh-shell $HASHDIR $ ./1.sh Components: hasher Processing pkglists... hasher done Processing srclists... hasher done Creating component releases... done Updating global release file... done Appending MD5Sum... hasher done All your base are belong to us!!! ... Preparing packages for installation... libslang-1.4.9-alt1 mc-4.6.1r-alt3 Run /bin/true for testing... [builder@lav .in]$ /bin/true Segmentation fault
Если execve("/bin/true", ["/bin/true"], []) = -1 EFAULT (Bad address) значит, виновато ядро.
Только что произвёл опыт на машине, где обновления не было и /bin/true работал. Обновил coreutils и получил SegFault. /var/log/messages: Feb 12 22:29:54 office rpm: coreutils-0:5.93-alt2 installed Feb 12 22:29:56 office rpm: coreutils-0:5.92-alt1 removed Вот ядра на машинах: # uname -a Linux lav.sp.ru 2.6.12-std26-up-alt4 #1 Tue Aug 16 04:29:11 MSD 2005 i686 GNU/Linux # uname -a Linux office.pecgalateja.ru 2.6.12-std26-smp-alt4 #1 SMP Tue Aug 16 04:28:27 MSD 2005 i686 GNU/Linux
Придётся багу закрыть, поскольку у меня весь Сизиф пересобрался на этих сборках bash и coreutils c разными ядрами, от 2.4.26-std-smp-alt13 до 2.6.14-std26-up-alt5.
На 2.6.12-std26-up-alt9 действительно не работает.
Reassigned to maintainer.
Мне кажется, или coreutils не должны быть такими, чтобы перестать работать даже на старых ядрах?
(In reply to comment #15) > Мне кажется, или coreutils не должны быть такими, чтобы перестать > работать даже на старых ядрах? Если ядро глючное, то coreutils имеют полное право оставаться такими, какими они являются.
Fixed in std26-*-2.6.12-alt10.