Bug 8453

Summary: Ошибка инициализации на Ubuntu 12.04
Product: WINE@Etersoft Reporter: Константин Кондратюк <kondratyuk>
Component: Установка программ / MSIAssignee: Vitaly Lipatov <lav>
Status: CLOSED FIXED QA Contact: Константин Кондратюк <kondratyuk>
Severity: normal    
Priority: P4 CC: admin, amorozov, baraka, kondratyuk, lav, O.Vasyliev, serhio, svzhu
Version: 2.0   
Target Milestone: ---   
Hardware: PC   
OS: Ubuntu   
Whiteboard:
Заявки RT: 24541, 24548, 24593, 24606 Связано с:
Дата напоминания:

Description Константин Кондратюк 2012-05-14 10:23:45 MSK
Ubuntu 12.04 i686

$ wine-glibc --version
WINE@Etersoft Network 2.0.1-eter2/1

Происходит падение при установке Windows Scripting:
+ echo Windows Scripting installing...
+ tee -a /home/etersoft/.wine/install.log
Windows Scripting installing...
+ WINDOWS_VERSION=win98 /usr/bin/wine-glibc /home/etersoft/.wine/dosdevices/c:/windows/downloads/WindowsXP-Windows2000-Script56-KB917344-x86-enu.exe /Q:A
wine: Unhandled page fault on read access to 0xffffffff at address 0xb75cc355 (thread 002e), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 45 84") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
Comment 1 Константин Кондратюк 2012-05-14 10:38:49 MSK
Подтверждается на текущем 2.0-testing:
WINE@Etersoft Network 2.0.1-eter2.9/6

Установка-удаление ванильного wine не помогла, хотя и вытянула с десяток пакетов по зависимостям.
Comment 2 Константин Кондратюк 2012-05-14 10:39:42 MSK
На vbox на виртуалке "Ubuntu 12.04" работает корректно.
То есть на данный момент у нас есть воспроизведение только на машине пользователя.
Comment 3 Vitaly Lipatov 2012-05-14 18:17:15 MSK
При запуске через winedbg notepad получаем
err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\system32\\notepad.exe" failed, status c0000022

После этого отладчик запускается с очень странными параметрами.
WineDbg starting on pid 0014
trace:file:RtlGetCurrentDirectory_U (520 0x113680)
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\windows\\system32\\Process_00000014",0x32e958,(nil),(nil))
trace:file:RtlGetFullPathName_U (L"C:\\windows\\system32\\Process_00000014" 520 0x32e6d8 (nil))
trace:file:wine_nt_to_unix_file_name L"\\windows\\system32\\Process_00000014" not found in /home/etersoft/.wine-lav/dosdevices/c:/windows/system32
trace:file:WriteFile 0x13 0x7e773bc0 30 0x32fa3c (nil)
couldn't load main module (2)
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\windows\\system32\\DLL_7eb00000",0x32e958,(nil),(nil))
trace:file:RtlGetFullPathName_U (L"C:\\windows\\system32\\DLL_7eb00000" 520 0x32e6d8 (nil))
trace:file:wine_nt_to_unix_file_name L"\\windows\\system32\\DLL_7eb00000" not found in /home/etersoft/.wine-lav/dosdevices/c:/windows/system32
trace:file:RtlDosPathNameToNtPathName_U (L"C:\\windows\\system32\\DLL_7ef20000",0x32e958,(nil),(nil))
trace:file:RtlGetFullPathName_U (L"C:\\windows\\system32\\DLL_7ef20000" 520 0x32e6d8 (nil))
trace:file:wine_nt_to_unix_file_name L"\\windows\\system32\\DLL_7ef20000" not found in /home/etersoft/.wine-lav/dosdevices/c:/windows/system32
trace:file:WriteFile 0x13 0x7e773bc0 35 0x32fa3c (nil)
Process of pid=0014 has terminate
Comment 4 Vitaly Lipatov 2012-05-14 18:24:02 MSK
После
# echo 0 > /proc/sys/kernel/yama/ptrace_scope 

(увидев в dmesg
[269830.548688] ptrace of non-child pid 13329 was attempted by: wineserver (pid 12361)

)

Картина изменилась:
wine: Unhandled page fault on read access to 0xffffffff at address 0xb7508355 (thread 0036), starting debugger...
Unhandled exception: page fault on read access to 0xffffffff in 32-bit code (0xb7508355).
...
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:b7576355 ESP:0032d8d4 EBP:b74426c0 EFLAGS:00210246(  R- --  I  Z- -P- )
 EAX:001103ed EBX:b75e8ff4 ECX:00000000 EDX:00000004
 ESI:7efa5fe0 EDI:0032da50
...
Backtrace:
=>0 0xb7508355 in libc.so.6 (+0x12e355) (0xb73d46c0)
  1 0x7ef60970 in ntdll (+0x4096f) (0x0032da9c)
  2 0xb75a14e3 in libwine.so.1 (+0x64e2) (0x0032dacc)
  3 0x7dcb4b75 in rpcrt4 (+0x44b74) (0x0032daec)
  4 0xb7703e39 in ld-linux.so.2 (+0xee38) (0xbfa82644)
  5 0xb7703f84 in ld-linux.so.2 (+0xef83) (0x00000001)
  6 0xb7707f96 in ld-linux.so.2 (+0x12f95) (0x0032dc0c)

Пока меня смущает команда, на которой всё так навернулось:
0xb7508355: movq        0x10(%esp),%mm1
Comment 5 Vitaly Lipatov 2012-05-14 19:41:09 MSK
(В ответ на comment #4)
> После
> # echo 0 > /proc/sys/kernel/yama/ptrace_scope 
> 
> (увидев в dmesg
> [269830.548688] ptrace of non-child pid 13329 was attempted by: wineserver (pid
> 12361)
Это была отдельная проблема с запуском отладчика в Ubuntu 12.04 


> 0xb7508355: movq        0x10(%esp),%mm1
Вот что с запуском с отладочной информацией:
Backtrace:

=>0 0xb75b7355 __strcasestr_sse42_nonascii+0x55(s1="C:\WindowsXP-Windows2000-Script56-KB917344-x86-enu.exe", s2="sbis") [/build/buildd/eglibc-2.15/string/../sysdeps/x86_64/multiarch/strcasestr-nonascii.c:43] in libc.so.6 (0xb74836c0)
  1 0x7e22467a set_wm_hints+0x79(display=0x7d61d398, data=0x134cd0) [/home/etersoft/wine-etersoft-2.0.1/dlls/winex11.drv/window.c:1378] in winex11 (0x0032e9ac)
  2 0x7e224bbe create_whole_window+0x25d(display=0x7d61d398, data=0x134cd0) [/home/etersoft/wine-etersoft-2.0.1/dlls/winex11.drv/window.c:1953] in winex11 (0x0032f25c)

Кусок кода:
        /* HACK for eterbug #5671 */
        if (strcasestr( __wine_main_argv[0], "sbis" ))
        {
Comment 6 Vitaly Lipatov 2012-05-14 22:01:56 MSK
> if (strcasestr( __wine_main_argv[0], "sbis" ))
Пришли к выводу, что не надо использовать strcasestr (нестандартную линуксовую функцию) в этих модулях.

С другой стороны, проблема какая-то более общая. Перенос в другие модули вызова этой функции не особо много дал.

Проблема воспроизводится и при запуска 7-zip (7zFM.exe).

У нас на виртуалке не воспроизводится.
Проблемная машина (Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz):
$ uname -a
Linux YAR-ADM 3.2.0-24-generic-pae #37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012 i686 i686 i386 GNU/Linux

Виртуалка ():
$ uname -a
Linux YAR-ADM 3.2.0-24-generic-pae #37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012 i686 athlon i386 GNU/Linux

libc6-2.15-0ubuntu10
Comment 7 Vitaly Lipatov 2012-05-14 22:06:41 MSK
(В ответ на comment #6)
...
> Виртуалка (AMD Phenom(tm) II X6 1075T Processor):
Comment 8 Александр Морозов 2012-05-14 22:12:58 MSK
Вот тут очень похожую проблему человек решил даунгрейдом glibc:
https://bbs.archlinux.org/viewtopic.php?id=133392

Вот ещё похожая проблема:
https://bugzilla.redhat.com/show_bug.cgi?id=799581
Тут дело в выравнивании стека.

Попробовал на удачу добавить в call_process_entry после "subl $12,%esp\n\t" такое:
"subl $0x20,%esp\n\t"
"andl $0xfffffff0,%esp\n\t"
Не помогло. Также пробовал удалять "subl $12,%esp\n\t". Тоже не помогло.
Comment 9 Александр Морозов 2012-05-15 22:37:27 MSK
> Кусок кода:
>         /* HACK for eterbug #5671 */
>         if (strcasestr( __wine_main_argv[0], "sbis" ))
>         {

Добавил новую функцию для проверки имени процесса. Функция реализована без использования strcasestr. Использовал в данной проверке эту функцию.
Comment 10 Vitaly Lipatov 2012-05-17 19:51:22 MSK
Проблема решена.
* Срд Май 16 2012 Etersoft Builder <builder@etersoft.ru> 2.0.1-alt2.12
- add special function for checking process name (eterbug #8453)
- use etercheck_process_name (eterbug #8453)
Comment 11 Константин Кондратюк 2012-05-18 09:28:32 MSK
Отписался по заявкам.
Comment 12 Денис Баранов 2012-05-18 15:49:25 MSK
Проблема всё ещё с нами.
Необходимо организовать виртуалку с Ubuntu 12.04 на процессоре Intel.
Comment 14 250ml 2012-05-22 13:02:53 MSK
Проблема всё еще есть. Ubuntu 12.04. 
Сборку Etersoft качал состоянием на 21 мая 2012.  
Network2.0-testing и Local2.0-testing
Стандартный сценарий: установка без ошибок, команда wine: Unhandled page fault on read access to 0x.......

Пробовал на двух ПК с процессорами :

model name : Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
и
model name : Intel(R) Core(TM) i3-2105 CPU @ 3.10GHz
Comment 15 250ml 2012-05-22 18:40:32 MSK
Заработало! :)
после того как написал здесь и в суппорт... чудесным образом заработало. 
спасибо
Comment 16 Sergey 2012-05-31 12:49:04 MSK
такая же проблема, стоит ubuntu 12.04, установка проходит без проблем, после запуска, ошибка 

Windows Scripting installing...
wine: Unhandled page fault on read access to 0xffffffff at address 0xb7558355 (thread 0034), starting debugger...
err:seh:start_debugger Couldn't start debugger ("winedbg --auto 51 84") (2)
Read the Wine Developers Guide on how to set up winedbg or another debugger
Checking /home/xxx/.wine/dosdevices/c:/windows/system32/wscript.exe:   [ ERROR ]
Comment 17 Sergey 2012-05-31 12:59:14 MSK
забыл указать, если важно, WINE@Etersoft 2.0 SQL
Comment 18 Vitaly Lipatov 2012-06-05 12:18:03 MSK
Пожалуйста, проверьте на последних сборках (мы выпустили версию 2.0.2)
Если проблема останется, будем обсуждать возможность удалённого подключения к вашему серверу.
Comment 19 Vitaly Lipatov 2012-08-07 21:30:16 MSK
Проблема была с использованием оптимизированной stricmp, пересобрали без этого.