Bug 9163 - Не работает UUCP locking
Summary: Не работает UUCP locking
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: efax (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-26 14:55 MSK by Vyacheslav Dikonov
Modified: 2017-02-16 13:32 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vyacheslav Dikonov 2006-02-26 14:55:23 MSK
При любой попытке доступа к устройству получается вот такая ошибка:

efax-0.9a: 39:41 Ошибка: can't open pre-lock file
/var/lock/serial/LCK../dev/TMP..07747: No such file or directory
efax-0.9a: 39:41 завершили - невосстановимая ошибка

При этом пользователь внесен в группу uucp, а в  /var/lock/serial (указан в
настройках efax-gtk) создается файл LCK..pts_0.
Comment 1 Pavel Vainerman 2006-02-26 22:46:56 MSK
Это очень странно, потому-что у меня работает...  
А права на сам /var/lock/serial не изменены?  
Запись разрешена группе uucp?  
 
Comment 2 Pavel Vainerman 2006-03-02 23:34:39 MSK
Ну раз комментариев больше нет, то закрываю...  
Comment 3 Vyacheslav Dikonov 2006-03-10 22:41:05 MSK
Нет комментариев, потому что я в командировке был. Кроме того, efax не работает
по-прежнему. Система - М24-минимум с dist-upgrade до последнего Сизифа и ядром
2.6.14. Все настройки из коробки. Пользователя в /etc/group прописал (пришлось
руками, так как средств настройки в Альте больше нет никаких). Права на 
/var/lock/serial уже ставил 777. Ничего не изменяется.

efax-0.9a051015-alt0.1
efax-gtk-3.0.8-alt2
Comment 4 Vyacheslav Dikonov 2006-03-10 22:43:12 MSK
Мне почему-то кажется, что он создает файл с одним именем, а ищет с другим. Как
узнать, что ему за файл нужен? Можно ли вообще это #@%$#%$#$% блокировку выключить?
Comment 5 Pavel Vainerman 2006-03-11 00:21:58 MSK
> efax-0.9a051015-alt0.1     
> efax-gtk-3.0.8-alt2     
  Это как у меня...   
     
     
(In reply to comment #4)     
> Мне почему-то кажется, что он создает файл с одним именем, а ищет с другим.     
Как     
> узнать, что ему за файл нужен? Можно ли вообще это #@%$#%$#$% блокировку     
выключить?     
  
   Я хорошо посмотрю повнимательнее на этих выходных...  
  
P.S Странная ситуация т.к у меня работает в нескольких офисах.  
  
   
     
Comment 6 Michael Shigorin 2010-10-09 17:25:33 MSD
Павел, не добирались или не ловится?
Comment 7 Pavel Vainerman 2010-10-09 21:04:36 MSD
(В ответ на комментарий №6)
> Павел, не добирались или не ловится?
 И то и то.. 
Тогда не мог поймать, а потом честно говоря забыл..
Comment 8 Vitaly Lipatov 2017-02-16 13:32:18 MSK
Для устройства /dev/ttyS0 у меня формируется /var/lock/serial/LCK..ttyS0

Схема формирования пути в efax-gtk:

Код вот такой и он не менялся 10 лет:
      if (!locale_device.empty()) {
        if (lock_file.empty()) {
          prog_config.lock_file = "/var/lock";
        }
        else {
          try {
            prog_config.lock_file = Utf8::filename_from_utf8(lock_file);
          }
          catch (Utf8::ConversionError&) {
            write_error("UTF-8 conversion error in configure_prog() - lock file\n");
            write_error("Defaulting to /var/lock\n");
            prog_config.lock_file = "/var/lock";
          }
        }
        
        prog_config.lock_file += "/LCK..";
        temp = device;
        // replace any '/' characters with '_' character
        std::replace(temp.begin(), temp.end(), '/', '_');
        prog_config.lock_file += temp;
        
        temp = "-d/dev/";
        temp += locale_device;
        prog_config.parms.push_back(temp);

        temp = "-x";
        temp += prog_config.lock_file;
        prog_config.parms.push_back(temp);
      }
    }

efax-gtk-3.2.9-alt1.1

Проверка через командную строку
$ efax -d/dev/ttyS0 -x/var/lock/serial/LCK..ttyS0
open("/var/lock/serial/LCK..ttyS0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/lock/serial/TMP..03303", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat64(3, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
rename("/var/lock/serial/TMP..03303", "/var/lock/serial/LCK..ttyS0") = 0

Перевешиваю на efax с WORKSFORME. Кому нужно, переоткрывайте с воспроизведением через efax или с доказательством, что в efax передаётся неверный путь.