LINUX.ORG.RU
ФорумAdmin

патченный bash & set -e, странное поведение


0

1

добрый день

решил обновить BASH после «выхода в свет» недавно обнаруженной ДЫРЫ, точнее, присутствующей все время, и только недавно пристально обратившей на себя внимание

http://habrahabr.ru/company/mailru/blog/238475/ http://habrahabr.ru/post/238021/ etc...

патченный БАШ / bash - стал вести себя странно с оператором «set -e» точнее, стал выбрасывать из скрипта по непонятным причинам, не смотря на то, что оператор, на котором происходил выход из скрипта - отрабатывал без ошибок

пример, скрипт монтирования (дан только как пример, не для пристального внимания)

раньше, т.е. все время - работал без проблем, а сейчас вываливается из скрипта после команды монтирования, и т.к. у меня после монитрования идут еще другие команды - то они не выполняются

ФОРУМ «портит» и пишет в одну строку, как «НОРМАЛЬНО» добавить текст скрипта я не знаю (можете подсказать) cut --->

#/bin/sh clear; set -e HOST=xxx.xxx.xxx.xxx PTR=~/tmp/mnt_${HOST} ( mkdir -p ${PTR} sudo umount -l ${PTR} > /dev/null ) sshfs root@${HOST}:/ ${PTR} -p xxxxx -o allow_other

...<blah blah blah> другие команды

cut --->

сначало установил самый последний БАШ bash-4.3.0 patch to 4.3.30

и заметил, что перестали нормально работать slackBuild-скрипты, которые раньше нормально отрабатывали

подумал, что навый БАШ непереваривает старые оси, ладно, установил заплаты на «свой родной баш» bash-3.2.48 patch to 3.2.57

и та же самая история, slackBuild-скрипты перестали отрабатывать... доходят до команды make - и вываливаются, несмотря на то, что сама команда отрабатывает без ошибок

в конечном итоге перестали работать около 100 пользовательских баш-скриптов откатился на старый-дырявый баш

на десктопе такой откат - не существеннен, а вот на сервере...

что то случилось в мире опенсорса пока я отсутствовал? :о) какие будут комментарии?

заранее спасибо

...

slackware 12.2 kernel 2.6.32.63-smp kde-tde 3.5.12

bash source http://ftp.gnu.org/gnu/bash/

bash-3.2.48 with patches: bash32-049 - bash32-057

bash-4.3 with patches: bash43-001 - bash43-030

★★★★

Последнее исправление: sunjob (всего исправлений: 2)

В слаке sh === bash?

И первое впечатление — примерный скрипт вообще не должен работать.

bj
()
Ответ на: комментарий от sunjob

а поподробнее почему вы считает, что он не должен работать?

Если дира не примонтирована, то уже на этом месте скрипт должен заканчиваться.

bj
()

добавить текст скрипта я не знаю

какие будут комментарии?

Да, это написано мелким текстом, но, всё же написано и рядом с кнопкой «отправить»:

Внимание: прочитайте описание разметки LORCODE

А скрипт ваш, вам его и отлаживать. Есть опция ″-x″, показывающая, что именно bash запускает, есть более тяжёлое «оружие» — strace, там видно, что запускается и какой exit статус.

Сейчас ваш скрипт выглядит странно (сначала mkdir, потом umount на этот каталог) и не удобен для тестового запуска, так как требует прописать umount в sudoers. Не знаю, кто захочет его у себя потестировать.

mky ★★★★★
()

решил обновить BASH после «выхода в свет» недавно обнаруженной ДЫРЫ

Ух какой ты быстрый!

anonymous
()
cut --->

#/bin/sh 
clear; set -e 
HOST=xxx.xxx.xxx.xxx 
PTR=~/tmp/mnt_${HOST} 

( 
mkdir -p ${PTR} 
sudo umount -l ${PTR} > /dev/null 
) 

sshfs root@${HOST}:/ ${PTR} -p xxxxx -o allow_other 

...<blah blah blah> другие команды

mount | grep ${PTR}

cut --->

теперь не могу отредактировать топик, хотел внести некоторый детали...

спасибо за комменты, сейчас разбираюсь, как решится - отпишусь

новые детали, что бы не копипастить, по ссылке

http://unixforum.org/index.php?showtopic=137953&st=0#entry1268466

sunjob ★★★★
() автор топика

дополнение

да, спасибо за коммент к топику, сейчас разбираюсь, добавились новый детали, ссСылка ниже, как все решится - отпишусь

http://unixforum.org/index.php?showtopic=137953

отвечать можно и в этом топике

еще раз спасибо

если нет возможности посмотреть сообщения по ссылке выше, напишите сюда или в личку и вставлю все сообщения сюда

sunjob ★★★★
() автор топика
Ответ на: дополнение от sunjob

тема, более полно рассмотрена тут http://unixforum.org/index.php?showtopic=137953

коротко, можно сказать, что в основном, были «виновны» sshfs (так же обновленные) выкладки по решению:

- установить новый «util-linux-2.19» - пересобрать «fuse-2.8.5» с опцией разрешающей работу с «mtab» - пересобрать «sshfs-fuse-2.5»

спасибо за внимание, не наступайте на мои грабли, удачи :о)

sunjob ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.