Summary: | Ошибка открытия базы через etercifs на Ubuntu 8.04 (Ошибка загрузки метаданных при включенном ) | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Елисеев Андрей <a> |
Component: | Файловые операции | Assignee: | Pavel Shilovsky <piastry> |
Status: | CLOSED FIXED | QA Contact: | Vitaly Lipatov <lav> |
Severity: | blocker | ||
Priority: | P1 | CC: | alexeev, baraka, boris, kipruss, kondratyuk, lav, leonid, night, sin |
Version: | 1.0.9 | ||
Target Milestone: | выпуск 1.0.9 | ||
Hardware: | PC | ||
OS: | Ubuntu | ||
URL: | http://rt.etersoft.ru/Ticket/Display.html?id=9116 | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 2929 | ||
Bug Blocks: | 2710, 3135, 3655 | ||
Deadline: | 2012-10-31 |
Description
Елисеев Андрей
2008-11-05 16:42:39 MSK
Такая ошибка возникает, когда неправильно указывают каталог с базой... Воспроизводил на 7.7 буквально сегодня... Подтверждаю, воспроизвели у себя на Ubuntu 8.04, cifs 3.6.1 1с77 ситуация такая же: при подключении к расшареной базе выводит "Ошибка загрузки метаданных" (In reply to comment #1) > Такая ошибка возникает, когда неправильно > указывают каталог с базой... Воспроизводил > на 7.7 буквально сегодня... А как надо указывать? делаю так: # mount -t cifs //cellar/sharewine /mnt/cifs/ -o uid=guest,gid=guest,file_mode=0660,dir_mode=0770 Далее указываю базу f:\1SDemo\ (f - ссылка на шару) не открыл.. (In reply to comment #2) > Подтверждаю, воспроизвели у себя на Ubuntu 8.04, > cifs 3.6.1 1с77 ситуация такая же: > при подключении к расшареной базе выводит > "Ошибка загрузки метаданных" > Описанное соответствует тому, что база не найдена, такое бывает, когда неправильно указывают каталог... > (In reply to comment #1) > > Такая ошибка возникает, когда неправильно > > указывают каталог с базой... Воспроизводил > > на 7.7 буквально сегодня... > > А как надо указывать? делаю так: > > # mount -t cifs //cellar/sharewine /mnt/cifs/ -o > uid=guest,gid=guest,file_mode=0660,dir_mode=0770 > > Далее указываю базу f:\1SDemo\ (f - ссылка на > шару) > Вы монтируете для пользователя guest, а работаете под каким? По пробуйте проверить содержимое каталога f:\1SDemo\, есть ли там база и доступна ли на чтение-запись, пользователю, под которым вы работаете. Я монтирую так //172.16.71.111/bases on /mnt/1c_cifs type cifs (rw,noperm,username=bolt1,password=*****,file_mode=0660,dir_mode=2770,uid=1000,gid=1011,iocharset=utf8) gid 1011 = 1susers этой группе принадлежат каталоги баз. В комбинации libwine_1.0.9-eter29.3ubuntu_i386.deb, wine-etersoft-network_1.0.9-eter10ubuntu_i386.deb, wine_1.0.9-eter29.3ubuntu_i386.deb, linux-cifs_3.2-1_all.deb Все заработало. Пробовал с etercifs_3.3-1_all.deb, etercifs_3.5-1_all.deb, etercifs_3.6.1-1_all.deb, с ними не работает. Хочу отметить что сборка linux-cifs_3.2-1_all.deb работает крайне не стабильно. Скажите какую версию wine и cifs поставить для стабильной работы? Клиент уже стонет, от постоянных проблем с блокировками таблиц и зависанием 1С во время проведения документов (процесс 1cv7.exe занимает 90-100% всего процессорного времени одного ядра и весит бесконечно). Далее куча проблем - снятие процесса, индексация в монопольном режиме и т.д (In reply to comment #6) > Хочу отметить что сборка linux-cifs_3.2-1_all.deb > работает крайне не стабильно. Можно по подробнее в чём состоит не стабильность? Вы уверены, что дело именно в CIFS? Почему в баге указан CIFS 3.6.1, а вы приводите linux-cifs_3.2-1_all.deb? > Скажите какую версию wine и cifs поставить для > стабильной работы? К сожалению, мы не проверяем CIFS на всех дистрибутивах. Сейчас, для нормальной проверки нам необходимо найти Ubuntu-8.04, установить её, и попытаться повторить вашу проблему... Я полагаю, что этот вопрос может быть быстрее разрешён в отделе тестирования. > Клиент уже стонет, от постоянных проблем с > блокировками таблиц и зависанием 1С во > время проведения документов (процесс 1cv7.exe > занимает 90-100% всего процессорного времени > одного ядра и весит бесконечно). Далее куча > проблем - снятие процесса, индексация в > монопольном режиме и т.д > Я думаю, что проблема со сборками Wine+Cifs для Ubuntu... Принципиальных проблем у 1Сv7.7, кроме запуска linux клиентов после первноачального запуска windows-клиента, не существует... Существуют проблемы настройки клиента... Кроме того, если я не ошибаюсь, пакеты под Ubuntu мы нативно (в самой убунте) не собираем, а конвертируем из rpm-пакетов. Я не могу, пока сам всё не проверю, точно что-либо сказать по этому вопросу... Кстати, у меня тоже проявилась жуткая нестабильность нового wine для Сизифа на сизифе двух недельной давности (до смены тулчейна)... Так что некорректность работы я не исключаю... Тем не менее меня смущает отсутствие подробностей... "Ошибка загрузки метаданных" - это проблема первичного поиска базы. Если у вас возникла такая проблема, то это означает, что база не найдена... К CIFS это имеет отношение косвенное... попробуйте, сначала запустить базу локально... Кстати, я так и не понял эта ошибка прошла? Или как? "Клиент уже стонет, от постоянных проблем"... Как так получилось, что вы писали, что 1С не запускается, а теперь такие проблемы? Значит первую проблему вы решили? Огромная просьба разделяйте отдельные проблемы по разным багам... Иначе вы меня окончательно запутаете! И ещё давайте, писать настолько подробно, чтобы нам не приходилось задавать друг другу с самого начала кучу наводящих вопросов! В версиях 3.5, 3.6, 3.6.1 проблема присутствует. А вот уже в etercifs 3.7.0 всё ок -- проверял в Debian 4.0 : Linux multi.office.etersoft.ru 2.6.18-5-k7 #1 SMP Mon Dec 24 17:18:11 UTC 2007 i686 GNU/Linux и в AltLinux 4.1 : Linux lin-test.office.etersoft.ru 2.6.25-std-def-alt10 #1 SMP Sat Oct 11 09:47:26 UTC 2008 i686 GNU/Linux Хочется узнать, что изменилось в 3.7? (In reply to comment #8) > В версиях 3.5, 3.6, 3.6.1 проблема присутствует. > > А вот уже в etercifs 3.7.0 всё ок -- проверял в > Debian 4.0 : > Linux multi.office.etersoft.ru 2.6.18-5-k7 #1 SMP Mon Dec 24 17:18:11 UTC 2007 > i686 GNU/Linux > и в AltLinux 4.1 : > Linux lin-test.office.etersoft.ru 2.6.25-std-def-alt10 #1 SMP Sat Oct 11 > 09:47:26 UTC 2008 i686 GNU/Linux > > Хочется узнать, что изменилось в 3.7? > Извиняюсь. В Убунту 8.04 и на сборке 3.7.0 не работает.. (In reply to comment #7) > "Ошибка загрузки метаданных" - это проблема > первичного поиска базы. Если у вас возникла > такая проблема, то это означает, что база не > найдена... К CIFS это имеет отношение > косвенное... попробуйте, сначала запустить > базу локально... > Проверял на 2 рабочих базах на 2 других дистрибутивах (читать предыдущие комменты) Проблема только в Ubuntu 8.04 и дело тут вовсе не в базах - они на 100% рабочие. Эта проблема ещё актуальна? нет (In reply to comment #12) > нет > Почему нет? Что-то исправили? Ошибка осталась - wine от 9 ноября, etercifs от 6, на multi, 1с77 --- "ошибка загрузки метаданных" База 100% рабочая - с других систем проблем нет. (In reply to comment #13) > (In reply to comment #12) > > нет > > > > Почему нет? Что-то исправили? Ошибка > осталась - wine от 9 ноября, etercifs от 6, на multi, 1с77 > --- "ошибка загрузки метаданных" База 100% > рабочая - с других систем проблем нет. > Сегодня, с последней сборкой закрытой части, проблема ушла. Можно закрывать. А что конкретно исправилось (в баге об этом ничего...)? У меня проблема проявляется и со сборкой от 10 ноября. (In reply to comment #0) > 1С не > подключается к базе пишет "Ошибка загрузки > метаданных" > Ubuntu 8.04 mount -t cifs //cellar/sharewine /mnt/cifs -o uid=guest,gid=guest,file_mode=0770,dir_mode=0660 Воспроизводится: trace:file:CreateFileW L"F:\\Test_base\\1Cv7.MD" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"F:\\Test_base\\1Cv7.MD",0x33f7fc,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"F:\\Test_base\\1Cv7.MD" 520 0x33f570 (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\F:\\Test_base\\1Cv7.MD" -> "/home/guest/.wine/dosdevices/f:/Test_base/1Cv7.MD" warn:file:CreateFileW Unable to create file L"F:\\Test_base\\1Cv7.MD" (status c000000f) trace:file:CreateFileW returning 0xffffffff (In reply to comment #17) > Воспроизводится: > trace:file:CreateFileW L"F:\\Test_base\\1Cv7.MD" GENERIC_READ FILE_SHARE_READ > FILE_SHARE_WRITE creation 3 attributes 0x80 > trace:file:RtlDosPathNameToNtPathName_U > (L"F:\\Test_base\\1Cv7.MD",0x33f7fc,(nil),(nil)) > trace:file:RtlGetFullPathName_U (L"F:\\Test_base\\1Cv7.MD" 520 0x33f570 (nil)) > trace:file:wine_nt_to_unix_file_name L"\\??\\F:\\Test_base\\1Cv7.MD" -> ^^^^ Вот эти вопросики меня смущают... Вы уверены, что не в этом проблема? > "/home/guest/.wine/dosdevices/f:/Test_base/1Cv7.MD" > warn:file:CreateFileW Unable to create file L"F:\\Test_base\\1Cv7.MD" (status > c000000f) > trace:file:CreateFileW returning 0xffffffff > Хотелось бы получить ssh -Y на проблемный экземпляр.... У меня вопросов больше, чем ответов... (In reply to comment #18) > > trace:file:wine_nt_to_unix_file_name L"\\??\\F:\\Test_base\\1Cv7.MD" -> > ^^^^ > Вот эти вопросики меня смущают... Вы Это так записывается путь к диску в NT-нотации (в NT нет букв дисков, диски там эмулируются таким образом). С ресурсом на win-test (Windows-машине всё нормально). Смотрю логи samba на cellar: при попытке открытия файла 1cv7.md ошибка: [2008/11/10 22:03:30, 10] smbd/open.c:open_file_ntcreate(1184) open_file_ntcreate: fname=Test_base/1Cv7.MD, dos_attrs=0x80 access_mask=0x80000000 share_access=0x3 create_disposition = 0x1 create_options=0x40 unix mode=0764 oplock_request=1 [2008/11/10 22:03:30, 5] smbd/open.c:open_file_ntcreate(1264) open_file_ntcreate: FILE_OPEN requested for file Test_base/1Cv7.MD and file doesn't exist. [2008/11/10 22:03:30, 3] smbd/error.c:error_packet_set(106) error packet at smbd/nttrans.c(805) cmd=162 (SMBntcreateX) NT_STATUS_OBJECT_NAME_NOT_FOUND Ну, всё понятно, как и ожидалось - отсутствует база... Да нет же. Я сейчас повыясняю и напишу. База естественно есть. Проблема в том, что wine не может получить правильное имя файла (он это делает через FindFirstFile). Проблема лежит в том, что wine принимает решение не выполнять регистро-независимый поиск файла (минусом отмечены строки на локальном диске, плюсом - на cifs-ресурсе): -warn:file:wine_nt_to_unix_file_name L"\\??\\C:\\cifs\\1Cv7.MD" -> "/home/guest/.wine/dosdevices/c:/cifs/1cv7.md" required a case-insensitive search -trace:file:wine_nt_to_unix_file_name L"\\??\\C:\\cifs\\1Cv7.MD" -> "/home/guest/.wine/dosdevices/c:/cifs/1cv7.md" -trace:file:CreateFileW returning 0x28 +trace:file:wine_nt_to_unix_file_name L"\\??\\F:\\cifs\\1Cv7.MD" -> "/home/guest/.wine/dosdevices/f:/cifs/1Cv7.MD" +warn:file:CreateFileW Unable to create file L"1Cv7.MD" (status c000000f) +trace:file:CreateFileW returning 0xffffffff Проблему нашёл: $ cat /home/guest/.wine/dosdevices/m:/CIIFS/1Cv7-1234567.MD cat: /home/guest/.wine/dosdevices/m:/CIIFS/1Cv7-1234567.MD: No such file or directory $ stat /home/guest/.wine/dosdevices/m:/CIIFS/1Cv7-1234567.MD File: `/home/guest/.wine/dosdevices/m:/CIIFS/1Cv7-1234567.MD' Size: 2658304 Blocks: 6144 IO Block: 16384 обычный файл Device: 17h/23d Inode: 372620 Links: 1 Access: (0660/-rw-rw----) Uid: ( 1000/ guest) Gid: ( 1000/ guest) Access: 2008-11-10 22:55:57.000000000 +0300 Modify: 2006-02-11 00:00:00.000000000 +0300 Change: 2008-11-11 10:15:46.000000000 +0300 $ ls -l /home/guest/.wine/dosdevices/m:/CIIFS/*.md -rw-rw---- 1 guest guest 2658304 2006-02-11 00:00 /home/guest/.wine/dosdevices/m:/CIIFS/1cv7-1234567.md -rw-rw---- 1 guest guest 2658304 2006-02-11 00:00 /home/guest/.wine/dosdevices/m:/CIIFS/1cv7.md Таким образом, stat срабатывает регистрово-независимо, в то время как открытие файла - уже нет. Для устранения проблемы нужно добавить в конфигурационный файл Самбы "case sensitive = yes" В новый winelocktest из 1.0.10 (запускать под пользователем) встроена проверка на case sensitive, просьба проверить на Ubuntu, что проблему он видит. (In reply to comment #26) > В новый winelocktest из 1.0.10 (запускать под > пользователем) встроена проверка на > case sensitive Да проверка проходит guest@multi:~/.wine/dosdevices$ guest@multi:~/.wine/dosdevices/p:$ winelocktest localhost being added to access control list Check P:\ in single user mode... cd: 260: can't cd to P:\ FAILED: Broken disabled case sensitivity. Set case sensitivity = yes in smb.conf. See http://bugs.etersoft.ru/show_bug.cgi?id=2822. (In reply to comment #25) > Для устранения проблемы нужно добавить в > конфигурационный файл Самбы > "case sensitive = yes" > case sensitivity = yes или case sensitive = yes ? testparm -v | grep case Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions default case = lower case sensitive = Auto preserve case = Yes short preserve case = Yes С выставленной case sensitive работает winelocktest проходит закрываю. Нашёл новую проблему: С выставленным на "Cellar case sensitive" теперь в Windows появилась аналогичная ошибка. "Ошибка загрузки метаданных" Есть подтверждение из заявки. Всётаки проблема не наша, а cononical: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/220658 Скорее не FIXED, а WONTFIX. Переоткрываю для тестирования: см. http://bugs.etersoft.ru/show_bug.cgi?id=2929#c15 см. http://bugs.etersoft.ru/show_bug.cgi?id=2220#c33 Надо протестировать etercifs-4.0.1, предварительно собрав его для Убунты и Слаквари. По etercifs-4.0.1 такая ситуация: если case sensitive = yes, то Windows клиент не открывает базы пишет ошибка загрузки метаданных, зато Linux клиент открывает без проблем. case sensitive = no, то ситуация наоборот W открывает, L - нет. (In reply to comment #36) > По etercifs-4.0.1 такая ситуация: > если > case sensitive = yes, то Windows клиент не открывает > базы пишет ошибка загрузки метаданных, > зато Linux клиент открывает без проблем. > case sensitive = no, то ситуация наоборот W > открывает, L - нет. > А если закомментировать строку, то есть оставить ее по умолчанию? По умолчанию - auto, то есть параметр закомментирован. "Be very careful with case sensitivity - it can break things" (In reply to comment #37) > А если закомментировать строку, то есть > оставить ее по умолчанию? По умолчанию - auto, > то есть параметр закомментирован. Проверьте это пожалуйста! Это должно быть проще, чем нам тут 1С на Убунту в виртуалке ставить и проверять. Да и надёжнее. Сначала восстанавливал работоспособность Ubuntu, получилось долго. (In reply to comment #37) > А если закомментировать строку, то есть > оставить ее по умолчанию? По умолчанию - auto, > то есть параметр закомментирован. > > "Be very careful with case sensitivity - it can break things" > С параметрами по умолчанию нормально открывая Воспроизводится неоднозначное поведение: samba-3.5.14-alt1.M60P.1 etercifs-5.4.1-alt1 При указанном в smb.conf case sensitive = no (отключена чувствительность в регистру) Следующий тест показывает разные результаты для Test 1 и Test 2, Test 1 и Test 3, хотя они должны быть одинаковы. #!/bin/sh echo ; echo "Test 1" rm -f winelock.TeST winelock.TEST && touch winelock.TeST && stat winelock.TEST && echo OK sleep 1 echo ; echo "Test 2 (with sleep)" rm -f winelock.TeST winelock.TEST && touch winelock.TeST && sleep 1 && stat winelock.TEST && echo OK sleep 1 echo ; echo "Test 3 (with rm *)" rm -f winelock.* && touch winelock.TeST && stat winelock.TEST && echo OK echo ; echo "Test 4 (with rm * and sleep)" rm -f winelock.* && touch winelock.TeST && sleep 1 && stat winelock.TEST && echo OK Я внёс дополнительные проверки в winelocktest для 2.0 Будем смотреть, что это за фокусы, или отложим? (В ответ на comment #40) > Воспроизводится неоднозначное поведение: > samba-3.5.14-alt1.M60P.1 > etercifs-5.4.1-alt1 > > При указанном в smb.conf > case sensitive = no > (отключена чувствительность в регистру) > > Следующий тест показывает разные результаты для Test 1 и Test 2, Test 1 и Test > 3, хотя они должны быть одинаковы. > > #!/bin/sh > > echo ; echo "Test 1" > rm -f winelock.TeST winelock.TEST && touch winelock.TeST && stat winelock.TEST > && echo OK > sleep 1 > > echo ; echo "Test 2 (with sleep)" > rm -f winelock.TeST winelock.TEST && touch winelock.TeST && sleep 1 && stat > winelock.TEST && echo OK > sleep 1 > > echo ; echo "Test 3 (with rm *)" > rm -f winelock.* && touch winelock.TeST && stat winelock.TEST && echo OK > > echo ; echo "Test 4 (with rm * and sleep)" > rm -f winelock.* && touch winelock.TeST && sleep 1 && stat winelock.TEST && > echo OK > > > Я внёс дополнительные проверки в winelocktest для 2.0 > > Будем смотреть, что это за фокусы, или отложим? А какие именно разные результаты? Вообще клиент кэширует атрибуты на 1 сек по умолчанию, что можно отключить с помощью: echo 0 > /proc/fs/cifs/LookupCacheEnabled Разобрался с проблемой. В первом тесте после того как удалялся winelock.TeST, winelock.TEST не находился с значился как NULL-dentry. При этом CIFS зачем-то выставлял d_time у этой dentry в текущее время (что ни NFS, ни AFS к примеру не делают). Буду разбираться дальше и писать в рассылку апстрим. (В ответ на comment #42) > Разобрался с проблемой. В первом тесте после того как удалялся winelock.TeST, > winelock.TEST не находился с значился как NULL-dentry. При этом CIFS зачем-то > выставлял d_time у этой dentry в текущее время (что ни NFS, ни AFS к примеру не > делают). Буду разбираться дальше и писать в рассылку апстрим. Продолжил разбираться с проблемой. Выяснил, что на Ubuntu 10.10 тест проходит в отличии от ALT Linux. После общения с разработчиком апстрим выяснилось, что обработка dentry кэша в CIFS вообще реализована непонятно как и требует более детального рассмотрения, что является предметом отдельной большой задачи. Отключения кэширования lookup запросов решает проблему на дистрибьютиве ALT Linux. Данную багу предлагаю считать исчерпаной. (В ответ на comment #43) ... > Отключения кэширования lookup запросов решает проблему на дистрибьютиве ALT > Linux. Данную багу предлагаю считать исчерпаной. Я не понял итога. Предлагается вручную отключать кэширование lookup? Или и без этого она не будет проявляться? Требуется подведение итога по баге. (В ответ на comment #45) > Требуется подведение итога по баге. Провёл дополнительное исследование. Выяснил, что при переходе из ядра v3.5 в v3.6 в коде VFS и соответствующим ему частям кода CIFS произошли изменения, исправляющие работу данного теста (поэтому у меня на Ubuntu и проходило - стояло ядро v3.6-rc5). Данную багу решено закрыть: до 3.6 ядра клиента не рекомендуется включать case sensitive = no в Samba. (В ответ на comment #47) > Данную багу решено закрыть: до 3.6 ядра клиента не рекомендуется включать case > sensitive = no в Samba. До ядра 3.6, рекомендуется делать echo 0 > /proc/fs/cifs/LookupCacheEnabled для работы с case sensitive = no на Samba. |