wine@etersoft 1.0.8+cifs+1Cv7.7 (блокировка записи)

WINE@Etersoft, "1С","Ананас" и прочие проекты

Модератор: Модераторы разделов

killovolt
Сообщения: 29

wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение killovolt »

Доброго времени суток!

Имеем AltLinux 4.0 c с установленным wine@etersoft 1.0.8 и 1С v7.7 c Комплексной конфигурацией. База расположена на Samba и смонтирована через linux-cifs v1.5с от etersoft, для организации совместного доступа Lin и Win клиентов. Linux клиенты работают в терминальном режиме с базой смонтированной через cifs.

Проблема заключается в следующем: у Linux клиентов после отправки на печать любого документа невозможно повторно открыть этот документ, выдается ошибка "Запись заблокирована!" (пример ошибки
). Чтобы повторно открыть документ надо выйти из 1С полностью и снова зайти. От количества работающих клиентов проблема не зависит, проблема есть при работе даже одного клиента.

Работа Win клиента с этой же базой через самбу без проблем.

Если сделать доступ к базе для Linux клиентов без Samba, то блокировки не происходит.

Ресурс Samba монтируется вот так:
mount -t cifs //111.111.111.111/base /home/<user>/.db/1c \
-o user=<user>,pass=,file_mode=0660,dir_mode=02770,uid=<user>,gid=wine,iocharset=utf8
В wine база подключается так:
ln -s /home/<user>/.db/1c /home/<user>/.wine/dosdevices/h:
Пробовал обновить linux-cifs до 3.4.1, проблема не исчезла.

Подскажите куда рыть?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение Djelf »

killovolt писал(а):
31.01.2009 18:34
Подскажите куда рыть?

http://bugs.etersoft.ru/show_bug.cgi?id=1185
http://bugs.etersoft.ru/show_bug.cgi?id=3053
Спасибо сказали:
killovolt
Сообщения: 29

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение killovolt »



Насколько я понял, нужно монтировать с опциями noperm, forcemand. Опция forcemand появилась только в etercifs 4.0.x. Сам пакет etercifs предназначен для работы с wine 1.0.9. А без обновления до версии 1.0.9 никак нельзя решить эту проблему?

Кто сталкивался, подскажите, решилась проблема обновлением wine и etercifs?
Спасибо сказали:
sisop
Сообщения: 54

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение sisop »

в 1.09 бага исправлена. что тут еще обсуждать?
Спасибо сказали:
killovolt
Сообщения: 29

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение killovolt »

sisop писал(а):
01.02.2009 23:17
в 1.09 бага исправлена. что тут еще обсуждать?


Обновил wine до 1.0.9 и поставил etercifs-4.1.1-alt0.M40.1.noarch.rpm, к сожалению ситуация не изменилась, после печати любого документа его повторное открытие приводит к ошибке "Запись заблокирована!".

Информация о модуле etercifs:
[root@localhost ~]# /etc/rc.d/init.d/etercifs status
CIFS module status:
kernel module etercifs is loaded

[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)

Вывод 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

Проверка блокировок из под пользователя:
[alex@localhost db]$ winelocktest
localhost being added to access control list

Check Y:\ in single user mode...
Start test as STANDALONE for lockfile.wine file...
Running on CIFS filesystem
G_R G_R G_R G_W G_W G_W G_R|W G_R|W G_R|W
S_R S_W S_R|W S_R S_W S_R|W S_R S_W S_R|W

G_R FVL F. FVL F. F. F. F. F. F.
S_R

G_R F. F. F. FVL F. FVL F. F. F.
S_W

G_R FVL F. FVL FVL F. FVL FVL F. FVL
S_R|W

G_W F. FVL FVL F. F. F. F. F. F.
S_R

G_W F. F. F. F. FVL FVL F. F. F.
S_W

G_W F. FVL FVL F. FVL FVL F. FVL FVL
S_R|W

G_R|W F. F. FVL F. F. F. F. F. F.
S_R

G_R|W F. F. F. F. F. FVL F. F. F.
S_W

G_R|W F. F. FVL F. F. FVL F. F. FVL
S_R|W

Проверка блокировок из-под root:
[root@localhost db]# winelocktest
localhost being added to access control list
It is not recommended to run WINE as root
Creating test environment in /tmp/winelocktest, shared dir is /mnt/1c/db
FAILED: groupadd
Removing test environment(ROOTDIR=/tmp/winelocktest)...
userdel: user winelock-user1 does not exist
userdel: user winelock-user2 does not exist

Монтирование базы через cifs:
/bin/mount -t cifs //192.168.44.2/base /mnt/1c/db -o user=<user>,pass=,forcemand,noperm,iocharset=utf8


Подключение базы в wine:
ln -s /mnt/1c/db /home/<user>/.wine/dosdevices/y:


Ткните куда дальше копать! :)
Спасибо сказали:
lira63
Сообщения: 19

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение lira63 »

У меня wine 1.09. Не знаю как после печати, но после открытия-закрытия документа тоже самое было.
Мне помогло: в /etc/wine/config раскомментировал строку "# WINEDISABLEFLUSH=yes" на всех машинах с альт-линуксом.
Удачи!
Спасибо сказали:
killovolt
Сообщения: 29

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение killovolt »

lira63 писал(а):
17.02.2009 10:44
У меня wine 1.09. Не знаю как после печати, но после открытия-закрытия документа тоже самое было.
Мне помогло: в /etc/wine/config раскомментировал строку "# WINEDISABLEFLUSH=yes" на всех машинах с альт-линуксом.
Удачи!


Спасибо за подсказку. Попробовал с WINEDISABLEFLUSH=yes, блокировка записи, увы, не пропала. Насколько понимаю, проблема в модуле etercifs, так как если подключить базу без монтирования через cifs, то блокировки записи нет.

Какие ещё возможны варианты решения? Неужели эта проблема только у меня? :)


Версии пакетов wine и etercifs:

[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
Спасибо сказали:
lira63
Сообщения: 19

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение lira63 »

Я обновился до последних версий.
Монтирую шару в /etc/fstab с параметрами noperm и forcemand.
Поудалял из настройки самбы все, что связано с oplocks, т.е. по умолчанию, кроме kernel oplocks = no в глобальной секции. Там же в соответствии с рекомендациями Этерсофта ввел use sendfile = yes (правда эта строка уже давно была, так же как и кернел оплокс - ну просто на всякий случай привел пример, может это важно...). Сервак на Дебиане 4.0.
И стало все нормально, больше нет блокировок записи.
И строка с WINEDISABLEFLUSH=yes осталась закомментирована в /etc/wine/config.
Так что скорее всего без обновления не получится избавиться от проблемы.
Удачи!
Спасибо сказали:
lav
Модератор
Сообщения: 192

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение lav »

Выложена сборка etercifs версии 4.3.6,
в которой выявлены и устранены все известные проблемы наличия
и отсутствия блокировок. Монтировать нужно обязательно указав
параметры forcemand и direct.
Ждём положительных отзывов :)
ftp://updates.etersoft.ru/pub/Etersoft/CIFS@Etersoft/stable/
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение DjSpike »

в этой сборке возможна одновременная работа Linux - Windows , когда база находится на Linux. ????
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение Hoblin »

DjSpike писал(а):
16.04.2009 15:06
в этой сборке возможна одновременная работа Linux - Windows , когда база находится на Linux. ????

Да. Если нет - с Вас багрепорт.
Спасибо сказали:
BDenis
Сообщения: 74

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение BDenis »

lav писал(а):
16.04.2009 13:45
Монтировать нужно обязательно указав
параметры forcemand и direct.

Я у вас там багу создал, но может здесь обсудим. Почему обязательна опция direct? Она исключает кеширование и может сказаться на монопольном режиме, а патч который делает ее не обязательным написан еще в версии 4.3.2. Или его убрали?

У меня у самого на 4.3.2 уже недели две нет никаких проблем с блокировками без direct.
Спасибо сказали:
sisop
Сообщения: 54

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение sisop »

Раз уж пошла такая пьянка... Возможна ли сейчас такая схема - виндовые клиенты коннектятся через SMB, а линуксовые через NFS? ОДновременно к одной базе, естественно.
Спасибо сказали:
BDenis
Сообщения: 74

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение BDenis »

sisop писал(а):
17.04.2009 08:48
Раз уж пошла такая пьянка... Возможна ли сейчас такая схема - виндовые клиенты коннектятся через SMB, а линуксовые через NFS? ОДновременно к одной базе, естественно.

Ни в коем случае! Если с базой работают разномастные клиенты, то только cifs.

Это означает также, что если на компе расшарена по самбе база, то пользоватся ей на этом же компе можно только подмаунтив каталог по cifs на самого себя. Ни в коем случае не оригинальную базу.
Спасибо сказали:
sisop
Сообщения: 54

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение sisop »

BDenis писал(а):
17.04.2009 13:40
sisop писал(а):
17.04.2009 08:48
Раз уж пошла такая пьянка... Возможна ли сейчас такая схема - виндовые клиенты коннектятся через SMB, а линуксовые через NFS? ОДновременно к одной базе, естественно.

Ни в коем случае! Если с базой работают разномастные клиенты, то только cifs.

Жаль, конечно... решило бы сразу все проблемы. Хотя, как-то раз растекаясь мыслью по древу, я приходил к выводу, что такое возможно.
Спасибо сказали:
Аватара пользователя
DjSpike
Сообщения: 2265
Статус: в поисках истины
ОС: Lubuntu 12.04

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение DjSpike »

BDenis писал(а):
17.04.2009 13:40
sisop писал(а):
17.04.2009 08:48
Раз уж пошла такая пьянка... Возможна ли сейчас такая схема - виндовые клиенты коннектятся через SMB, а линуксовые через NFS? ОДновременно к одной базе, естественно.

Ни в коем случае! Если с базой работают разномастные клиенты, то только cifs.

Это означает также, что если на компе расшарена по самбе база, то пользоватся ей на этом же компе можно только подмаунтив каталог по cifs на самого себя. Ни в коем случае не оригинальную базу.


А можно ссылку на документацию где это написано ???
Почему нельзя в линуксе нельзя указать локальный путь к базе когда работают совместно с виндами ?????
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Спасибо сказали:
BDenis
Сообщения: 74

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение BDenis »

DjSpike писал(а):
17.04.2009 20:01
А можно ссылку на документацию где это написано ???
Почему нельзя в линуксе нельзя указать локальный путь к базе когда работают совместно с виндами ?????

Конечно можно.
Замечание: При использовании одной и той же машины в качестве файлового и терминального сервера одновременно, следует устроить так, чтобы терминальные клиенты также работали с общим ресурсом посредством протокола CIFS, иначе взаимодействия не получится.


Я, правда, прочитал это позновато, пришел к этому тестированием.

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

  • На самбовском сервере в специальном головном процессе smbd к которому обращаются все дочерние процессы smbd по вопросу блокировки. Этим способом работает обеспечение корректных блокировок по цифс. В новых версиях этого протокола стали использоваться юникс расширения (у юниксовых клиентов блокировки стали совещательными), для возвращения к старому механизму придумали опцию forcemand, которая обязательна при работе в 1С.

  • Если вы обращаетесь к файлам в пределах одной машины напрямую через ядро (минуя цифс), то заботу о преобразовании блокировок в строгие для всех запущеных виндовых программ берет на себя специальный процесс wineserver. Поэтому в пределах одной машины можно запустить сколько угодно экземпляров 1С и все будет пучком.

Так вот, при совместном использовании базы по цифс и на прямую через ядро линукс smbd и wineserver не обращают внимания/не видят/не могут видеть (может еще просто не дописано) блокировок друг друга. Поэтому вы, например, легко сможете одновременно войти пару раз монопольно.

Кто обрабатывает эти строгие блокировки при расшаривании по NFS не спрашивайте, не знаю.
И вообще, все выше описаное является плодом моего больного воображения, поэтому если я заблуждаюсь, пожалуйста, поправте меня.
Спасибо сказали:
at9
Сообщения: 2

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение at9 »

BDenis писал(а):
17.04.2009 13:40
sisop писал(а):
17.04.2009 08:48
Раз уж пошла такая пьянка... Возможна ли сейчас такая схема - виндовые клиенты коннектятся через SMB, а линуксовые через NFS? ОДновременно к одной базе, естественно.

Ни в коем случае! Если с базой работают разномастные клиенты, то только cifs.

Это означает также, что если на компе расшарена по самбе база, то пользоватся ей на этом же компе можно только подмаунтив каталог по cifs на самого себя. Ни в коем случае не оригинальную базу.

А если клиенты конектятся терминально (FreeNX), можно обойтись без cifs?
Спасибо сказали:
BDenis
Сообщения: 74

Re: wine@etersoft 1.0.8+cifs+1Cv7.7

Сообщение BDenis »

at9 писал(а):
16.05.2009 09:38
А если клиенты конектятся терминально (FreeNX), можно обойтись без cifs?
Мне тоже интересно. Кто разруливает в этом случае блокировки? Ведь wineserver запускается для каждого пользователя свой.
Спасибо сказали: