Summary: | 1C 7.7 SQL: Не подключиться, если в базе уже есть Windows-пользователи | ||
---|---|---|---|
Product: | CIFS@Etersoft | Reporter: | Глеб Кордюков <sonner> |
Component: | блокировки файлов и доступ | Assignee: | Konstantin Baev <kipruss> |
Status: | CLOSED WORKSFORME | QA Contact: | |
Severity: | blocker | ||
Priority: | P2 | CC: | lav, sin, stas |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | CentOS/RHEL/Scientific | ||
Whiteboard: | |||
Заявки RT: | 9280 | Связано с: | |
Дата напоминания: | |||
Bug Depends on: | 3053 | ||
Bug Blocks: | |||
Attachments: | Лог падения SELTA под Windows |
Description
Глеб Кордюков
2008-12-30 16:59:45 MSK
Пытаюсь воспроизвести - не получается... [root@valhalla 1C]# cat /proc/fs/cifs/LinuxExtensionsEnabled 1 [kipruss@valhalla mnt]$ rpm -qa | grep wine && rpm -q etercifs wine-1.0.9-alt37 wine-etersoft-sql-1.0.9-alt15 libwine-1.0.9-alt37 etercifs-4.0.1-alt3 Монтировал по-разному: cifsmount //server/base7 ~/base -o noperm,forcemand,file_mode=0660,dir_mode=0770 cifsmount //server/base7 ~/base -o noperm,forcemand sudo mount -t cifs //server/base7 ~/base -o noperm,forcemand И пробовал также без forcemand и вместо mount -t cifs пробовал mount.cifs, хотя это то же самое. Есть разница в группе, которой принадлежит файл 1Cv7.MD или (при использовании cifsmount) [kipruss@valhalla ~]$ ll base | grep 1Cv7.MD -rw-r----- 1 kipruss kipruss 13824512 Янв 6 15:42 1Cv7.MD или [kipruss@valhalla ~]$ ll base | grep 1Cv7.MD -rw-r----- 1 kipruss ftpadmin 13824512 Янв 6 15:42 1Cv7.MD Запускал 1с7.7 в Windows XP, затем в ALTLinux в wine и наоборот - ошибку не поймал ни разу. ------- Попутно поборолся с "Ошибкой загрузки метаданных". По адресу http://www.etersoft.ru/content/view/102/83/ есть такой текст * Q: При запуске 1С возникает ошибка “Ошибка загрузки метаданных”. * A: Проверьте права на чтение файла 1cv7.md. Также возможно он повреждён или отсутствует. На самом деле у нас почему-то как раз был файл 1cv7.md (возможно, после каких-то предыдущих экспериментов, возможно с отключенными LinuxExtensions - это догадки), но это не спасало, так как выяснилось при помощи WINEDIAG=+file, что требуется файл 1Cv7.MD, а поскольку LinuxExtensionsEnabled, то это важно. Так что надо бы и FAQ поправить. Багу сейчас повешу, если найду куда. Примечание: (кусок вывода запуска 1С7.7 с WINEDIAG=+file) trace:file:CreateFileW L"E:\\home\\kipruss\\base\\1Cv7.MD" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"E:\\home\\kipruss\\base\\1Cv7.MD",0x33f7fc,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"E:\\home\\kipruss\\base\\1Cv7.MD" 520 0x33f570 (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\E:\\home\\kipruss\\base\\1Cv7.MD" -> "/home/kipruss/.wine/dosdevices/e:/home/kipruss/base/1Cv7.MD" warn:file:CreateFileW Unable to create file L"E:\\home\\kipruss\\base\\1Cv7.MD" (status c000000f) Похоже не совсем в ту багу написал. Я реагировал на http://rt.etersoft.ru/Ticket/Display.html?id=9356, а не http://rt.etersoft.ru/Ticket/Display.html?id=9280 Разница в шаре. В-общем я тестировал на Самбе. (In reply to comment #2) > Похоже не совсем в ту багу написал. Я Надо бы тогда написать в ту багу, учтя, что регистр букв не должен ни на что влиять. > Разница в шаре. В-общем я тестировал на > Самбе. Да, возможно. Там наверняка Windows-сервер. Тогда не ясно, почему надо было тестировать с /proc/fs/cifs/LinuxExtensionsEnabled = 1 (In reply to comment #3) > (In reply to comment #2) > > Похоже не совсем в ту багу написал. Я > Надо бы тогда написать в ту багу, учтя, что > регистр букв не должен ни на что влиять. > > > Разница в шаре. В-общем я тестировал на > > Самбе. > Да, возможно. Там наверняка Windows-сервер. > Тогда не ясно, почему надо было тестировать > с > /proc/fs/cifs/LinuxExtensionsEnabled = 1 > 1. Написал ссылку в багу 3053 2. Насчёт регистра файла md - я уже и сам не могу это воспроизвести. Возможно, это что-то локальное тут у нас. Предлагаю пока переключиться на более важные вещи. 3. На виндовой шаре тоже проблема не воспроизводится (In reply to comment #1) > Пытаюсь воспроизвести - не получается... Суть была в том, что 1С подключалась к SQL-серверу. Ты проверял без этого, поэтому и не воспроизвелось. ... > Попутно поборолся с "Ошибкой загрузки > метаданных". По адресу ... > На самом деле у нас почему-то как раз был > файл 1cv7.md (возможно, после каких-то > предыдущих экспериментов, возможно с > отключенными LinuxExtensions - это догадки), но это > не спасало, так как выяснилось при помощи > WINEDIAG=+file, что требуется файл 1Cv7.MD, а > поскольку LinuxExtensionsEnabled, то это важно. Так Не может быть важно, поскольку для Wine (если нет баги с cifs + stat, уже закрытой в 4.0.1) безразличен регистр. (In reply to comment #5) > Суть была в том, что 1С подключалась к > SQL-серверу. Ты проверял без этого, поэтому и > не воспроизвелось. А в случае работы с SQL-сервером тоже надо монтировать шару через cifs? Я этого не понимаю. (In reply to comment #6) > А в случае работы с SQL-сервером тоже надо > монтировать шару через cifs? Я этого не > понимаю. Всё очень просто: в SQL хранятся таблицы. Но ещё ещё файл MD, содержащий формы интерфейса и отчётов, программные модули. Не говоря о том, что SYSLOG (журнал событий) тоже в файлах остаётся. Таким образом при работе через SQL только большинство таблиц в базе, всё остальное на месте и должно разделяться через файлы. Ещё у меня есть предположение, что тот способ, которым вы проверяете, что 1С работает, отличается от того, в котором работают клиенты. 8-го будем проверять. (In reply to comment #7) > Ещё у меня есть предположение, что тот > способ, которым вы проверяете, > что 1С работает, отличается от того, в > котором работают клиенты. > 8-го будем проверять. > В случае SQL-сервера мы и не можем ничего проверить по причине отсутствия SQL-сервера. (In reply to comment #8) > В случае SQL-сервера мы и не можем ничего > проверить по причине отсутствия SQL-сервера. Ну поставить SELTA и PostgreSQL не так сложно. (In reply to comment #9) > (In reply to comment #8) > > В случае SQL-сервера мы и не можем ничего > > проверить по причине отсутствия SQL-сервера. > Ну поставить SELTA и PostgreSQL не так сложно. > Пробую ставить SELTA. Пока никак. Версии пробовал 1.0.4 и 1.0.5 [kipruss@valhalla /]$ rpm -qa | grep wine wine-etersoft-sql-1.0.9-alt15 libwine-1.0.9-alt39 wine-1.0.9-alt39 [kipruss@valhalla Downloads]$ wine start selta5.msi [kipruss@valhalla Downloads]$ fixme:advapi:RegisterEventSourceA ((null),"MsiInstaller"): stub fixme:advapi:RegisterEventSourceW (L"",L"MsiInstaller"): stub fixme:advapi:ReportEventA (0xcafe4242,0x0001,0x0000,0x000003f5,(nil),0x0006,0x00000000,0x33e4b0,(nil)): stub fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x000003f5,(nil),0x0006,0x00000000,0x12f2d0,(nil)): stub err:eventlog:ReportEventW L"=====================================================\r\nException code: C0000005 ACCESS_VIOLATION\r\nFunction: 0x0\r\n=====================================================\r\n\r\nRegisters:\r\nEAX:00000000 EBX:004BEF2D ECX:0033E4EC EDX:7BC96568 ESI:0033E674 EDI:00000000\r\nCS:EIP:0073:00000000 "... err:eventlog:ReportEventW L"" err:eventlog:ReportEventW L"" err:eventlog:ReportEventW L"" err:eventlog:ReportEventW L"" err:eventlog:ReportEventW L"" fixme:advapi:DeregisterEventSource (0xcafe4242) stub [kipruss@valhalla Downloads]$ содержимое selta.log === Verbose logging started: 13.01.2009 19:44:37 Build type: SHIP ANSI 2.00.2600.02 Calling process: C:\windows\system32\msiexec.exe === ===================================================== Exception code: C0000005 ACCESS_VIOLATION Function: 0x0 ===================================================== Registers: EAX:00000000 EBX:004BEF2D ECX:0033E4EC EDX:7BC96568 ESI:0033E674 EDI:00000000 CS:EIP:0073:00000000 SS:ESP:007B:0033E4FC EBP:00000000 DS:007B ES:007B FS:0033 GS:003B Flags:00010202 Call stack: Address Frame === Verbose logging stopped: 13.01.2009 19:44:37 === Установил SELTA, Postgres «Доступ к базе данных на сервере возможен только из одного каталога информационной базы!» у меня появляется без всякого монтирования по cifs. Все - локально. Вывод strace большой слишком, если надо перешлю по почте. Пока посмотрю сам. (In reply to comment #12) Резюмирую сегодняшние результаты тестирования: Шара - на Linux-компьютере, расшарена по Samba. Конфиг: [baseselta] path = /home/kipruss/baseselta public = yes browseable = yes writable = yes guest ok = yes force user = kipruss в [global] все стандартно. Линукс-клиент с 1С7.7, SELTA, Postgres Windows-клиент с 1С7.7, SELTA 1. Запуск L -> W результат: Доступ к базе данных на сервере возможен только из одного каталога информационной базы 2. Запуск W -> L тут очень интересно всё. при первом запуске в линуксе "Ошибка загрузки метаданных" при втором 1С просто падает без всяких сообщений при третьем "Ошибка при запуске журнала регистрации" И после этого в Винде пропадает информация о пользователе. Список активных пользователей пуст Я это три раза проверил подрял. Именно такая последовательность! TODO: Копать глубже с strace, например. Примечание: Линуксовый клиент обращается к каталогу базы напрямую, локально, без монтирования по cifs. TODO: Смонтировать по cifs и посмотреть. Также посмотреть на 2 линукс-клиента как локально, так и через cifs. (In reply to comment #13) > Примечание: Линуксовый клиент обращается к > каталогу базы напрямую, локально, без > монтирования по cifs. Если при этом к базе идёт и со стороны Самбы, то все результаты теряют значимость в связи с неверной конфигурацией стенда. Протестировал заново. Монтировал свою шару так: (первый случай) cifsmount //valhalla/baseselta ~/base -o noperm,file_mode=0660,dir_mode=0770 затем, во втором и третьем случае, добавлял forcemand и nounix (учитывая сказанное в http://wiki.office.etersoft.ru/testing/cifs/dostup ) Запуск L -> W (во всех случаях монтирования) Результат: все нормально, видны оба пользователя и там и тут. Запуск W -> L (первый случай) Результат: 1с запускается, но в Виндовс не видно пользователя Linux в списке активных пользователей. Запуск W -> L (первый случай {forcemand}) Результат: все нормально, видны оба пользователя и там и тут. Запуск W -> L (первый случай {nounix}) Результат: Ошибка загрузки метаданных Вывод: с параметром nounix я не был бы так уверен. А вот forcemand в моем случае помогает. ==== Дотестировался до того, что на винде перестала запускаться SELTA. Подпись ошибки: AppName: selta.exe AppVer: 0.0.0.0 ModName: msvcrt.dll ModVer: 7.0.2600.2180 Offset: 000360c1 Если надо, заведу отдельную багу. Created attachment 1024 [details]
Лог падения SELTA под Windows
Переустановка SELTA не помогает Обращаю внимание на строки, касающиеся файла 1Cv7.LCK в логах, приведенных в http://rt.etersoft.ru/Ticket/Attachment/136327/63777/wine.log к тикету http://rt.etersoft.ru/Ticket/Display.html?id=9280 trace:file:wine_nt_to_unix_file_name L"\\??\\E:\\temp\\TradeCadCamWrk\\usr-kotrehov\\1Cv7.LCK" -> "/home/gorbuntsov/.wine/dosdevices/e:/temp/TradeCadCamWrk/usr-kotrehov/1Cv7.LCK" warn:file:CreateFileW Unable to create file L"E:\\temp\\TradeCadCamWrk\\usr-kotrehov\\1Cv7.LCK" (status c0000022) (In reply to comment #16) > Created an attachment (id=1024) [details] > Лог падения SELTA под Windows SELTA стала падать только под Windows? Думаю, надо завести багу, если переустановка не помогает, и решить её со Стасом. Не может быть из-за вируса? (In reply to comment #19) > Не может быть из-за вируса? > Вряд ли. Windows поставили пару дней назад и используется она только для запуска на рей rect и 1c. Сейчас проверяю возможный конфликт rect с SELTA. (In reply to comment #19) > > Если надо, заведу отдельную багу. > Завел. http://bugs.etersoft.ru/show_bug.cgi?id=3253 С проблемами SELTA - туда. |