Summary: | При запуске winelocktest на cifs ресурсе появляется ошибка. | ||
---|---|---|---|
Product: | CIFS@Etersoft | Reporter: | Shestakov Dmitriy <mid> |
Component: | прочее | Assignee: | Александр Морозов <amorozov> |
Status: | CLOSED FIXED | QA Contact: | Marat Sharipov <regan> |
Severity: | minor | ||
Priority: | P4 | CC: | amorozov, lav, night, piastry |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 5634 |
Description
Shestakov Dmitriy
2010-09-08 19:29:48 MSD
На других типах лицении это не появляется. Сделал заказ на WINE@Etersoft 1.0 Network (лицензия на 1 пользователя, электронная версия), жду подтверждения и ссылки на скачивание Нужен результат. Все лицензии есть в /var/ftp/pvt/Etersoft/WINE@Etersoft/license.. Нужная тебе называется wine-etersoft-2.lic. На нее делаешь симлин с из /etc/wine. Проверил на WINE@Etersoft SQL для 1 пользователя, ошибка проявляется, значит на Network тоже. *** Bug 5989 has been marked as a duplicate of this bug. *** Перевод в po/ru.po неправильный: #: eterx11msg/eterx11msg.c:187 msgid "" "You have used more simulateously running Wine process\n" "than it is possible via license." msgstr "" "Запущено больше экземпляров Wine,\n" "чем это разрешено лицензией." Да и сообщение на английском не очень. Данная ошибка выдаётся в случае, если файл пытаются открыть больше процессов, чем прописано в поле COUNT_LICENSE в файле лицензии. Сообщение заменил на такое: #: eterx11msg/eterx11msg.c:187 msgid "" "License limitation: the number of processes\n" "sharing a single file is exceeded" msgstr "" "Лицензионное ограничение: превышено число процессов,\n" "совместно использующих один файл" Ошибка на CIFS появляется из-за того, что один процесс под WINE не может открыть больше COUNT_LICENSE файлов. Это вызвано тем, что на CIFS у одного процесса не получается 2 раза установить блокировку на запись на одно и то же место. Думаю, надо сделать, чтобы CIFS в данном случае вёл себя также, как и NFS. Проблему можно увидеть с помощью winelocktest. Вот эти строчки как раз являются её результатом: Test failed: creating "winelocktest_write" failed Test failed: opening "winelocktest_write" failed Test failed: creating "winelocktest_write" failed Клиент atlant: 2.6.32-std-def-alt16 Сервер cellar: 2.6.32-ovz-smp-alt5 winelocktest запускался на клиенте Использовалась лицензия с COUNT_LICENSE=1 Опции монтирования: user=guest,pass=,rw,iocharset=utf8,noperm,wine В smb.conf на сервере есть следующие опции: lock spin time = 0 socket options = TCP_NODELAY use sendfile = yes strict locking = no posix locking = false etercifs-4.5.1.4-alt1 Согласно http://msdn.microsoft.com/en-us/library/aa365203(VS.85).aspx: "Exclusive locks cannot overlap an existing locked region of a file." Потому самба сервер удаленно и клиент локально (при Exclusive oplock в 4.5.1.4 и 4.5.1.5) ведёт себя вполне корректно, запрещая устанавливать блокировку на одно и тоже место. Так как это особенности Samba протокола, то сделать так, чтобы CIFS вёл себя как NFS не представляется возможным без изменения самого протокола. А так, чтобы Linux-клиенты могли ставить блокировку на одно место сколько угодно раз, можно сделать? Всё таки нам надо по возможности придерживаться POSIX. Я к тому, что, может быть, можно обрабатывать случай с пересекающимися блокировками на клиенте, а потом отправлять (или не отправлять, если блокировка полностью совпадает с уже поставленной) запрос samba-серверу. В таком случае протокол не меняется. В случае, когда у нас есть блокировка полностью включается в уже установленную, проблем с кешированием нет. Если же она больше или пересекается, то возникают проблемы. По хорошему, в этом случае можно отсечь куски блокировки, которые существующая блокировка не затрагивает, и отправить их на сервер. Но у нас может быть вариант, когда одна блокировка затрагивает сразу несколько уже существующих, и механизм мержинга существенно осложняется. Поправил закрытую часть так, чтобы на cifs при неудачном завершении F_SETLK проверялось, не поставил ли уже процесс данную блокировку. 2 baraka: Надо протестировать на CIFS и NFS, не сломалась ли проверка на число пользователей. Проверь пожалуйста.
> 2 baraka:
> Надо протестировать на CIFS и NFS, не сломалась ли проверка на число
> пользователей.
wine network 7.31/15 etercifs 4.5.7 ubuntu 10.10 лицензии на 1 и на 7 человек winelocktest успешно проходит и на cifs и на nfs > > Надо протестировать на CIFS и NFS, не сломалась ли проверка на число
> > пользователей.
Что насчёт проверки работы ограничения на число пользователей, одновременно работающих с файлом?
Проверить можно, например, с помощью 1С. В базу одновременно должно входить не более записанного в лицензии числа пользователей. 1С для проверки надо запускать либо под разными пользователями, либо в разных wineprefix (например, в разных бутылках).
wine network 7.31/15 etercifs 4.5.7 ubuntu 10.10 лицензия на 1 человека через ssh под 2 разными пользователями подключится к одной и той-же базе находящейся на смонтированном cifsom диске не удалось (ошибка блокировки метаданных) к разным базам с 1 машины подключается без проблем. vbox ubuntu10.10 1с77 база //cellar/sharewine/alfa auto 1c77 Принято |