Summary: | Ошибка инициализации на Ubuntu 12.04 | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Константин Кондратюк <kondratyuk> |
Component: | Установка программ / MSI | Assignee: | 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
Подтверждается на текущем 2.0-testing: WINE@Etersoft Network 2.0.1-eter2.9/6 Установка-удаление ванильного wine не помогла, хотя и вытянула с десяток пакетов по зависимостям. На vbox на виртуалке "Ubuntu 12.04" работает корректно. То есть на данный момент у нас есть воспроизведение только на машине пользователя. При запуске через 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 После # 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 #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" )) { > 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 #6) ... > Виртуалка (AMD Phenom(tm) II X6 1075T Processor): Вот тут очень похожую проблему человек решил даунгрейдом 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". Тоже не помогло. > Кусок кода:
> /* HACK for eterbug #5671 */
> if (strcasestr( __wine_main_argv[0], "sbis" ))
> {
Добавил новую функцию для проверки имени процесса. Функция реализована без использования strcasestr. Использовал в данной проверке эту функцию.
Проблема решена. * Срд Май 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) Отписался по заявкам. Проблема всё ещё с нами. Необходимо организовать виртуалку с Ubuntu 12.04 на процессоре Intel. Проблема всё еще есть. 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 Заработало! :) после того как написал здесь и в суппорт... чудесным образом заработало. спасибо такая же проблема, стоит 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 ] забыл указать, если важно, WINE@Etersoft 2.0 SQL Пожалуйста, проверьте на последних сборках (мы выпустили версию 2.0.2) Если проблема останется, будем обсуждать возможность удалённого подключения к вашему серверу. Проблема была с использованием оптимизированной stricmp, пересобрали без этого. |