Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3017 - Проблема при запуске 1С 7.7 с каталогом базы на CIFS-ресурсе   Make a simular bug
Summary: Проблема при запуске 1С 7.7 с каталогом базы на CIFS-ресурсе
Status: CLOSED FIXED
Alias: None
Product: CIFS@Etersoft
Classification: Продукты (Products)
Component: блокировки файлов и доступ (show other bugs)
Version: не указана
Hardware: PC All
: P3 major
Target Milestone: ---
Assignee: Konstantin Baev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3044
  Show dependency treegraph
 
In work:
Reported: 2008-11-26 03:38 MSK by Нечаев Максим
Modified: 2009-01-23 17:37 MSK (History)
7 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
README из исходников CIFS (35.04 KB, application/octet-stream)
2010-11-18 03:58 MSK, Konstantin Baev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Нечаев Максим 2008-11-26 03:38:55 MSK
Используемое программное обеспечение:
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
Comment 1 Нечаев Максим 2008-12-01 03:21:42 MSK
а в ответ тишина...

Пока нашли обходной путь для решения проблемы. Для этого использовали 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. Либо таки это какая-то ошибка в коде.
Comment 2 Konstantin Baev 2008-12-01 16:41:56 MSK
Вопрос интересный...

Думаю, копать надо примерно отсюда:

> Получаем первое невнятное сообщение: "Нет
> возможности создать файл
> W:\checknewwine\NEW_STRU\restruct.log"

Во-первых просьба отделу тестирования воспроизвести это.

Во-вторых, отличие linux-cifs от etercifs кроме номеров флагов - в отключении/неотключении флага /proc/fs/cifs/LinuxExtensionsEnabled интересно было бы отключить их на драйвере etercifs и сравнить результат. Ведь исходный код самого драйвера для ядра 2.6.24 одинаковый.
Comment 3 Andrey Vusik 2008-12-01 17:16:00 MSK
Создал папку на шаре.
Запускаю конфигуратор, не доходит до выбора фармата и падает.
Права при монтировании 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)


В локальной папке всё ок.
Comment 4 Andrey Vusik 2008-12-01 17:20:26 MSK
Уже бага есть. С установленным ie продолжение последовало. Хотя локально это происходило и без ie...
Comment 5 Andrey Vusik 2008-12-01 17:28:52 MSK
В общем, подтверждаю. Бага есть. Всё как и описал Максим.
Проверял на 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

Comment 6 Konstantin Baev 2008-12-01 19:24:22 MSK
Итак, пытаюсь воспроизвести:

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

Не воспроизвелось у меня, в-общем.
Comment 7 Maxim Stjazhkin 2008-12-01 23:16:05 MSK
(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
Comment 8 Vitaly Lipatov 2008-12-02 08:53:00 MSK
(In reply to comment #4)
> Уже бага есть. С установленным ie
> продолжение последовало. Хотя локально это
> происходило и без ie...
1. Просьба не упоминать IE, особенно в контексте 1С 7.7 
2. При падении программы достаточно приводить только Backtrace, причём ОДИН раз, и никаких Module  Address на 3 экрана!

Comment 9 Konstantin Baev 2008-12-02 13:42:03 MSK
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

Над проблемами пока думаем...
Comment 11 Konstantin Baev 2008-12-02 17:19:43 MSK
Я думаю, что в этой баге оказались 2 разные проблемы. Первая проблема в комментах с 1 до 6 - пусть обсуждается здесь и далее.

Вторая проблема - начиная с 7 коммента (она же обсуждается в ошибке #1185 коммент #27) будет обсуждаться в баге http://bugs.etersoft.ru/show_bug.cgi?id=3053

Иначе мы запутаемся тут.
Comment 12 Нечаев Максим 2008-12-12 04:48:05 MSK
Использование etercifs 4.0.0 с опцией forcemand проблему не решило. Все симптомы абсолютно те же самые.

По прежнему единственной работоспособной конфигурацией с wine 1.0.9 остается linux-cifs-3.4.1
Comment 13 Нечаев Максим 2008-12-22 06:35:30 MSK
Обновление до etercifs-4.0.1 как с использованием опции forcemand так и без оной проблему не решило.

Обновление до новой сборки wine 1.0.9 также проблему не решило.
Comment 14 Konstantin Baev 2009-01-23 17:20:43 MSK
Отвечаю на вопрос, поднимаемый в сообщениях 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.
Comment 15 Konstantin Baev 2009-01-23 17:28:18 MSK
(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
Comment 16 Konstantin Baev 2009-01-23 17:32:46 MSK
(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
Comment 17 Konstantin Baev 2009-01-23 17:37:18 MSK
Закрываю багу ибо она уже превратилась в химеру.
Если проблема проявится снова - просьба открыть новую багу. Извините за возможные неудобства.