Укажите отработанное время
Отработанное время (в минутах): Сохранить

Оставшееся время (в часах):

Отслеживайте корректность оставшегося времени.

Внимание! Оставшееся время равно 0.
Если задача ещё не решена, то укажите необходимое для её решения время.

Сохранить значение из поля

Сохранить 5 минут

Сохранить 15 минут

Сохранить 30 минут

Закрыть

Bug 1185 - 1С 7.7: Не снимается блокировка после закрытия документа
Summary: 1С 7.7: Не снимается блокировка после закрытия документа
Status: CLOSED FIXED
Alias: None
Product: CIFS@Etersoft
Classification: Продукты (Products)
Component: блокировки файлов и доступ (show other bugs)
Version: не указана
Hardware: PC Linux
: P1 blocker
Target Milestone: ---
Deadline: 2008-10-22
Assignee: Pavel Shilovsky
QA Contact:
URL:
Whiteboard:
Keywords:
: 1404 (view as bug list)
Depends on: 3660 3817
Blocks: 961 1217 3044 3209 4310 4348
  Show dependency treegraph
 
Reported: 2008-02-20 17:20 MSK by Alexeev Alexey
Modified: 2009-10-08 21:37 MSD (History)
17 users (show)

See Also:
Заявки RT: 8080
Связано с:
Дата напоминания:


Attachments
ошибка (52.40 KB, image/png)
2010-11-18 03:58 MSK, Alexeev Alexey
Details
Дамп wine (1023 bytes, text/plain)
2010-11-18 03:58 MSK, Maxim Stjazhkin
Details
скрин1 (10.26 KB, image/png)
2010-11-18 03:58 MSK, Денис Баранов
Details
трейс на закрытие (13.90 KB, text/plain)
2010-11-18 03:58 MSK, Денис Баранов
Details
воспроизводит багу (795 bytes, text/x-csrc)
2010-11-18 03:58 MSK, Pavel Shilovsky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexeev Alexey Живая Классика 2008-02-20 17:20:01 MSK
Created attachment 279 [details]
ошибка

Сообщение из заявки 3689:

Здраствуйте!
Два дня назад мы получили ваш продукт wine@etersoft Network 1.0.8
Mandriva для испытания, но обнаружили глюк при печати:
при открытии счёта двойным щелчком (для чтения и записи), если
напечатать и попытаться заново открыть этот счёт, то 1С выдаёт "Запись
заблокирована!". Однако если открыть для просмотра и печатать в таком
режиме, то всё нормально. Для нормальной работы наших сотрудников
требуется чтобы такой ошибки не было..

База находится на сервере win2000, подключается в fstab:
//j/1980 /mnt/j/2008 cifs
iocharset=utf8,codepage=cp1251,user=syst,password=12345,nounix,noperm 0 0 

У нас не воспроизвелась. У клиента возникает на wine 1.0.8, OC Mandriva.
Comment 1 Alexeev Alexey Живая Классика 2008-02-20 17:55:01 MSK
Похоже, что в заявке 3662 точно такая же ошибка возникает.
Comment 2 Vitaly Lipatov Живая Классика 2008-02-20 20:55:54 MSK
У нас тоже монтировали с nounix ?
А версии linux-cifs сравнивали?
Comment 3 Константин Кондратюк Живая Классика 2008-03-18 20:19:59 MSK
*** Bug 1404 has been marked as a duplicate of this bug. ***
Comment 4 Глеб Кордюков Живая Классика 2008-03-24 17:04:39 MSK
Данная ошибка возникает в заявке №5702.
Comment 5 Leonid Shadevsky Живая Классика 2008-05-26 18:48:09 MSD
Сообщение из заявки №6602:

по ходу, эта проблема связана именно с тем, что документ печатают, так как
если его просто открыть, посмотреть и закрыть, то никаких проблем не
возникает
Comment 6 Глеб Кордюков Живая Классика 2008-05-27 14:07:38 MSD
OpenSuse 10.3
1С 7.7
После печати из 1С при открытом документе (необязательно этого документа)
и его закрытии, документ блокируется, и открыть его можно только
для просмотра. Пользователь блокирует документы сам от себя и
приходить для исправлениядокумента завершать работу 1С и
запускать программу снова.
Данная проблема только при базе в формате DBF на ресурсе CIFS.
Comment 7 Maxim Stjazhkin 2008-05-29 15:27:00 MSD
ASPLinux 12, CentOS 5.1
1C 7.7
WINE@Etersoft Network 1.0.8 (пробовали и 1.0.9)

Проблема с блокировкой документа, после вывода на печать осталась.
Частично исправлено следующими настройками smb.conf

[global]
        ...
        ...
        kernel oplocks = yes

[sharedbase]
        blocking locks = yes
        locking = no
        oplocks = yes
        level2 oplocks = yes
        posix locking = yes
        strict locking = yes
        share modes = yes
        comment = sharedbase
        path = /var/local/sharedbase
        writeable = yes
;       browseable = yes
        guest ok = yes

Но возникла проблема !!! При многопользовательской работе разрушается индексный файл
регистра остаков RA113.CDX (два, три раза в день). Для решения -
перезагрузка сервера, переиндексация базы. Раздражает пользователей,
отнимает много времени.
Comment 8 Vitaly Lipatov Живая Классика 2008-07-02 18:13:18 MSD
Вы отключили (locking = on) исполнение блокировок сервером напрочь.
В этом режиме индексы будут разрушаться и сохранность данных непредсказуема.
Comment 9 Глеб Кордюков Живая Классика 2008-08-25 11:19:12 MSD
Проблема когда примерно будет решена?
Comment 10 Глеб Кордюков Живая Классика 2008-09-09 14:20:33 MSD
Проблема повторилась: http://rt.etersoft.ru/Ticket/Display.html?id=8080
Comment 11 Глеб Кордюков Живая Классика 2008-10-14 11:00:52 MSD
Хотелось бы узнать о более точных сроках решения, потому что возникают недовольства со стороны клиентов.
Comment 12 Vitaly Lipatov Живая Классика 2008-10-14 12:22:17 MSD
1. Денис, нужно как-то воспроизвести эту багу, если она есть.
Comment 13 Денис Баранов Живая Классика 2008-10-14 21:02:27 MSD
Не удалось воспроизвести проблему, может она исправлена в новой версии CIFS?
Тестировал: 

kernel-source-linux-cifs-2.6.23-1.50-alt5
kernel-source-linux-cifs-2.6.24-1.52-alt4
kernel-source-linux-cifs-2.6.25-1.52-alt6
linux-cifs-3.1-alt4
kernel-source-linux-cifs-legacy-1.50c-alt1

Монтировал с noperm.
Comment 14 Константин Кондратюк Живая Классика 2008-10-15 13:42:43 MSD
(In reply to comment #13)
> Не удалось воспроизвести проблему, может
> она исправлена в новой версии CIFS?

Глеб, а что с аналогичными пакетами у клиентов?
Comment 15 Константин Кондратюк Живая Классика 2008-10-29 14:05:29 MSK
Ответа клиента нет уже неделю после запроса.
Считаем исправленной, иначе потом переоткроем.
Comment 16 Vitaliy 2008-10-29 14:38:03 MSK
может он просто перестал пользоваться? посмотрите сколько времени то прошло... Мне кажется это долго... если надо работать а не ждать когда может быть исправят то что уже сейчас нужно.
Comment 17 Константин Кондратюк Живая Классика 2008-10-29 15:26:29 MSK
Сейчас проблема в том, что мы всё исправили и больше не можем воспроизвести ошибку у себя :)
Опровержения принимаются тут. Пожалуйста.
Comment 18 Денис Баранов Живая Классика 2008-10-29 17:04:05 MSK
Значит закрываем, потом если что переоткроем.
Comment 19 Глеб Кордюков Живая Классика 2008-11-02 16:36:30 MSK
У клиента (http://rt.etersoft.ru/Ticket/Display.html?id=6643)
На версии linux-cifs 3.6.1-alt.M40.1, 3.4.1-alt0.M40.1 - проблема воспроизводится.
Suse 10.3
1c77
Comment 20 Глеб Кордюков Живая Классика 2008-11-03 13:10:41 MSK
Надо бы перепроверить на новой сборке.
Comment 21 Глеб Кордюков Живая Классика 2008-11-05 16:06:54 MSK
Еще раз переустановил etercifs,
открываю документ (реализация) печатаю накладную,
закрываю и при попытке снова открыть - запись заблокирована.
В тестовой базе я один.

Рабочая станция:
ALT 4.0 , все что приходит по заказу сборки 1.0.9,
1C:Предприятие 7.7 для SQL (7.70.027) конфиг. Резон:Мясокомбинат 3.1

Сервер:
1) SUSE 10.3 samba 3.0.26a-3
или
2) Windows XP
Comment 22 Денис Баранов Живая Классика 2008-11-05 20:12:39 MSK
Не могу воспоризвести, может у них ssh попросить!?
Comment 23 Денис Баранов Живая Классика 2008-11-11 14:45:57 MSK
Появился доступ по ssh, описание в заявке.
Comment 24 Vitaly Lipatov Живая Классика 2008-11-16 13:06:48 MSK
(In reply to comment #7)
> ASPLinux 12, CentOS 5.1
> 1C 7.7
> WINE@Etersoft Network 1.0.8 (пробовали и 1.0.9)
> 
> Проблема с блокировкой документа, после
> вывода на печать осталась.
> Частично исправлено следующими
> настройками smb.conf
Максим, пожалуйста откликнитесь о проверке на релизе WINE@Etersoft 1.0.9 + etercifs >= 3.7
Также уберите все параметры из конфига smb.conf, содержащие слово lock - для работы 1С вполне подходят параметры по умолчанию.
При установке других параметров может происходить всё, что угодно, это никто не тестировал. К тому же похоже, что вы просто поставили все параметры, которые нашли в документации.
Comment 25 Vitaly Lipatov Живая Классика 2008-11-16 13:08:20 MSK
Ко всем участникам баги - просьба перенести обсуждение в соответствующие
заявки. Заявки передать kipruss.
Я предполагаю, что проблема лежит в области неправильной настройки SAMBA.

Наша документация по настройке выложена здесь:
http://www.etersoft.ru/content/view/56/156/#cifs
Comment 26 Денис Баранов Живая Классика 2008-11-18 02:56:47 MSK
В общем багу считаю закрытой.
Тестируем на новых сборках с корректными настройками SAMBA, если возникают проблемы пишем заявку в саппорт.
Comment 27 Maxim Stjazhkin 2008-11-28 12:55:50 MSK
(In reply to comment #24)
> Максим, пожалуйста откликнитесь о проверке
> на релизе WINE@Etersoft 1.0.9 + etercifs >= 3.7
> Также уберите все параметры из конфига
> smb.conf, содержащие слово lock - для работы 1С
> вполне подходят параметры по умолчанию.
> При установке других параметров может
> происходить всё, что угодно, это никто не
> тестировал. К тому же похоже, что вы просто
> поставили все параметры, которые нашли в
> документации.

Сервер терминалов на базе CentOS 5.2
2.6.18-92.1.18.el5PAE #1 SMP
wine.i586                                1:1.0.9-eter36centos
wine-etersoft-sql.i586                   1.0.9-eter14centos
libwine.i586                             1:1.0.9-eter36centos
dkms-etercifs.noarch                     3.8.0-eter1centos
etercifs.noarch                          3.8.0-eter7centos

"1С: Предприятие 7.7 7.70.027"

smb.conf:
[sharewine]
path = /var/localdatanet
public = yes
force user = maxim
force group = wine
writable = yes
guest ok = yes

# lsmod | grep eter
etercifs              224244  1

Для всех клиентов терминала + на отдельной Linux машине:
mount -t cifs //power/sharewine /mnt/powershare/ -o noperm,user=,pass=
ln -s /mnt/powershare ~/.wine/dosdevices/w:

База, соответственно цепляется с w:

Очень интересная ситуация:
Запуск ОДНОГО клиента Linux + один клиент с Windows машины - все ок.
Запуск ДВУХ клиентов Linux с отключенным или подключенным клиентом Windows - один Linux-клиент - ок, на втором "Программа была завершена аварийно. Для восстановления индексных файлов запустите прграмму в монопольном режиме".

Comment 28 Maxim Stjazhkin 2008-12-01 11:34:36 MSK
Откатывался на версию CIFS - linux-cifs-3.4.1-eter1centos.noarch.rpm
Получилось запустить одновременно два linux клиента на расшаренной базе.
Но блокирование документа, после печати, осталось 8-[
Перепробовал все версии пакетов etercifs, проблема точно воспроизводится как в моем комменте #27.
Comment 29 Andrey Vusik Живая Классика 2008-12-01 12:27:42 MSK
(In reply to comment #28)
> Откатывался на версию CIFS -
> linux-cifs-3.4.1-eter1centos.noarch.rpm
> Получилось запустить одновременно два linux
> клиента на расшаренной базе.
> Но блокирование документа, после печати,
> осталось 8-[
> Перепробовал все версии пакетов etercifs,
> проблема точно воспроизводится как в моем
> комменте #27.
> 

У нас в документации строчка на монтирование выглядит так:
# mount -t cifs //<сервер>/<ресурс> <локальный каталог> \ -o user=<workgroup/user>,pass=<passwd>,file_mode=0660,dir_mode=02770,uid=<user>,gid=<group>,iocharset=utf8

Попробуйте с ней (именно с такими правами)
http://www.etersoft.ru/content/view/56/156/#x26
Comment 30 Maxim Stjazhkin 2008-12-01 13:39:08 MSK
(In reply to comment #29)
> (In reply to comment #28)
> > Откатывался на версию CIFS -
> > linux-cifs-3.4.1-eter1centos.noarch.rpm
> > Получилось запустить одновременно два linux
> > клиента на расшаренной базе.
> > Но блокирование документа, после печати,
> > осталось 8-[
> > Перепробовал все версии пакетов etercifs,
> > проблема точно воспроизводится как в моем
> > комменте #27.
> > 
> 
> У нас в документации строчка на
> монтирование выглядит так:
> # mount -t cifs //<сервер>/<ресурс> <локальный
> каталог> \ -o
> user=<workgroup/user>,pass=<passwd>,file_mode=0660,dir_mode=02770,uid=<user>,gid=<group>,iocharset=utf8
> 
> Попробуйте с ней (именно с такими правами)
> http://www.etersoft.ru/content/view/56/156/#x26
> 

Попробовал и с etercifs-3.8.0 и с linux-cifs-3.4.1:

mount -t cifs //power/sharewine /mnt/powershare -o user=maxim,pass=,file_mode=0660,dir_mode=02770,uid=500,gid=104,iocharset=utf8

Ничего не изменилось.
Comment 31 Maxim Stjazhkin 2008-12-01 14:55:43 MSK
Да, еще одна замечательная особенность.
При ошибке из коммента #26
беру на втором linux-клиенте запускаю 1С в монопольном режиме, переиндексирую базы, остаюсь в монопольном режиме и без проблем запускаю 1C на первом linux-клиенте 8-0

С виндового клиента зайти на расшаренную базу уже не могу, требует входа в монопольном режиме и переиндексации даных. Зайти с него в монопольном режиме не удалось - 1С без сообщений вываливается.
Comment 32 Maxim Stjazhkin 2008-12-01 14:58:52 MSK
(In reply to comment #31)
> Да, еще одна замечательная особенность.
> При ошибке из коммента #26
> беру на втором linux-клиенте запускаю 1С в
> монопольном режиме, переиндексирую базы,
> остаюсь в монопольном режиме и без проблем
> запускаю 1C на первом linux-клиенте 8-0
> 
> С виндового клиента зайти на расшаренную
> базу уже не могу, требует входа в
> монопольном режиме и переиндексации даных.
> Зайти с него в монопольном режиме не
> удалось - 1С без сообщений вываливается.
> 

Ошибочка, ошибка с моего коммента #27
Comment 33 Andrey Vusik Живая Классика 2008-12-01 15:06:25 MSK
Максим, посмотрите, пожалуйста, что происходит в "Сервис-Активные пользователи" при подключении следующих в различных вариациях.
Comment 34 Maxim Stjazhkin 2008-12-01 16:38:06 MSK
Created attachment 937 [details]
Дамп wine
Comment 35 Maxim Stjazhkin 2008-12-01 16:39:36 MSK
(In reply to comment #34)
> Created an attachment (id=937) [details]
> Дамп wine
> 

Для всех вариаций:

Пользователь maxim (группы wine, wineadmin) на сервере терминалов
Пользователь user01 (группа wine) на сервере терминалов
Пользователь на Windows машине

Мои сокращения сообщений ошибок:
Ошибка1: "Программа была завершена аварийно. Для восстановления индексных файлов запустите прграмму в монопольном режиме".

Ошибка2: «Ошибка блокировки данных. Возможно данные используются другой задачей»

Ошибка3: После печати документа "Запись заблокирована!"

Конфиг samba на сервере:
/etc/smb.conf

smb.conf:
[global]
...
kernel oplocks = no
use sendfile = yes

[sharewine]
path = /var/local/datanet
public = yes
force user = maxim
force group = wine
writable = yes
guest ok = yes

Далее для каждого пользователя сервера терминалов:
ln -s /mnt/powershare ~/.wine/dosdevices/w:

И установлена "1С: Предприятие 7.7 7.70.027"

Вариация 1:


etercifs-3.8.0


mount -t cifs //power/sharewine /mnt/powershare -o user=maxim,pass=,file_mode=0660,dir_mode=02770,uid=500,gid=104,iocharset=utf8

maxim — старт ок, Windows — старт ок, user01 — Ошибка1
maxim — старт ок, user01 — Ошибка1, Windows — старт ок

"Сервис - Активные пользователи" — честно отображает двух пользователей.

Вариация 2:

etercifs-3.8.0

mount -t cifs //power/sharewine /mnt/powershare -o user=maxim,pass=,file_mode=0660,dir_mode=02770,uid=500,gid=104,iocharset=utf8

maxim — в монопольном режиме ок, user01 — в обычном режиме, Ошибка2, Windows — в обычном режиме тоже Ошибка2
"Сервис - Активные пользователи" — честно отображает одного пользователя.

maxim —  в обычном режиме, ок;  user01 — в монопольном режиме, ок; Windows — в обычном режиме Ошибка2
А вот "Сервис - Активные пользователи" на maxim пуст, а на  user01 — честно отображает одного пользователя. К тому же, при обновлении окна "Сервис - Активные пользователи" на maxim, на user01 повисла 1С и wine вывалился в winedbg.
 
Закрыл 1С, вышел из терминальной сессии, под рутом сделал skill -u user01.
Залогинился в терминальную сессию под user01, попытка запустить 1С в любом режиме - «Ошибка при запуске журнала регистрации».
1С под maxim запущена, "Сервис - Активные пользователи" НЕ отображает ниодного пользователя, Windows — вылетает при попытке подключения  без всяких сообщений.

Закрыл все копии 1С, перемонтировал ресурс:
maxim — старт ок, Windows — старт ок, user01 — Ошибка1
"Сервис - Активные пользователи" — честно отображает двух пользователей.

Закинул вывод  winedbg в аттач wine-dump.txt.

Варьировать еще? :-)
Comment 36 Maxim Stjazhkin 2008-12-01 16:54:51 MSK
Примечание:
Во Время "Вариация 1:" когда у user01 на экране "Программа была завершена
аварийно. Для восстановления индексных
файлов запустите прграмму в монопольном
режиме".
и не нажимать кнопку "ок", то "Сервис - Активные пользователи" — честно
отображает троих пользователей.
Comment 37 Andrey Vusik Живая Классика 2008-12-01 16:58:32 MSK
Всё достаточно! :-)
Будем смотреть теперь у себя.
Comment 38 Денис Баранов Живая Классика 2008-12-01 21:08:49 MSK
На данный момент проблема, заявленная в данной баге исчерпала себя (блокировка документа).
Эту ошибку закрываю.

С вашей проблемой вы можете обратиться в саппорт.
Comment 39 Konstantin Baev Живая Классика 2008-12-02 17:30:18 MSK
> С вашей проблемой вы можете обратиться в
> саппорт.
> 
заведена бага http://bugs.etersoft.ru/show_bug.cgi?id=3053
Comment 40 Sergey Afonkin 2009-02-20 16:52:05 MSK
(In reply to comment #0)
> при открытии счёта двойным щелчком (для
> чтения и записи), если
> напечатать и попытаться заново открыть
> этот счёт, то 1С выдаёт "Запись
> заблокирована!". Однако если открыть для
> просмотра и печатать в таком
> режиме, то всё нормально.

Возникла аналогичная ошибка на Alt Linux Desktop 4.0. Версии установленных пакетов:

[root@localhost alex]# rpm -qa | grep wine
libwine-1.0.9-alt39.M40.40
wine-1.0.9-alt39.M40.40
wine-etersoft-network-1.0.9-alt16.M40.17

[root@localhost alex]# rpm -qa | grep cifs
etercifs-4.1.1-alt0.M40.1


Вывод winediag:

Программа проверки WINE@Etersoft. 06.11.08 © 2005, 2006, 2007, 2008 Etersoft

Проверяем libwine.so.1... ИМЕЕТСЯ. (версия 20080705)
Проверяем /usr/bin/winelog ... пакет WINE@Etersoft: УСТАНОВЛЕН
Проверяем libwine-etersoft.so.1... NETWORK ИМЕЕТСЯ (сборка 0x211)
-------
WINE@Etersoft 1.0 Network (1.0.9), registration number is XXXX-XXXX.
Legality check is available on the page http://sales.etersoft.ru/product/.
-------
Проверяем libcups.so.2... ИМЕЕТСЯ.
Проверяем libfreetype.so.6...ИМЕЕТСЯ (версия 2.3.4)
Установлено соединение с Икс-сервером на :0.0
Расширение GLX имеется (3D поддерживается)
Используемая модель потоков (thread): pthread (NPTL)
Ядро: Linux, версия: 2.6.18-wks-smp-alt2
Максимальное число файловых дескрипторов в системе: 104854 (3072 используется)
Максимально доступное количество открытых файлов для одного процесса: 5000
Число тиков таймера в секунду (CLK_TCK): 100
Нет ограничений виртуальной памяти
Check for futimes: OK
Количество бит для смещения в файле: 64
Установка блокировки на смещение более 512Мб прошла успешно
Установка блокировки на смещение более 4Гб прошла успешно
Текущая локаль: ru_RU.UTF-8


Информация о модуле etercifs:

[root@localhost ~]# lsmod | grep cifs
etercifs 249716 1
nls_base 8448 10 nls_cp866,vfat,fat,isofs,udf,nls_cp1251,smbfs,nls_koi8_r,nls_utf8,etercifs

[root@localhost ~]# /sbin/modinfo etercifs
filename: /lib/modules/2.6.18-wks-smp-alt2/kernel/fs/cifs/etercifs.ko
version: 1.51
description: VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows
license: GPL
author: Steve French <sfrench@us.ibm.com>
srcversion: 03DA04FA9AFB8DC48596B6B
depends: nls_base
vermagic: 2.6.18-wks-smp-alt2 SMP mod_unload 586 REGPARM gcc-4.1
parm: CIFSMaxBufSize:Network buffer size (not including header). Default: 16384 Range: 8192 to 130048 (int)
parm: cifs_min_rcv:Network buffers in pool. Default: 4 Range: 1 to 64 (int)
parm: cifs_min_small:Small network buffers in pool. Default: 30 Range: 2 to 256 (int)
parm: cifs_max_pending:Simultaneous requests to server. Default: 50 Range: 2 to 256 (int)
Comment 41 Денис Баранов Живая Классика 2009-02-21 17:21:07 MSK
Открываю для повторной проверки на новой сборке etercifs
Comment 42 Денис Баранов Живая Классика 2009-02-24 16:54:49 MSK
Протестировал, ошибку не удалось воспроизвести, монтировал:
mount -t cifs //server/share /mnt/cifs -o uid=user,gid=user,file_mode=0660,dir_mode=0770,nounix

Etercifs:
etercifs-4.1.1-alt1
Wine:
wine-etersoft-sql-1.0.9-alt18
wine-1.0.9-alt42
libwine-1.0.9-alt42
Comment 43 Sergey Afonkin 2009-02-25 11:00:46 MSK
(In reply to comment #42)
> Протестировал, ошибку не удалось
> воспроизвести, монтировал:
> mount -t cifs //server/share /mnt/cifs -o
> uid=user,gid=user,file_mode=0660,dir_mode=0770,nounix


Монтирование делал согласно документации в двух вариантах:

mount -t cifs //server/base /mnt/base -o user=user, pass=pass, file_mode=0660, dir_mode=2770, uid=user, gid=user, iocharset=utf8, forcemand

mount -t cifs //server/base /mnt/base -o user=user, pass=, forcemand, noperm, iocharset=utf8


Попробую с параметрами монтирования как в посте #42, по результатам отпишусь.
Comment 44 Денис Баранов Живая Классика 2009-03-04 19:43:56 MSK
(In reply to comment #43)
> Попробую с параметрами монтирования как в
> посте #42, по результатам отпишусь.
> 
Ну как результаты?
Comment 45 Sergey Afonkin 2009-03-05 06:40:49 MSK
(In reply to comment #44)
> Ну как результаты?

С параметрами монтирования из поста #42 блокировка записи при печати документа и повторном его открытии осталась.

Сейчас проблема не актуальна так как перевели всех пользователей в терминальный режим работы.

При файловом режиме был использован следующий конфиг Samba:

[global]
   workgroup = ALTDOMAIN
   netbios name = 1CServer
   server string = File Server on %h
   interfaces = 192.168.44.2/24
   bind interfaces only = yes
   preferred master = yes
   domain master = no
   security = share
   encrypt passwords = true
   template shell = /bin/false
   hosts allow = 192.168.1. 192.168.2. 192.168.44.
   hosts deny = all
   null passwords = yes
   guest account = smb
   display charset = utf-8
   dos charset = 866
   unix charset = utf-8
   use sendfile = yes
   kernel oplocks = no
   load printers = no
   #log level = 0
   #log file = /var/log/samba/%I.log
   #max log size = 500
   #socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192

[base]
   comment = 1C base
   path = /var/db/1c
   force group = wine
   read only = no
   create mask = 0660
   directory mask = 0770
   browseable = yes
   guest ok = yes
   guest only = yes
Comment 46 Vitaliy 2009-03-05 07:54:16 MSK
на сколько я помню, через smb/cifs оно ни когда нормально не работало. Для себя в свое время выход найден был в NFS... и то оно периодически подглюкивало...

ИМХО сейчас, если не на поиграться, а реально работать, то терминал... И тут думаю не важно, на win или lin терминальном сервере... Но я с lin. терминалом конкретно это не заводил. Но думаю не должно быть проблем, т.к. просто без терминала, локально, работает отлично...
Comment 47 Vitaly Lipatov Живая Классика 2009-03-05 09:38:20 MSK
Ну что, год не можем воспроизвести простую проблему и сформулировать хотя бы, от чего она точно не зависит?
Я предполагаю, что дело в конкретной SAMBA. Уже давно можно зайти к клиенту, или точно воспроизвести его окружение.
Comment 48 Денис Баранов Живая Классика 2009-03-11 19:36:18 MSK
Проверил у клиента, воспроизводится.

rpm -qa | grep cifs
etercifs-4.1.1-alt0.M41.1
[alex@alex BIN]$ rpm -qa | grep samba
samba-common-3.0.30-alt3
samba-3.0.30-alt3
samba-client-control-1.2-alt1
samba-client-3.0.30-alt3
samba-client-cups-3.0.30-alt3
[alex@alex BIN]$ rpm -qa | grep wine
libwine-1.0.9-alt41.M41.42
docs-wine_intro-0.1.1-alt0.M41.1
wine-etersoft-network-1.0.9-alt17.M41.18
wine-1.0.9-alt41.M41.42
[alex@alex BIN]$ uname -a
Linux alex.exprof 2.6.25-std-def-alt8.M41.4 #1 SMP Sat Dec 6 14:42:12 MSK 2008 i686 GNU/Linux
Comment 49 Денис Баранов Живая Классика 2009-03-11 19:39:32 MSK
Выяснилось почему мы не могли воспроизвести:
1) Воспроизводили всегда печатая документ в файл
2) Проблема оказывается проявляется только при печати именно на принтер.
Comment 50 Виталий Перов Живая Классика 2009-03-13 13:13:16 MSK
Воспроизвёл. Буду решать.
Comment 51 Виталий Перов Живая Классика 2009-03-13 14:04:30 MSK
Отличие состоит в том, что при печати на принтер печать осуществляется с помощью команды lpr.
Работает это примерно следующим образом:
1) создаётся pipe
2) создаётся новый поток, в котором запускается комманда lpr
3) ввод/вывод нового потока через pipe связывается с файловым дескриптором.

Таким образом получаем файловый дескриптор fd. Всё, что пишем в файл отправляется через pipe запущенной команде lpr.

Проверил. Сама комманда lpr тут не причём. Если её заменить на 'cat > /dev/null', то ничего не изменится, файл по-прежнему блокируется.
Comment 52 Виталий Перов Живая Классика 2009-03-13 15:47:30 MSK
Возможно проблема в функции fork(). Она создаёт создаёт процесс - копию текущего. По идее дескрипторы файлов тоже должны наследоваться.

Но по документации: "Блокировки файлов и сигналы, ожидающие обработки, не наследуются"

И вообще, на первый взгляд всё должно работать. При вызове exec вся область данных процесса перезаписывается
Comment 53 Виталий Перов Живая Классика 2009-03-13 16:54:21 MSK
Заметил одну особенность:

В потоке порождённом fork() убрал вызов exec, и добавил бесконечный цикл, постоянно считывающий сообщения из входного буфера.

В итоге:
1) если порождаемый поток не завершается, то баги нет
2) если порождаемый поток завершается, то бага есть
3) если в порождаемом потоке вызывать exec(), то бага тоже есть.

Получается проблема возникает при закрытии потока.
Возможно проблема возникает ещё при замещении текущего процесса другой программой (вызов exec). Но в этом случае трудно определить реальную причину:
1) по документации для exec "Все файлы, открытые вызывающей программой, остаются открытыми"
2) Бага может возникать когда завершается программа, вызванная exec, и убивает поток.
Точно определить появляется ли бага ПРИ вызове exec или ПОСЛЕ его завершения не получается

Comment 54 Виталий Перов Живая Классика 2009-03-13 18:21:48 MSK
нашёл в документации: "Завершение процесса,
или выполнение новой программы в процессе,
уничтожает все потоки в процессе. Если
описатели, связанные с этими потоками
сохраняются в других процессах, их
файловые позиции станут неопределенными.
Чтобы предотвратить это, Вы должны
очистить потоки перед их разрушением. "

попробовал закрывать все файлы преред
вызовом exec:
for (i = 3; i < 255; i++)
    if (i!=fds[0] && i!=fds[1])
        close(i);

в таком варианте ничего не происходит, и
блокировка остаётся.
Если пробегать не 256 файлов, а больше, то
печать + 1с повисает.
Comment 55 Виталий Перов Живая Классика 2009-03-13 19:46:53 MSK
Пробовал использовать функцию popen:

fil = popen(psCmdP,"we");
fd = fileno(fil);

,которая заменяет pipe() и fork().
Но файл по-прежнему блокируется
Comment 56 Виталий Перов Живая Классика 2009-03-14 15:01:02 MSK
Написал тестовую программу. Проблему пока воспроизвести не удалось:
1)Для потока, создающего блокировку, файл всегда разблокирован
2) ни после клонирования потока, ни после завершения клонированого потока, для исходного потока файл всегда разблокирован.
Comment 57 Виталий Перов Живая Классика 2009-03-14 17:03:13 MSK
написал ещё один тест:
1) устанавливается блокировка на файл (на запись)
2) с помощью fork порождается новый процесс
3) и в потомке, и в родителе проверяется блокировка на файл

Результаты:

*Запуск на ext3:
Родитель - блокировка отсутствует
Потомок - стоит блокировка на запись

*Запуск на cifs:
Родитель - блокировка отсутствует
Потомок - стоит блокировка на ЧТЕНИЕ
Comment 58 Виталий Перов Живая Классика 2009-03-14 18:22:16 MSK
Написал ещё один тест. Выяснил:
1) (как и ожидалось) Если файл закрыть в одном из потоков, то во втором потоке он остаётся закрытым.
2) Если файл закрыть в родителе, то для порождённого процесса блокировка на файл снимается.
3) Результаты не зависят от файловой системы. (Различите только в том, что для cifs блокировка считывается как блокировка на чтение вместо блокировки на запись)
Comment 59 Виталий Перов Живая Классика 2009-03-16 12:16:29 MSK
(In reply to comment #57)

> *Запуск на cifs:
> Родитель - блокировка отсутствует
> Потомок - стоит блокировка на ЧТЕНИЕ
> 

Завёл новую багу #3660

Comment 60 Виталий Перов Живая Классика 2009-03-16 16:18:25 MSK
В wine немного другой механизм действия блокировки.

Пишу тест на WINAPI функции блокировки.
Встретился с некоторыми особенностями:
* Функции LockFile() и UnlockFile позволяют ставить блокировку на определённый регион файла, но тип блокировка (чтение или запись) задавать нельзя
* Пока не знаю как проверить стоил ли на файле блокировка. Пробовал просто писать в файл - в результате оба процесса (и родитель и потомок) пишут в файл без проблем.
Comment 61 Виталий Перов Живая Классика 2009-03-16 17:31:50 MSK
с тестом на блокировку пока ничего не получается.

Зато появилась идея вместо fork() использовать WINAPI функцию CreateProcess.
Если я правильно понимаю, потоки ввода-вывода (stdin и stdout) ей можно задавать принудительно.
Comment 62 Виталий Перов Живая Классика 2009-03-16 19:03:16 MSK
1)частично реализовал печать через CreateProcess().
Реализация немного не корректная, вместо линуксового дескриптора файла функция CreatePipe возвращает винапишный HANDLE.
Файл не блокируется!

2) Далее пришлось сильно изменить работу с файлами: везде заменять write на WriteFile, сlose на Closefile, open на CreateFile.

В итоге 1с зависает. Но не сразу, успевает ещё отправить в pipe начало документа.

Comment 63 Виталий Перов Живая Классика 2009-03-16 19:57:43 MSK
Разобрался с проблемой. CreateProcess() возвращает FALSE. Процесс не запускается.
Причина в том, что этой функцией нельзя запустить линуксовые комманды
Comment 64 Виталий Перов Живая Классика 2009-03-17 18:16:56 MSK
(In reply to comment #60)
> * Пока не знаю как проверить стоил ли на
> файле блокировка. Пробовал просто писать в
> файл - в результате оба процесса (и родитель
> и потомок) пишут в файл без проблем.
> 
Разобрался. Блокировка можно проверить только выставлением блокировки. Если блокировку нельзя выставить, значит она уже есть, если можно, то её нет.

Переписал тест. Результаты:
1) Блокировка видна как в родительском процессе, так и в порождённом
2) После снятия блокировки в родительском процессе, она снимается и для порождённого
3) Если порождённый процесс завершается при снятой блокировке, то она так и остаётся снятой.

Результаты идентичны для ext3 и для cifs
Comment 65 Виталий Перов Живая Классика 2009-03-17 19:25:19 MSK
Посмотрел трейс при запуске 1с на функции LockFile и Unlock file.

Интересующая нас блокировка ставится при открытии документа (ещё до формирования версии для печати):
fixme:file:LockFile 0x128 03fffff35 000000001

Блокировка снимается сразу после закрытия документа:
fixme:file:UnlockFile handle = 0x128 offs = 0x3fffff35, count = 0x1

Во время печати функции (раз)блокироки не вызываются с дескриптором 0x128

Далее, при повторном открытии, снова ставится блокировка:
fixme:file:LockFile 0x128 03fffff35 000000001
При этом 1с выдаёт ошибку.
Comment 66 Виталий Перов Живая Классика 2009-03-17 19:58:34 MSK
* Дескриптор 0х128 соответствует файлу H:\1C77\DemoDB\1SJOURN.CDX

* Пробовал печатать в файл (при этом бага не проявляется) - трейсы в консоле ничем не отличаются от печати на принтер.
Comment 67 Виталий Перов Живая Классика 2009-03-17 21:14:37 MSK
в функции fd_destroy есть специальный case для cifs.
Пробовал закомментировать - ничего не изменилось
Comment 68 Vitaly Lipatov Живая Классика 2009-03-19 16:32:49 MSK
(In reply to comment #66)
> * Дескриптор 0х128 соответствует файлу
> H:\1C77\DemoDB\1SJOURN.CDX
> 
> * Пробовал печатать в файл (при этом бага не
> проявляется) - трейсы в консоле ничем не
> отличаются от печати на принтер.
> 
То есть так же при печати в файле не вызывается
> fixme:file:UnlockFile handle = 0x128 offs = 0x3fffff35, count = 0x1
?
Возможно происходят какие-то ещё вызовы других файловых функций с этим хэндлом?

О, вот что важно!
Блокировка происходит на сервере, а не просто в wineserver или локально, поскольку с другой машины (с винды) документ также не открыть.
Comment 69 Vitaly Lipatov Живая Классика 2009-03-20 17:19:49 MSK
Насколько я понимаю, надо включить логи на клиенте/сервере и посмотреть, что происходит в момент завершения порождённого процесса.
Похоже, что по какой-то причине не воспринимается UnLock, выполняемый при закрытии документа. Возможно etercifs смущает сервер изменением пидов (серверу же передаётся идентификатор клиента, в которых входит pid?)

Чем более будет предложений и гипотез, тем лучше. Проблема очень важная, практически последняя по etercifs на текущий момент.
Comment 70 atol 2009-03-20 19:49:24 MSK
> 
> Чем более будет предложений и гипотез, тем
> лучше. Проблема очень важная, практически
> последняя по etercifs на текущий момент.

Могу сказать, что испытываем потребность в приобретении wine@etersoft но приобратать счас такой продукт сами помаете невозможно. Очень ждем исправления.

Comment 71 Vitaliy 2009-03-21 02:50:57 MSK
что значит "практически последняя"?
озвучьте весь список, пожалуйста. даже редко встречающиеся проблемы, т.к. у меня плохая карма и я полюбому наткнусь... :)
Comment 72 Pavel Shilovsky Живая Классика 2009-03-24 14:46:47 MSK
(In reply to comment #60)
> В wine немного другой механизм действия
> блокировки.
> 
> Пишу тест на WINAPI функции блокировки.
> Встретился с некоторыми особенностями:
> * Функции LockFile() и UnlockFile позволяют ставить
> блокировку на определённый регион файла,
> но тип блокировка (чтение или запись)
> задавать нельзя
> * Пока не знаю как проверить стоил ли на
> файле блокировка. Пробовал просто писать в
> файл - в результате оба процесса (и родитель
> и потомок) пишут в файл без проблем.
> 

Есть функция LockFileEx, которая умеет ставить блокировки на чтение.

Comment 73 Vitaly Lipatov Живая Классика 2009-03-24 19:18:24 MSK
(In reply to comment #72)
> Есть функция LockFileEx, которая умеет ставить
> блокировки на чтение.
В данном случае это не важно, она не может использоваться в 1С 7.7, поскольку появилась позже. 

Comment 74 Pavel Shilovsky Живая Классика 2009-03-26 11:33:02 MSK
(In reply to comment #65)
> Посмотрел трейс при запуске 1с на функции
> LockFile и Unlock file.
> 
> Интересующая нас блокировка ставится при
> открытии документа (ещё до формирования
> версии для печати):
> fixme:file:LockFile 0x128 03fffff35 000000001
> 
> Блокировка снимается сразу после закрытия
> документа:
> fixme:file:UnlockFile handle = 0x128 offs = 0x3fffff35, count = 0x1
> 

Это как? Разве можно снять блокировку после закрытия файла? Ведь handle уже становится не валидным. Или имеется ввиду что-то другое?

> Во время печати функции (раз)блокироки не
> вызываются с дескриптором 0x128
> 
> Далее, при повторном открытии, снова
> ставится блокировка:
> fixme:file:LockFile 0x128 03fffff35 000000001
> При этом 1с выдаёт ошибку.
> 

Comment 75 Vitaly Lipatov Живая Классика 2009-03-26 12:06:30 MSK
(In reply to comment #74)
> > Блокировка снимается сразу после закрытия
> > документа:
> > fixme:file:UnlockFile handle = 0x128 offs = 0x3fffff35, count = 0x1
> > 
> 
> Это как? Разве можно снять блокировку после
> закрытия файла? Ведь handle уже становится не
> валидным. Или имеется ввиду что-то другое?
Все файлы в 1С (DBF и CDX) открываются при запуске программы и больше не закрываются до выхода. Речь шла о закрытии документа.
Схема ведь такая:
1. открываем документ (ставится блокировка на участок файла, что документ заблокирован)
2. делаем fork
3. при завершении порождённого процесса происходит нечто (хотя по POSIX тоже плохо, должны сброситься блокировки, установленные родительским процессом)
4. далее мы закрываем документ (блокировка снимается с участка файла)
5. и тут почему-то обнаруживается, что блокировка эта осталась на самба-сервере (возможно он путает хозяев блокировки).
Comment 76 Konstantin Baev Живая Классика 2009-03-26 16:02:54 MSK
Сделан тестовый пакет. См. http://bugs.etersoft.ru/show_bug.cgi?id=3660#c13
Надо потестировать. Перевешиваю на отдел тестирования.
Comment 77 Денис Баранов Живая Классика 2009-03-27 21:12:13 MSK
(In reply to comment #76)
> Сделан тестовый пакет. См.
> http://bugs.etersoft.ru/show_bug.cgi?id=3660#c13
> Надо потестировать. Перевешиваю на отдел
> тестирования.
> 
Протестировал ошибку на 1С77 - не проявляется.
http://bugs.etersoft.ru/show_bug.cgi?id=3746
Comment 78 Денис Баранов Живая Классика 2009-03-27 21:15:50 MSK
(In reply to comment #77)
> http://bugs.etersoft.ru/show_bug.cgi?id=3746
> 
Не то написал, 
etercifs-4.2.1-alt1.testing1
Comment 79 Денис Баранов Живая Классика 2009-03-29 18:52:27 MSD
(In reply to comment #78)
> (In reply to comment #77)
> > http://bugs.etersoft.ru/show_bug.cgi?id=3746
> > 
> Не то написал, 
> etercifs-4.2.1-alt1.testing1
> 
После повторной проверки обнаружилась что ошибка не исправлена и по прежнему воспоризводится.
Comment 80 Pavel Shilovsky Живая Классика 2009-03-29 21:49:54 MSD
Тестировалось с опцией forcemand или без неё?
Comment 81 Konstantin Baev Живая Классика 2009-03-30 15:30:26 MSD
Нужно протестировать etercifs-4.2.1-alt1.testing2

ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs-testing/noarch/RPMS.default/etercifs-4.2.1-alt1.testing2.noarch.rpm
Comment 82 Vitaly Lipatov Живая Классика 2009-03-30 15:37:40 MSD
Честно говоря я не вижу никакой связи между залипанием блокировки на сервере после завершения форкнутого процесса и обнаруженного неправильного поведения F_GETLK.
Comment 83 Konstantin Baev Живая Классика 2009-03-30 15:46:32 MSD
(In reply to comment #82)
> Честно говоря я не вижу никакой связи между
> залипанием блокировки на сервере после
> завершения форкнутого процесса и
> обнаруженного неправильного поведения
> F_GETLK.
> 

После тестирования будет видно. Если проблема первоначальная ушла, то связь есть, если нет, то, соответственно, надо дальше разбираться.

Осталось только не заблудиться в такой длинной баге...
Comment 84 Andrey Vusik Живая Классика 2009-03-30 19:52:27 MSD

(In reply to comment #81)
> Нужно протестировать etercifs-4.2.1-alt1.testing2
> 
> ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs-testing/noarch/RPMS.default/etercifs-4.2.1-alt1.testing2.noarch.rpm
> 

Проверил в 1с77, заявленной проблемы нет.
Comment 85 Konstantin Baev Живая Классика 2009-03-30 21:07:38 MSD
см. http://bugs.etersoft.ru/show_bug.cgi?id=3755#c1
выпущен 4.3.0, содержащий все, что было в 4.2.1-testing2
Comment 86 Денис Баранов Живая Классика 2009-03-31 11:14:44 MSD
(In reply to comment #85)
> см. http://bugs.etersoft.ru/show_bug.cgi?id=3755#c1
> выпущен 4.3.0, содержащий все, что было в
> 4.2.1-testing2

Проверил еще раз, выяснилось что на тестовой сборке и на 4.3.0 данная ошибка проявляется если монтировать: 
1)с опцией forcemand и direct одновременно
2)с опцией forcemand

ошибка НЕ проявляется если монтировать только с опцией direct.
Comment 87 Денис Баранов Живая Классика 2009-03-31 11:34:38 MSD
(In reply to comment #86)
> ошибка НЕ проявляется если монтировать
> только с опцией direct.
> 
Проверялось с сервером на Linux машине.

Проверил с Windows сервером и получилось что с любыми параметрами ошибка проявляется!
Comment 88 Vitaly Lipatov Живая Классика 2009-03-31 12:07:37 MSD
(In reply to comment #87)
...
> Проверил с Windows сервером и получилось что с
> любыми параметрами ошибка проявляется!
Что насчёт монтирования с noperm? 

Comment 89 Денис Баранов Живая Классика 2009-03-31 12:17:11 MSD
(In reply to comment #88)
> Что насчёт монтирования с noperm? 
> 
1) noperm
2) noperm,direct
3) noperm,direct,forcemand

Во всех 3 случаях ошибка стабильно проявляется.
Comment 90 Pavel Shilovsky Живая Классика 2009-03-31 13:31:28 MSD
Я так понимаю, что раз для Linux сервера без опции forcemand(она делает его по сути windows сервером с точки зрения блокировок) патч для F_GETLK проблему решил, я прав?
Comment 91 Pavel Shilovsky Живая Классика 2009-03-31 13:33:51 MSD
слово "раз" в предыдущем посте было лишним)
Comment 92 Konstantin Baev Живая Классика 2009-03-31 15:02:25 MSD
Вышел etercifs-4.3.1 - см. http://bugs.etersoft.ru/show_bug.cgi?id=3725#c26
Я не уверен, что он решает эту проблему, скорее он должен решить 3725, и если повезёт, то и эту. Надо тестировать и если не получится, смотреть уже конкретно эту багу, отталкиваясь от того, что есть.
Comment 93 Konstantin Baev Живая Классика 2009-03-31 15:08:30 MSD
Поясню. В предыдущем testing2 решили багу 3660, которая была производной от этой баги. Во время этого процесса появилась бага 3725, которую тоже попытались решить и есть надежда, что решили, заодно обнаружив, что наши оплочные патчи заменяются опцией монтирования direct. Собственно, теперь их и нет. Это вообще проблемы разные и путать их не надо. Но учитывать изменения надо.

Надеюсь я никого не запутал. Если что - будем распутывать.
Comment 94 Виталий Перов Живая Классика 2009-03-31 18:29:14 MSD
Проверил. Баги нет.
Comment 95 Pavel Shilovsky Живая Классика 2009-03-31 20:56:27 MSD
С какими параметрами монтирования и на какой версии этерцифса?
Comment 96 Виталий Перов Живая Классика 2009-04-03 14:09:45 MSD
etercifs-4.3.2-alt1.etermount

монтировалось без параметров
Comment 97 Денис Баранов Живая Классика 2009-04-03 14:16:29 MSD
> etercifs-4.3.2-alt1.etermount
> 
> монтировалось без параметров
> 
без парметров эт оне дело.

Провел тестирование с рекомендоваными
параметрами direct,noperm,forcemand на 
etercifs-4.3.2.
Результат: бага воспроизводится 100% при
монтировании с Linux и Windows серверов.

Вдобавок ко всему если в таком сеансе была
заблокирована запись, то 1Ска вылетает с
сообщением об ошибке (см скрин1). Сделан
трейс по +file (см лог в прилож.)(In reply to comment #96)
Comment 98 Денис Баранов Живая Классика 2009-04-03 14:33:58 MSD
Created attachment 1125 [details]
скрин1
Comment 99 Денис Баранов Живая Классика 2009-04-03 14:35:09 MSD
Created attachment 1126 [details]
трейс на закрытие
Comment 100 Денис Баранов Живая Классика 2009-04-03 14:40:31 MSD
>> Комментарий #97 
Монтирование производилось с Windows машины.
Comment 101 Денис Баранов Живая Классика 2009-04-03 14:56:04 MSD
Проведено тестирование с Linux сервером с разными вариациями параметров:
Ошибка не воспроизвелась только если монтировать с параметрами:
1) direct
2) noperm
3) noperm, direct

Видимо forcemand что то портит.
Comment 102 Pavel Shilovsky Живая Классика 2009-04-03 15:08:59 MSD
Параметр direct больше не обязателен в 4.3.2.
Comment 103 Pavel Shilovsky Живая Классика 2009-04-07 13:23:28 MSD
Воспроизвёл багу с помощью программы на си.
Comment 104 Vitaly Lipatov Живая Классика 2009-04-07 13:37:14 MSD
Отлично. Вложением к баге?
Comment 105 Денис Баранов Живая Классика 2009-04-07 13:50:01 MSD
Сделал табличку по тому что есть сейчас:
http://wiki.office.etersoft.ru/testing/cifs/printblock
Comment 106 Konstantin Baev Живая Классика 2009-04-07 13:54:45 MSD
(In reply to comment #105)
> Сделал табличку по тому что есть сейчас:
> http://wiki.office.etersoft.ru/testing/cifs/printblock
> 

Про direct можно уже забыть. Только лишняя работа.
Comment 107 Pavel Shilovsky Живая Классика 2009-04-07 22:47:27 MSD
Created attachment 1132 [details]
воспроизводит багу
Comment 108 Pavel Shilovsky Живая Классика 2009-04-08 12:02:00 MSD
Последний коммит из

http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/v2.6.27-testing

должен решить проблему.
Comment 109 Jemoytel Sergey 2009-04-08 20:09:14 MSD
(In reply to comment #101)
> Проведено тестирование с Linux сервером с
> разными вариациями параметров:
> Ошибка не воспроизвелась только если
> монтировать с параметрами:
> 1) direct
> 2) noperm
> 3) noperm, direct
> 
> Видимо forcemand что то портит.
> 

etercifs 4.3.2

Схема сети такая:
WinXP SP2 - 3-и машины
Mandriva 2009.0 Free - 2-е машины

Базы расположены на одной из WinXP или одной из Mandriva Linux машин
Ресурсы монтируются
1. noperm
2. fircemand

проблема всплывает при любом из параметров


Comment 110 Konstantin Baev Живая Классика 2009-04-08 20:59:32 MSD
(In reply to comment #108)
> Последний коммит из
> 
> http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/v2.6.27-testing
> 
> должен решить проблему.
> 

ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs/noarch/RPMS.default/etercifs-4.3.3-alt1.noarch.rpm

Пакет не только содержит патч, но и решается проблема сборки на ядре 2.6.29 (RT#9966), обновлены исходники до 2.6.29.1 и доработан скрипт так, что если есть новый пакет etercifs, то старый модуль грузиться не будет.

С CentOS пока неудачно.
Comment 111 Денис Баранов Живая Классика 2009-04-08 22:57:18 MSD
(In reply to comment #108)
> Последний коммит из
> 
> http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/v2.6.27-testing
> 
> должен решить проблему.
> 
Проверил новую сборку на 1С 77, проблема с блокировкой документа после печати больше не проявляется.

Как появлюсь в офисе потестирую более тщательно, вдруг чтото сломалось.

P.S. to Лена, прогоните rect тесты.
Comment 112 Jemoytel Sergey 2009-04-09 10:04:38 MSD
(In reply to comment #110)
> (In reply to comment #108)
> > Последний коммит из
> > 
> > http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/v2.6.27-testing
> > 
> > должен решить проблему.
> > 
> 
> ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs/noarch/RPMS.default/etercifs-4.3.3-alt1.noarch.rpm
> 
> Пакет не только содержит патч, но и
> решается проблема сборки на ядре 2.6.29 (RT#9966),
> обновлены исходники до 2.6.29.1 и доработан
> скрипт так, что если есть новый пакет etercifs,
> то старый модуль грузиться не будет.
> 
> С CentOS пока неудачно.
> 

Пакетики для мандривы 2009.0 соберите пожалуйста. Смогу посмотреть в реальной работе.
Comment 113 Vitaly Lipatov Живая Классика 2009-04-09 12:24:20 MSD
(In reply to comment #112)
...
> Пакетики для мандривы 2009.0 соберите
> пожалуйста. Смогу посмотреть в реальной
> работе.
> 
Готово:
ftp://updates.etersoft.ru/pub/Etersoft/CIFS%40Etersoft/4.3.3
Comment 114 Konstantin Baev Живая Классика 2009-04-09 12:46:29 MSD
(In reply to comment #113)
> (In reply to comment #112)
> ...
> > Пакетики для мандривы 2009.0 соберите
> > пожалуйста. Смогу посмотреть в реальной
> > работе.
> > 
> Готово:
> ftp://updates.etersoft.ru/pub/Etersoft/CIFS%40Etersoft/4.3.3
> 

Надо бы ещё для Мандривы собрать dkms-etercifs.
Comment 115 Jemoytel Sergey 2009-04-09 12:49:27 MSD
(In reply to comment #113)
> (In reply to comment #112)
> ...
> > Пакетики для мандривы 2009.0 соберите
> > пожалуйста. Смогу посмотреть в реальной
> > работе.
> > 
> Готово:
> ftp://updates.etersoft.ru/pub/Etersoft/CIFS%40Etersoft/4.3.3
> 

(In reply to comment #114)
> (In reply to comment #113)
> > (In reply to comment #112)
> > ...
> > > Пакетики для мандривы 2009.0 соберите
> > > пожалуйста. Смогу посмотреть в реальной
> > > работе.
> > > 
> > Готово:
> > ftp://updates.etersoft.ru/pub/Etersoft/CIFS%40Etersoft/4.3.3
> > 
> 
> Надо бы ещё для Мандривы собрать dkms-etercifs.
> 

Установил из предыдущего пакета для альта, пересобрал модуль, перемонтировал ресурсы

Все равно после печати всех выкинуло из базы

Comment 116 Konstantin Baev Живая Классика 2009-04-09 12:59:14 MSD
(In reply to comment #115)
> > Надо бы ещё для Мандривы собрать dkms-etercifs.
> > 
> 
> Установил из предыдущего пакета для альта,
> пересобрал модуль, перемонтировал ресурсы
> 
> Все равно после печати всех выкинуло из
> базы
> 

А версию 4.3.2 в файле dkms.conf заменили на 4.3.3?

Всё же дождитесь пакета потому что там есть ещё и постинсталл-скрипты, которые добавляют в dkms-дерево информацию о модуле и, соответственно, после удаления пакета, удаляют её и модуль.

Для проверки можно запустить service etercifs status
Comment 117 Jemoytel Sergey 2009-04-09 13:08:47 MSD
(In reply to comment #116)
> (In reply to comment #115)
> > > Надо бы ещё для Мандривы собрать dkms-etercifs.
> > > 
> > 
> > Установил из предыдущего пакета для альта,
> > пересобрал модуль, перемонтировал ресурсы
> > 
> > Все равно после печати всех выкинуло из
> > базы
> > 
> 
> А версию 4.3.2 в файле dkms.conf заменили на 4.3.3?
> 
> Всё же дождитесь пакета потому что там есть
> ещё и постинсталл-скрипты, которые
> добавляют в dkms-дерево информацию о модуле
> и, соответственно, после удаления пакета,
> удаляют её и модуль.
> 
> Для проверки можно запустить service etercifs status
> 

service etercifs status
CIFS module status:
modinfo: could not open etercifs: Permission denied
    package etercifs version 4.3.3
    kernel module etercifs is built
    kernel module etercifs version 4.3.3 is loaded

Монтирую с noperm, без forsemand

Результат: Ошибка ввода-вывода
Comment 118 Konstantin Baev Живая Классика 2009-04-09 13:49:56 MSD
Вот как можно обойтись без свежего пакета dkms-etercifs:

0. Удаляю старый dkms-etercifs командой 

rpm -e dkms-etercifs

1. Скачиваю etercifs-4.3.3-eter1mdv.noarch.rpm
2. Обновляю этот пакет:

rpm -Uhv ./etercifs-4.3.3-eter1mdv.noarch.rpm

3. Поскольку теперь у меня нет установленного пакета dkms-etercifs произвожу операцию руками:

4. Создаем каталог /usr/src/etercifs-4.3.3
5. Копируем файл dkms.conf из старого пакета в файл /usr/src/etercifs-4.3.3/dkms.conf, не забыв заменить старую версию модуля на 4.3.3

6. Запускаем команду

dkms add -m etercifs -v 4.3.3 --rpm_safe_upgrade

7. Собираем модуль

Если нужное ядро загружено, то:

service etercifs build

А потом запустить

service etercifs restart

и проверить

service etercifs status

Примечание 0.

Всё же проще дождаться пакета dkms-etercifs нужной версии. Да и надёжнее.

Примечание 1.

А если надо собрать для другого ядра, то сперва надо нужные исходники из /usr/share/etercifs/sources распаковать в /usr/src/etercifs-4.3.3, в потом запустить команды (пример для ядра 2.6.29-desktop-1mnb):

dkms build -m etercifs -v 4.3.3 -k 2.6.29-desktop-1mnb --rpm_safe_upgrade
dkms install -m etercifs -v 4.3.3 -k 2.6.29-desktop-1mnb --rpm_safe_upgrade

Примечание 2.

Нашел мелкую багу в скриптах при выводе service etercifs status - выводятся некие ненужные сообщения. Буду смотреть.
Comment 120 Денис Баранов Живая Классика 2009-04-09 16:36:25 MSD
Итак протестировал еще раз более подрочбно etercifs 4.3.3
Монтировал с парамерами noperm,forcemand
Проблема с блокировкой после закрытие не воспоризводится.
Был проверен совместный доступ по мотивам http://wiki.office.etersoft.ru/testing/cifs/dostup, результат положительный на Windows и Linux серверах.

Проверялось на WINE 1.0.9 и на 1.0.10

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


P.S. рекомендовано монтировать с forcemand всегда!
Comment 121 Jemoytel Sergey 2009-04-09 23:13:48 MSD
(In reply to comment #120)
> Итак протестировал еще раз более подрочбно
> etercifs 4.3.3
> Монтировал с парамерами noperm,forcemand
> Проблема с блокировкой после закрытие не
> воспоризводится.
> Был проверен совместный доступ по мотивам
> http://wiki.office.etersoft.ru/testing/cifs/dostup, результат
> положительный на Windows и Linux серверах.
> 
> Проверялось на WINE 1.0.9 и на 1.0.10
> 
> Данная бага исчерпана, так что думаю пора
> закрывать и переносить дополнительные
> обсуждения в другое место.
> 
> 
> P.S. рекомендовано монтировать с forcemand
> всегда!
> 

Протестирую утром с указанными параметрами.

Так как с noperm без forcemand выдает ошибку ввода-вывода, в конфигурации 2 - WinXP x 2 - Linux, с Linux сервером.
Comment 122 Jemoytel Sergey 2009-04-10 11:03:59 MSD
etercifs - 4.3.3mdv, модули собраны и загружены. Базы на Linux-е. Монтирую с noperm,forcemand

После плучаса работы, на проведении документа, выкинуло сначала одного Win клиента, затем выкинуло всех остальных. При повторном проведении того же докумнета выкидывает всех.
В результате разрушение базы. 

Посмотрю что будет после исправления баз.

Но ошибка показала себя снова. Не вижу смысла закрывать эту багу до тех пор пока окончательно не будет решена проблема.
Comment 123 Jemoytel Sergey 2009-04-10 11:59:50 MSD
После исправлений снова выкидывает
Comment 124 Евгений Синельников Живая Классика 2009-04-10 12:27:10 MSD
(In reply to comment #123)
> После исправлений снова выкидывает

Я правильно понимаю, что ошибка с печатью не происходит? Что значит "выкидывает"? Или это та же ошибка, которая возникает реже? Что значит "после получаса работы"? То есть первые полчаса всё работало?

Comment 125 Vitaly Lipatov Живая Классика 2009-04-10 12:46:21 MSD
Просьба больше не писать в эту багу, которая посвящена исключительно
блокированию документа (зависанию блокировок) после печати, вызванному fork'ом процесса.
Если есть другие проблемы с etercifs, их надо написать либо в support@, либо завести новую багу, с условиями воспроизведения.