Используемое программное обеспечение: Slackware 12.1 1С Предприятие 7.7 SQL (27-ой релиз) Wine@etersoft SQL 1.09 etercifs-3.8.0 (без использование dkms, брали тут http://updates.etersoft.ru/pub/Etersoft/WINE@Etersoft/1.0.9/CIFS/MOPSLinux/6.0/etercifs-3.8.0.tgz) Шаги для воспроизведения проблемы 1. wine установлен user@slack12_1:~$ wine --version WINE@Etersoft 1.0 SQL (1.0.9), registration number is XXXX-XXXX. Legality check is available on the page http://sales.etersoft.ru/product/. 2. etercifs установлен, собран для стандартного ядра slackware 12.1 и загружен: root@slack12_1:~# /etc/init.d/etercifs status CIFS module status: kernel module etercifs is loaded 3. samba запущена с конфигурацией: root@slack12_1:~# cat /etc/samba/smb.conf [global] workgroup = K76 netbios name = VMWARE-WINE109 server string = security = SHARE dns proxy = No [sharecifs] path = /srv/samba/sharecifs read only = No guest ok = Yes 4. В профиле пользователя user установлен Internet Explorer и 1С 7.7 5. Для пользователя user смонтирован локальный smb-ресурс: user@slack12_1:~$ sudo /usr/sbin/mount.cifs //127.0.0.1/sharecifs /home/user/.mnt/sharecifs -o guest,file_mode=0660,dir_mode=02770,uid=user,gid=users,iocharset=koi8-r И подключен в wine как диск w: user@slack12_1:~$ ls -l ~/.wine/dosdevices/w\: lrwxrwxrwx 1 user users 20 2008-11-25 13:43 .wine/dosdevices/w: -> ../../.mnt/sharecifs 6. Пытаемся создать чистую конфигурацию в 1С. Создаем новый каталог checknewwine на подключенном ресурсе: user@slack12_1:~$ mkdir ~/.wine/dosdevices/w\:/checknewwine Запускаем 1С77. Добавляем новую информационную базу с расположением в W:\checknewwine. Запускаем конфигуратор. Выбираем формат информационной базы DBF. Выбираем пункт меню "Конфигурация >> Открыть конфигурацию". Выбираем пункт меню "Файл >> Сохранить". Получаем первое невнятное сообщение: "Нет возможности создать файл W:\checknewwine\NEW_STRU\restruct.log" Накал нарастает, следующие сообщение: "Произошла невосстановимая ошибка работы с диском. Файлы базы данных не были полностью обновлены." Далее наступает апофеоз: "Произошла критическая ошибка! Программа будет остановлена" После чего 1С вылетает. При использовании локальной не сетевой директории пустая конфигурация создается нормально. Также проблема не наблюдается при использовании следующего программного обеспечения: Slackware 12.1 (используется ядро от Slackware 12.0 из-за проблем в сборке linux-cifs) 1С Предприятие 7.7 SQL (27-ой релиз) Wine@etersoft SQL 1.08 linux-cifs-1.48a
а в ответ тишина... Пока нашли обходной путь для решения проблемы. Для этого использовали linux-cifs-3.4.1. С этой версией пакета никаких проблем не наблюдается. См. также http://unixforum.org/index.php?showtopic=78712 И всё-таки с etercifs-3.8.0 определенно что-то не так: 1. Либо мы не умеем его готовить, хотя рекомендации соблюдались: http://www.etersoft.ru/news/56#cifsetersoft 2. Либо таки это какая-то ошибка в коде.
Вопрос интересный... Думаю, копать надо примерно отсюда: > Получаем первое невнятное сообщение: "Нет > возможности создать файл > W:\checknewwine\NEW_STRU\restruct.log" Во-первых просьба отделу тестирования воспроизвести это. Во-вторых, отличие linux-cifs от etercifs кроме номеров флагов - в отключении/неотключении флага /proc/fs/cifs/LinuxExtensionsEnabled интересно было бы отключить их на драйвере etercifs и сравнить результат. Ведь исходный код самого драйвера для ядра 2.6.24 одинаковый.
Создал папку на шаре. Запускаю конфигуратор, не доходит до выбора фармата и падает. Права при монтировании file_mode=0660,dir_mode=02770 [guest@lin-test BIN]$ ./1cv7s.exe wine: Unhandled page fault on read access to 0x00000190 at address 0x1f31a540 (thread 001e), starting debugger... 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:0030f9f4 EBP:0030fa64 EFLAGS:00010206( - 00 - RIP1) EAX:0030fa0c EBX:00000000 ECX:0000015c EDX:00000000 ESI:0000015c EDI:010b1c70 Stack dump: 0x0030f9f4: 2207a665 00000000 010b1c70 00436358 0x0030fa04: ffffffff 00fdeb70 5f4d1c58 5f4d1c58 0x0030fa14: 00fdeb70 00fd0198 00000010 010b1c70 0x0030fa24: 7bc32e71 0030fa58 220d9520 00000002 0x0030fa34: 2207c15b 010b1c70 00436358 ffffffff 0x0030fa44: 5f401809 5f4d0088 ffffffff 010b1c70 Backtrace: =>1 0x1f31a540 ?GetStringProp@CProfile7@@QBEABVCString@@H@Z() in frame (0x0030fa64) 2 0x2207b57d in seven (+0x7b57d) (0x0032fb00) 3 0x004093b7 in 1cv7s (+0x93b7) (0x0032fd88) 4 0x0040512b in 1cv7s (+0x512b) (0x00436298) 5 0x00f95918 (0x1f35b3d4) 6 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 (69 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 70100000-70153000 Deferred rpcrt4 PE 78000000-78044000 Deferred msvcrt ELF 7b800000-7b93a000 Deferred kernel32<elf> \-PE 7b820000-7b93a000 \ kernel32 ELF 7bc00000-7bcc4000 Deferred ntdll<elf> \-PE 7bc10000-7bcc4000 \ ntdll ELF 7bf00000-7bf03000 Deferred <wine-loader> ELF 7e626000-7e659000 Deferred uxtheme<elf> \-PE 7e630000-7e659000 \ uxtheme ELF 7e66c000-7e671000 Deferred libxfixes.so.3 ELF 7e671000-7e67a000 Deferred libxcursor.so.1 ELF 7e67a000-7e680000 Deferred libxrandr.so.2 ELF 7e680000-7e688000 Deferred libxrender.so.1 ELF 7e688000-7e68d000 Deferred libxxf86vm.so.1 ELF 7e68d000-7e690000 Deferred libxinerama.so.1 ELF 7e690000-7e6b0000 Deferred imm32<elf> \-PE 7e6a0000-7e6b0000 \ imm32 ELF 7e6b0000-7e6b5000 Deferred libxdmcp.so.6 ELF 7e6b5000-7e6b8000 Deferred libxau.so.6 ELF 7e6b8000-7e6d0000 Deferred libxcb.so.1 ELF 7e6d0000-7e6d2000 Deferred libxcb-xlib.so.0 ELF 7e6d2000-7e6d6000 Deferred libuuid.so.1 ELF 7e6d6000-7e6ed000 Deferred libice.so.6 ELF 7e6ed000-7e7dc000 Deferred libx11.so.6 ELF 7e7dc000-7e7ea000 Deferred libxext.so.6 ELF 7e7ea000-7e7f2000 Deferred libsm.so.6 ELF 7e80d000-7e8a8000 Deferred winex11<elf> \-PE 7e820000-7e8a8000 \ winex11 ELF 7e8c4000-7e91e000 Deferred shlwapi<elf> \-PE 7e8d0000-7e91e000 \ shlwapi ELF 7e91e000-7ea4b000 Deferred shell32<elf> \-PE 7e930000-7ea4b000 \ shell32 ELF 7ea4b000-7eb0d000 Deferred comctl32<elf> \-PE 7ea50000-7eb0d000 \ comctl32 ELF 7eb0d000-7eb61000 Deferred advapi32<elf> \-PE 7eb20000-7eb61000 \ advapi32 ELF 7eb61000-7eb81000 Deferred libexpat.so.1 ELF 7eb81000-7ebab000 Deferred libfontconfig.so.1 ELF 7ebab000-7ec2a000 Deferred libfreetype.so.6 ELF 7ec2a000-7ecc7000 Deferred gdi32<elf> \-PE 7ec40000-7ecc7000 \ gdi32 ELF 7ecc7000-7ee11000 Deferred user32<elf> \-PE 7ece0000-7ee11000 \ user32 ELF 7ee11000-7ee15000 Deferred koi8-r.so ELF 7ee35000-7ee7a000 Deferred libwine-etersoft.so.1 ELF 7ee81000-7ee95000 Deferred libz.so.1 ELF 7efbc000-7efe5000 Deferred libm.so.6 ELF b7d00000-b7d0c000 Deferred libnss_files.so.2 ELF b7d0d000-b7d11000 Deferred libdl.so.2 ELF b7d11000-b7e62000 Deferred libc.so.6 ELF b7e62000-b7e7a000 Deferred libpthread.so.0 ELF b7e7a000-b7fb0000 Deferred libwine.so.1 ELF b7fcc000-b7fe9000 Deferred ld-linux.so.2 Threads: process tid prio (all id:s are in hex) 0000000c 00000015 0 00000013 0 00000012 0 0000000e 0 0000000d 0 0000000f 00000014 0 00000011 0 00000010 0 0000001d (D) C:\Program Files\1Cv77\BIN\1cv7s.exe 0000001e 0 <== 0000001f 00000020 0 Backtrace: =>1 0x1f31a540 ?GetStringProp@CProfile7@@QBEABVCString@@H@Z() in frame (0x0030fa64) 2 0x2207b57d in seven (+0x7b57d) (0x0032fb00) 3 0x004093b7 in 1cv7s (+0x93b7) (0x0032fd88) 4 0x0040512b in 1cv7s (+0x512b) (0x00436298) 5 0x00f95918 (0x1f35b3d4) 6 0x1f318200 ?Attach@CProfile7@@UAEXPAV1@@Z() in frame (0x1f317c00) В локальной папке всё ок.
Уже бага есть. С установленным ie продолжение последовало. Хотя локально это происходило и без ie...
В общем, подтверждаю. Бага есть. Всё как и описал Максим. Проверял на lin-test@guest [guest@lin-test BIN]$ uname -a 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 [guest@lin-test BIN]$ rpm -qa | grep wine libwine-gl-1.0.10-alt0.M41.2.4 libwine-1.0.10-alt0.M41.2.4 wine-etersoft-sql-1.0.10-alt0.M41.1 wine-1.0.10-alt0.M41.2.4 [guest@lin-test BIN]$ rpm -qa etercifs etercifs-3.8.0-alt0.M41.4
Итак, пытаюсь воспроизвести: 0. шара такая: [sharewine] path = /home/kipruss/sharewine public = yes browseable = yes writable = yes guest ok = yes force user = kipruss 1. монтирую в соответствии с вышеописанным: $ sudo mount -t cifs //valhalla/sharewine /home/kipruss/.mnt/sharecifs -o file_mode=0660,dir_mode=02770,uid=kipruss,gid=kipruss,iocharset=utf8,guest 2. проверяю [kipruss@valhalla ~]$ ls -l ~/.wine/dosdevices/e\: lrwxrwxrwx 1 kipruss kipruss 1 Окт 14 16:49 /home/kipruss/.wine/dosdevices/e: -> / 3. в 1с указан каталог E:\home\kipruss\.mnt\sharecifs\ - там ничего нет 4. Запускаю [kipruss@valhalla BIN]$ ./1cv7s.exe выбираю базу, конфигуратор, выбираю "Файлы ...." затем открываю конфинурацию и жму сохранить. Получаю сообщение: "При сохранении метаданных будет произведен анализ сделанных изменений и, в случае необходимости, реорганизация информационной базы, что может потребовать достаточно продолжительного интервала времени! Выполнить сохранение метаданных?" Жму "Да" Получаю сообщение: "Отсутствует старый словарь метаданных! Продолжить?" Жму "Да" Получаю сообщение: "Анализ изменений в страктуре информации. Изменения в метаданных не вызвали изменений данных." Жму "Принять". Получаю сообщение: "Реорганизация информации закончена!" Жму "ОК" и выхожу. В консоли вижу лищь следующее: [kipruss@valhalla BIN]$ ./1cv7s.exe fixme:tab:TAB_SetCurFocus Should set input focus fixme:tab:TAB_SetCurFocus Should set input focus Все происходит быстро. Монтировал по-всякому, ничего не поймал. Локально также рабоает. система - Сизиф. [kipruss@valhalla ~]$ uname -r 2.6.27-std-def-alt2 [kipruss@valhalla ~]$ rpm -qa | grep wine wine-1.0.9-alt35 wine-etersoft-sql-1.0.9-alt10 libwine-1.0.9-alt35 [kipruss@valhalla ~]$ rpm -q etercifs etercifs-3.8.0-alt7 Установлен для моего пользователя в wine Internet Explorer 6.0 Не воспроизвелось у меня, в-общем.
(In reply to comment #2) > Во-вторых, отличие linux-cifs от etercifs кроме > номеров флагов - в отключении/неотключении > флага /proc/fs/cifs/LinuxExtensionsEnabled интересно было > бы отключить их на драйвере etercifs и сравнить > результат. Ведь исходный код самого > драйвера для ядра 2.6.24 одинаковый. > [root@power ~]# uname -r 2.6.18-92.1.18.el5PAE [root@power ~]# echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled [root@power ~]# mount -t cifs //power/sharewine /mnt/powershare -o user=maxim,pass=,file_mode=0660,dir_mode=02770,uid=500,gid=104,iocharset=utf8 Все повторяется, как в ошибке #1185 коммент #27 Что не так с ядром 2.6.18 ? И можно где-то подробнее почитать про опции: [root@power ~]# ls -la /proc/fs/cifs/ total 0 dr-xr-xr-x 2 root root 0 Гру 1 21:31 . dr-xr-xr-x 5 root root 0 Гру 1 21:31 .. -r--r--r-- 1 root root 0 Гру 1 21:31 cifsFYI -r--r--r-- 1 root root 0 Гру 1 21:31 DebugData -r--r--r-- 1 root root 0 Гру 1 21:31 Etersoft -r--r--r-- 1 root root 0 Гру 1 21:31 Experimental -r--r--r-- 1 root root 0 Гру 1 21:31 LinuxExtensionsEnabled -r--r--r-- 1 root root 0 Гру 1 21:31 LookupCacheEnabled -r--r--r-- 1 root root 0 Гру 1 21:31 MultiuserMount -r--r--r-- 1 root root 0 Гру 1 21:31 OplockEnabled -r--r--r-- 1 root root 0 Гру 1 21:31 SecurityFlags -r--r--r-- 1 root root 0 Гру 1 21:31 traceSMB
(In reply to comment #4) > Уже бага есть. С установленным ie > продолжение последовало. Хотя локально это > происходило и без ie... 1. Просьба не упоминать IE, особенно в контексте 1С 7.7 2. При падении программы достаточно приводить только Backtrace, причём ОДИН раз, и никаких Module Address на 3 экрана!
Created attachment 939 [details] README из исходников CIFS (In reply to comment #7) > И можно где-то подробнее почитать про > опции: > [root@power ~]# ls -la /proc/fs/cifs/ Ничего не могу посоветовать, кроме файла README из исходников. Вот ссылка на последний коммит из git разработчика CIFS Стива Френча: http://git.kernel.org/?p=linux/kernel/git/sfrench/cifs-2.6.git;a=blob;f=README;h=159912cf515549455ed5f579b8825d28962bd22e;hb=d61775a60719fb3d34498889d131c705374989df на всякий случай файл прилагаю. Возможно (но маловероятно), что для старых ядер это описание чуть отличается. Но у вас всегда есть возможность из git взять любую версию этого документа по тэгам. Читать после заголовка: Misc /proc/fs/cifs Flags and Debug Info Над проблемами пока думаем...
(In reply to comment #9) > > http://git.kernel.org/?p=linux/kernel/git/sfrench/cifs-2.6.git;a=blob;f=README;h=159912cf515549455ed5f579b8825d28962bd22e;hb=d61775a60719fb3d34498889d131c705374989df > Извините, ссылка не на тот файл. Вот верная: http://git.kernel.org/?p=linux/kernel/git/sfrench/cifs-2.6.git;a=blob;f=fs/cifs/README;h=a439dc1739b3ac7790dd9684cd0837298f5dd5a8;hb=d61775a60719fb3d34498889d131c705374989df Приложенный документ - верный.
Я думаю, что в этой баге оказались 2 разные проблемы. Первая проблема в комментах с 1 до 6 - пусть обсуждается здесь и далее. Вторая проблема - начиная с 7 коммента (она же обсуждается в ошибке #1185 коммент #27) будет обсуждаться в баге http://bugs.etersoft.ru/show_bug.cgi?id=3053 Иначе мы запутаемся тут.
Использование etercifs 4.0.0 с опцией forcemand проблему не решило. Все симптомы абсолютно те же самые. По прежнему единственной работоспособной конфигурацией с wine 1.0.9 остается linux-cifs-3.4.1
Обновление до etercifs-4.0.1 как с использованием опции forcemand так и без оной проблему не решило. Обновление до новой сборки wine 1.0.9 также проблему не решило.
Отвечаю на вопрос, поднимаемый в сообщениях 1-6: Тестировал на etercifs-4.1.1-alt1. Пытался просто запустить 1с7.7 с параметрами самбы пользователя: Если smb.conf выглядит так: [global] workgroup = K76 netbios name = VMWARE-WINE109 server string =. security = SHARE dns proxy = No [sharewine] path = /var/ftp/base7 read only = No guest ok = Yes то при любом монтировании шары, 1с сразу после запуска падает без единого сообщения. Если же smb.conf выглядит так (добавлена только строка с force user): [global] workgroup = K76 netbios name = VMWARE-WINE109 server string =. security = SHARE dns proxy = No [sharewine] path = /var/ftp/base7 read only = No guest ok = Yes force user = kipruss то 1с запускается нормально. Монтировал двояко: mount -t cifs //valhalla/sharewine /home/kipruss/base -o guest,file_mode=0660,dir_mode=02770,uid=kipruss,gid=kipruss mount -t cifs //valhalla/sharewine /home/kipruss/base -o noperm,pass= Итог: при данной конфигурации, видимо, недоставало force user.
(In reply to comment #14) > то при любом монтировании шары, 1с сразу > после запуска падает без единого > сообщения. Падает так: (кусок) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/kipruss/.wine/dosdevices/e:/home/kipruss/base warn:file:CreateFileW Unable to create file L"E:\\home\\kipruss\\base\\1Cv7.LCK" (status c0000034) trace:file:CreateFileW returning 0xffffffff trace:file:DeleteFileW L"E:\\home\\kipruss\\base\\1Cv7.LCK" trace:file:RtlDosPathNameToNtPathName_U (L"E:\\home\\kipruss\\base\\1Cv7.LCK",0x33fa48,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"E:\\home\\kipruss\\base\\1Cv7.LCK" 520 0x33f7dc (nil)) warn:file:wine_nt_to_unix_file_name L"1Cv7.LCK" not found in /home/kipruss/.wine/dosdevices/e:/home/kipruss/base Думаю, что не хватает прав на создание 1Cv7.LCK
(In reply to comment #1) > 1. Либо мы не умеем его готовить, хотя > рекомендации соблюдались: > http://www.etersoft.ru/news/56#cifsetersoft > Либо этот кусок документации появился после возникновения проблемы, либо вы все же не все рекомендации соблюдали. [sharewine] path = /var/local/share public = yes force user = wine force group = winetester writable = yes guest ok = yes Пример 12. Пример секции для сетевого ресурса в smb.conf
Закрываю багу ибо она уже превратилась в химеру. Если проблема проявится снова - просьба открыть новую багу. Извините за возможные неудобства.