Нет совместной работы по NFS при подключении одних пользователей терминально, других - по сети. Ubuntu Hardy LTS 8.04.x ядро на NFS-сервере и клиентах штатное, 2.6.24.x-generic и 2.6.24.x-server схема следующая: - часть клиентов с Thinstation через XDMCP/Windows через NX - часть клиентов с Ubuntu Hardy 8.04.x через NFS+LDAP если в базу 1С 7.7 зашли "терминальные" клиенты, то при попытке доступа к базе через NFS выдается сообщение, указанное в начале тикета: "Программа была завершена аварийно. Для восстановления индексных файлов запустите программу в монопольном режиме"
Удалось воспроизвести. Использовался как сервер ALTLinux, по nfs подключались с Ubuntu, как терминальные клиенты было подключение с Windows по nx. В итоге: - если первым заходит клиент по nfs, то все в порядке. - если первый клиент с nx (т.е. для по идее локальный вход получается), клиент с nfs уже войти не может - появляется ошибка приведенная выше.
Если на сервере для пользователей, подключающихся терминально, смонтировать базу так же как для остальных, то все равно возникает ошибка.
В общем, багу я повторил. Неплохо бы страничку было составить про неё на wiki Проблемы повторения: 1) # control portmap server 2) sgid не должен присутствовать в каталогах и файлах шары 3) nfslock должен быть запущен как на сервере, так и на клиентах. У меня никаких ошибок не выпадает, просто после выбора базы программа завершается вот с таким трейсом на WINEDEBUG=+file ... trace:file:FindNextFileW returning L"1Cv7.LCK" (L"") trace:file:CreateFileW L"X:\\base\\1Cv7.LCK" GENERIC_READ GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"X:\\base\\1Cv7.LCK",0x33f924,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\base\\1Cv7.LCK" 520 0x33f678 (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\X:\\base\\1Cv7.LCK" -> "/home/test/.wine/dosdevices/x:/base/1Cv7.LCK" warn:file:CreateFileW Unable to create file L"X:\\base\\1Cv7.LCK" (status c0000022) trace:file:CreateFileW returning 0xffffffff trace:file:DeleteFileW L"X:\\base\\1Cv7.LCK" trace:file:RtlDosPathNameToNtPathName_U (L"X:\\base\\1Cv7.LCK",0x33fa48,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\base\\1Cv7.LCK" 520 0x33f7dc (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\X:\\base\\1Cv7.LCK" -> "/home/test/.wine/dosdevices/x:/base/1Cv7.LCK" Да... NX тут не причём, проблема в NFS... Как вариант, стоит попробовать перенести общий каталог на третий хост... Костыль, но проверить стоит.
При поиске проблемы обнаружена странная ошибка: при локальном запуске 1С7.7 из-под разных пользователей не удаётся начать совместную работа. Второй пользователь закрывается с "ошибкой загрузки журнала регистрации". Версия wine: wine-etersoft-network-1.0.10-alt15.M41.16 wine-etersoft-1.0.10-alt22.M41.23 Я использую рабочий wine? Дело в том, что в каталоге дистрибутива лежит версия, с которой у меня тоже возникли проблемы: http://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/4.1/branch/files/i586/RPMS.nonfree/
Проблему нашёл. Жаль, что меня вчера никто не поправил. Второй пункт был ошибочным: 2) sgid не должен присутствовать в каталогах и файлах шары sgid _должен_ присутствовать для каталогов, но _не_должен_ присутствовать для файлов. Итак, всё завелось... Ошибка повторилась... НО, периодически нормальная конфигурация "ломается", и восстанавливается только копированием старой версии базы... Выглядит это так: 1) после завершения 1C перестаёт запускаться на базе - просто отваливается. Лог показывает, что не находится файл 1Cv7.LCK: ... trace:file:append_entry long L"SC13.CDX" short L"" mask L"1Cv7.LCK" trace:file:match_filename (L"SC13.CDX", L"1Cv7.LCK") trace:file:append_entry long L"dt657.dbf" short L"" mask L"1Cv7.LCK" trace:file:match_filename (L"dt657.dbf", L"1Cv7.LCK") trace:file:NtQueryDirectoryFile => c000000f (0) trace:file:CreateFileW L"X:\\1Cv7.LCK" GENERIC_READ GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"X:\\1Cv7.LCK",0x33f908,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\1Cv7.LCK" 520 0x33f64c (nil)) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/mastersin/.wine/dosdevices/x: warn:file:CreateFileW Unable to create file L"X:\\1Cv7.LCK" (status c0000034) trace:file:CreateFileW returning 0xffffffff trace:file:DeleteFileW L"X:\\1Cv7.LCK" trace:file:RtlDosPathNameToNtPathName_U (L"X:\\1Cv7.LCK",0x33fa2c,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\1Cv7.LCK" 520 0x33f7b0 (nil)) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/mastersin/.wine/dosdevices/x: 2) Затем, если создать этот файл вручную, после запуска программа уходит в backtrace: trace:file:append_entry long L"SC13.CDX" short L"" mask L"1Cv7.LCK" trace:file:match_filename (L"SC13.CDX", L"1Cv7.LCK") trace:file:append_entry long L"dt657.dbf" short L"" mask L"1Cv7.LCK" trace:file:match_filename (L"dt657.dbf", L"1Cv7.LCK") trace:file:NtQueryDirectoryFile => c000000f (0) trace:file:CreateFileW L"X:\\1Cv7.LCK" GENERIC_READ GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"X:\\1Cv7.LCK",0x33f908,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\1Cv7.LCK" 520 0x33f64c (nil)) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/mastersin/.wine/dosdevices/x: warn:file:CreateFileW Unable to create file L"X:\\1Cv7.LCK" (status c0000034) trace:file:CreateFileW returning 0xffffffff trace:file:DeleteFileW L"X:\\1Cv7.LCK" trace:file:RtlDosPathNameToNtPathName_U (L"X:\\1Cv7.LCK",0x33fa2c,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"X:\\1Cv7.LCK" 520 0x33f7b0 (nil)) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/mastersin/.wine/dosdevices/x: [mastersin@valhalla ~]$ cat problem.1c trace:file:match_filename (L"mspatcha.dll", L"winedbg.exe") trace:file:NtQueryDirectoryFile => c000000f (0) trace:file:GetLongPathNameW not found L"C:\\windows\\system32\\winedbg.exe"! trace:file:RtlGetFullPathName_U (L"C:\\windows\\system32\\winedbg.exe" 520 0x31e834 (nil)) Unhandled exception: page fault on read access to 0x00000190 in 32-bit code (0x1f31a540). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:1f31a540 ESP:0031f9e4 EBP:0031fa54 EFLAGS:00010206( - 00 - RIP1) EAX:0031f9fc EBX:00000000 ECX:0000015c EDX:c0000022 ESI:0000015c EDI:010eb350 Stack dump: 0x0031f9e4: 2207a665 00000000 010eb350 00436358 0x0031f9f4: ffffffff 01066688 5f4d1c58 5f4d1c58 0x0031fa04: 7bc33e81 01083460 0000000a 010eb350 0x0031fa14: 7bc3353f 0031fa48 220d9520 00000002 0x0031fa24: 2207c15b 010eb350 00436358 ffffffff 0x0031fa34: 5f401809 5f4d0088 ffffffff 010eb350 Backtrace: =>0 0x1f31a540 ?GetStringProp@CProfile7@@QBEABVCString@@H@Z() in frame (0x0031fa54) 1 0x2207b57d in seven (+0x7b57d) (0x0033faf0) 2 0x004093b7 in 1cv7s (+0x93b7) (0x0033fd78) 3 0x0040512b in 1cv7s (+0x512b) (0x00436298) 4 0x00f95858 (0x1f35b3d4) 5 0x1f318200 ?Attach@CProfile7@@UAEXPAV1@@Z() in frame (0x1f317c00) 0x1f31a540 ?GetStringProp@CProfile7@@QBEABVCString@@H@Z in frame: movl 0x34(%ecx),%eax Modules: Module Address Debug info Name (71 modules) PE 400000- 453000 Export 1cv7s PE 1f000000-1f013000 Deferred type32 PE 1f100000-1f12c000 Deferred dbeng32 PE 1f200000-1f22e000 Deferred br32 PE 1f300000-1f399000 Export frame PE 1f400000-1f464000 Deferred zlibeng PE 20000000-202b1000 Deferred bkend PE 21000000-2102b000 Deferred blang PE 22000000-22150000 Export seven PE 23000000-2302d000 Deferred txtedt PE 26000000-26058000 Deferred userdef PE 31000000-311c2000 Deferred 1crcrus PE 5f300000-5f329000 Deferred olepro32 PE 5f400000-5f4f2000 Deferred mfc42 PE 65340000-653d2000 Deferred oleaut32 PE 65f00000-65fc2000 Deferred ole32 PE 78000000-78044000 Deferred msvcrt ELF 7b800000-7b93d000 Deferred kernel32<elf> \-PE 7b820000-7b93d000 \ kernel32 ELF 7bc00000-7bccd000 Deferred ntdll<elf> \-PE 7bc10000-7bccd000 \ ntdll ELF 7bf00000-7bf05000 Deferred <wine-loader> ELF 7e343000-7e376000 Deferred uxtheme<elf> \-PE 7e350000-7e376000 \ uxtheme ELF 7e38a000-7e390000 Deferred libxfixes.so.3 ELF 7e390000-7e39a000 Deferred libxcursor.so.1 ELF 7e39a000-7e39e000 Deferred libxcomposite.so.1 ELF 7e39e000-7e3a6000 Deferred libxrandr.so.2 ELF 7e3a6000-7e3b0000 Deferred libxrender.so.1 ELF 7e3b0000-7e3b6000 Deferred libxxf86vm.so.1 ELF 7e3b6000-7e3ba000 Deferred libxinerama.so.1 ELF 7e3ba000-7e3db000 Deferred imm32<elf> \-PE 7e3c0000-7e3db000 \ imm32 ELF 7e3db000-7e3e1000 Deferred libxdmcp.so.6 ELF 7e3e1000-7e3e5000 Deferred libxau.so.6 ELF 7e3e5000-7e3fe000 Deferred libxcb.so.1 ELF 7e3fe000-7e403000 Deferred libuuid.so.1 ELF 7e403000-7e41c000 Deferred libice.so.6 ELF 7e41c000-7e539000 Deferred libx11.so.6 ELF 7e539000-7e549000 Deferred libxext.so.6 ELF 7e549000-7e552000 Deferred libsm.so.6 ELF 7e573000-7e60f000 Deferred winex11<elf> \-PE 7e580000-7e60f000 \ winex11 ELF 7e60f000-7e624000 Deferred keyboard.drv16.so PE 7e610000-7e624000 Deferred keyboard.drv16 ELF 7e678000-7e6d5000 Deferred shlwapi<elf> \-PE 7e690000-7e6d5000 \ shlwapi ELF 7e6d5000-7e864000 Deferred shell32<elf> \-PE 7e6f0000-7e864000 \ shell32 ELF 7e864000-7e92b000 Deferred comctl32<elf> \-PE 7e870000-7e92b000 \ comctl32 ELF 7e92b000-7e980000 Deferred advapi32<elf> \-PE 7e940000-7e980000 \ advapi32 ELF 7e980000-7e9a7000 Deferred libexpat.so.1 ELF 7e9a7000-7e9bd000 Deferred libz.so.1 ELF 7e9bd000-7e9ea000 Deferred libfontconfig.so.1 ELF 7e9ea000-7ea70000 Deferred libfreetype.so.6 ELF 7ea91000-7eb31000 Deferred gdi32<elf> \-PE 7eaa0000-7eb31000 \ gdi32 ELF 7eb31000-7ec7c000 Deferred user32<elf> \-PE 7eb50000-7ec7c000 \ user32 ELF 7ec7c000-7edbb000 Deferred libcrypto.so.7 ELF 7edbb000-7ee27000 Deferred libwine-etersoft.so.1 ELF 7efb6000-7efdf000 Deferred libm.so.6 ELF 7efed000-7f000000 Deferred libnatspec.so.0 ELF b7d7c000-b7d80000 Deferred libdl.so.2 ELF b7d80000-b7ed2000 Deferred libc.so.6 ELF b7ed2000-b7eea000 Deferred libpthread.so.0 ELF b7eea000-b8026000 Deferred libwine.so.1 ELF b8044000-b8048000 Deferred koi8-r.so ELF b8048000-b8065000 Deferred ld-linux.so.2 Threads: process tid prio (all id:s are in hex) 0000000c 0000003e 0 00000036 0 0000002e 0 00000026 0 0000001c 0 00000012 0 0000000e 0 0000000d 0 0000000f 00000014 0 00000011 0 00000010 0 00000015 00000042 0 0000003a 0 00000032 0 0000002a 0 00000022 0 00000021 0 00000018 0 00000017 0 00000016 0 00000019 0000001e 0 0000001b 0 0000001a 0 00000023 00000027 0 00000025 0 00000024 0 0000002b 0000002f 0 0000002d 0 0000002c 0 00000033 00000037 0 00000035 0 00000034 0 0000003b 0000003f 0 0000003d 0 0000003c 0 0000001f (D) D:\.wine\dosdevices\c:\Program Files\1Cv77\BIN\1cv7s.exe 00000046 0 <== 00000020 00000028 0 Backtrace: =>0 0x1f31a540 ?GetStringProp@CProfile7@@QBEABVCString@@H@Z() in frame (0x0031fa54) 1 0x2207b57d in seven (+0x7b57d) (0x0033faf0) 2 0x004093b7 in 1cv7s (+0x93b7) (0x0033fd78) 3 0x0040512b in 1cv7s (+0x512b) (0x00436298) 4 0x00f95858 (0x1f35b3d4) 5 0x1f318200 ?Attach@CProfile7@@UAEXPAV1@@Z() in frame (0x1f317c00)
Итак, проблема локализована. Во-первых, ошибка повторяется даже на одном хосте, когда один пользователь заходит из-под NFS, а второй локально. Во-вторых, удалённо (то есть через NFS) запустить 1С 7.7 удаётся только если владельцем файлов является запускающий пользователь. В-третьих, ошибка повторяется даже для двух удалённых пользователей. При этом симметрично. То есть первый зашёл, у второго - ошибка. Итого, NFSv3 в стандартной конфигурации вообще не работает. Все тесты проводились на ядре 2.6.25 из бранча 4.1. Думаю, нужно его обновить и перепроверить всё на другом ядре.
(In reply to comment #6) > Итого, NFSv3 в стандартной конфигурации > вообще не работает. NFSv4 проверялся?
WINE@Etersoft 1.0.11 eter1/eter1 Ошибок нет.
Принято. Проверялось в режиме 1 nx клиент с локальной базой, и клиент с базой по нфс