Bug 26887

Summary: mkaptbox: возможность вынести aptbox за пределы workdir
Product: Sisyphus Reporter: Vadim Gusev <kopilo4ka>
Component: hasherAssignee: Dmitry V. Levin <ldv>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: at, glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
patch none

Description Vadim Gusev 2012-02-03 15:05:24 MSK
Первая часть патча - небольшой фикс захардкоденного места песочницы.
Вторая часть - исправление ошибки http://lists.altlinux.org/pipermail/devel/2010-October/185347.html
Comment 1 Vadim Gusev 2012-02-03 15:06:47 MSK
Created attachment 5314 [details]
patch
Comment 2 Dmitry V. Levin 2012-02-03 19:35:56 MSK
(In reply to comment #0)
> Первая часть патча - небольшой фикс захардкоденного места песочницы.

Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox" в mkaptbox?

> Вторая часть - исправление ошибки
> http://lists.altlinux.org/pipermail/devel/2010-October/185347.html

Что вы называете исправлением ошибки?
Упрятывание вышеупомянутой диагностики вида
"/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала"
путем использования операции, которая не обучена диагностировать эту ошибку?
Comment 3 Vadim Gusev 2012-02-03 21:58:13 MSK
(In reply to comment #2)
> (In reply to comment #0)
> > Первая часть патча - небольшой фикс захардкоденного места песочницы.
> 
> Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox"
> в mkaptbox?

Если в файле hsh-sh-functions, в функции set_workdir() меняю
aptbox="$workdir/aptbox"
на другое, сразу все ломается. Если использовать переменную, то все хорошо.

> > Вторая часть - исправление ошибки
> > http://lists.altlinux.org/pipermail/devel/2010-October/185347.html
> 
> Что вы называете исправлением ошибки?
> Упрятывание вышеупомянутой диагностики вида
> "/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала"
> путем использования операции, которая не обучена диагностировать эту ошибку?

Вывод --showrc не маленький и хранится в переменной. Если вызывать mkaptbox из другой программы, вероятно на это не хватает буфера. Я это обошел вычислением на лету.
Comment 4 Dmitry V. Levin 2012-02-03 22:11:22 MSK
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #0)
> > > Первая часть патча - небольшой фикс захардкоденного места песочницы.
> > 
> > Скажите, пожалуйста, что, на ваш взгляд, дает эта замена "aptbox" на "$aptbox"
> > в mkaptbox?
> 
> Если в файле hsh-sh-functions, в функции set_workdir() меняю
> aptbox="$workdir/aptbox"
> на другое, сразу все ломается.

Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию set_workdir?

> > > Вторая часть - исправление ошибки
> > > http://lists.altlinux.org/pipermail/devel/2010-October/185347.html
> > 
> > Что вы называете исправлением ошибки?
> > Упрятывание вышеупомянутой диагностики вида
> > "/usr/bin/mkaptbox: line 212: printf: ошибка записи: Обрыв канала"
> > путем использования операции, которая не обучена диагностировать эту ошибку?
> 
> Вывод --showrc не маленький и хранится в переменной. Если вызывать mkaptbox из
> другой программы, вероятно на это не хватает буфера. Я это обошел вычислением
> на лету.

Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели раньше.
Comment 5 Vadim Gusev 2012-02-05 00:30:06 MSK
> Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию
> set_workdir?

Неожиданно ~/hasher было уже занято, и захотелось перенести в другое место.

> Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели
> раньше.

Тот 'sh-скрипт', что вызывает mkaptbox это питоний arepo. Ошибка появляется вообще случайно. Может не быть, а может и все 4 раза (столько там вызовов).
Comment 6 Dmitry V. Levin 2012-02-05 00:54:35 MSK
(In reply to comment #5)
> > Интересно, зачем вам понадобилось менять в файле hsh-sh-functions функцию
> > set_workdir?
> 
> Неожиданно ~/hasher было уже занято, и захотелось перенести в другое место.

~/hasher это значение по умолчанию, но ведь никто не мешает переносить workdir в другое место:

$ hsh --help |grep path-to-workdir
Usage: hsh [options] [<path-to-workdir>] <package>...
<path-to-workdir> must be valid writable directory.

Даже значение по умолчанию можно поменять (за это отвечает переменная workdir в файле ~/.hasher/config).

> > Да нет же, прочитайте еще раз разъяснение по той ссылке, которую вы привели
> > раньше.
> 
> Тот 'sh-скрипт', что вызывает mkaptbox это питоний arepo. Ошибка появляется
> вообще случайно. Может не быть, а может и все 4 раза (столько там вызовов).

Еще раз: та диагностика об ошибке, которая вас смущает, не является ошибкой.
Ошибкой в некотором смысле является тот факт, что SIGPIPE игнорируется, но в shell-скрипте это поведение исправить нельзя.  И arepo тут не при чем.  Чтобы в этом убедиться, достаточно выполнить команду
$ grep ^SigIgn: /proc/self/status