Bug 9946 - update flock
: update flock
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/util-linux)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-09-01 14:17 by
Modified: 2006-12-26 13:08 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-09-01 14:17:07
Проблема:
flock открывает лок-файл, делает flock(2) на этот файл, потом fork-exec, после
чего спокойно выходит, надеясь, что это осовободит лок, который он сделал на
лок-файл. Однако это не так, если не все форки закончили свою работу.

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

Предполагаемая реализация: через lock file и вызов /usr/bin/flock примерно так:
....
touch $LOCKFILE
if [ l$2 = lok ]; then
    main
else
    flock --timeout=0 $LOCKFILE $0 $1 ok
fi

Steps to Reproduce:
1.touch lock
2.flock lock bash -c "sleep 60 &"
3.flock lock bash -c "sleep 60 &"
Actual Results:  
command #3 exits only 60 seconds after command #2 was started

Expected Results:  
immediately
------- Comment #1 From 2006-09-01 15:00:15 -------
flock работает в соответствии с документацией.  Не вижу проблемы.
------- Comment #2 From 2006-09-02 19:08:36 -------
В текущей документации такая особенность flock(1) явно не указана.

Впрочем, в changelog util-linux 2.13-pre2
(http://freshmeat.net/projects/util-linux/?branch_id=11029&release_id=204182)
написано следующее:

- flock was replaced with flock-2.0.2 by H. Peter Anvin.

ftp://ftp.kernel.org/pub/software/utils/script/flock/ (там уже лежит 2.0.3).

У этого варианта flock опций побольше; в частности, есть и опция --close.
------- Comment #3 From 2006-09-02 19:12:16 -------
Можно обновить flock или собрать flock отдельным пакетом.
Обновлять весь util-linux существенно дольше.
------- Comment #4 From 2006-09-15 17:02:10 -------
2 Sergey Vlasov: поставил себе, попробовал, fully satisfied. Спасибо большое за
подсказку.
2 Дмитрий: может переоткрыть с FR, чтобы не забыли?

Ильдар
------- Comment #5 From 2006-09-15 17:05:06 -------
Согласен, пусть напоминает.
------- Comment #6 From 2006-12-08 16:34:05 -------
В git доступна сборка 2.12r-alt2.2, в которой flock(1) сбэкпорчен из версии
2.13-pre7 Прошу всех заинтересованных потестировать.

->
http://git.altlinux.org/people/php_coder/packages/?p=util-linux.git;a=commitdiff;h=74028c22428b1da7c7db48c69a14c48d852ff9d8;hp=119ef3de0d3514e3167d7b8e4e02437c45344a7e
------- Comment #7 From 2006-12-08 23:57:35 -------
Fixed in 2.12r-alt2.2