верси 1.0.9 при выполнениий wine --update вываливается в дебаг guest@multi:~ > wine --update Updating... Using WINEPREFIX=/home/guest/.wine Creating default file tree... Copying prepared tree from '/usr/bin/../share/wine/skel' ... WINE@Etersoft 1.0 Network (1.0.9), registration number is EEEE-C0DE. Legality check is available on the page http://sales.etersoft.ru/product/. Initialize registry and environments... err:service:RPC_MainLoop RpcServerUseProtseq failed with error 1703 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1703 err:mshtml:register_server typelib registration failed: 80029c4a fixme:ntdll:server_ioctl_file Unsupported ioctl 110018 (device=11 access=0 func=6 method=0) wine: Unhandled exception 0x000006ba at address 0x7edfca90 (thread 0009), starting debugger... Unhandled exception: 0x000006ba in 32-bit code (0x7edfcb12). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:7edfcb12 ESP:0032d5a4 EBP:0032d608 EFLAGS:00200246( - 00 - IZP1) EAX:7ede6cd9 EBX:7ee6aff4 ECX:00000000 EDX:00000000 ESI:0032d654 EDI:0032d654 Stack dump: 0x0032d5a4: 7011aba5 00184040 00183edc 00183f28 0x0032d5b4: 000006ba 00000000 00000000 7edfca90 0x0032d5c4: 00000000 000006ba 00183f54 0032d60c 0x0032d5d4: 70117c79 00183f54 0032d610 00000000 0x0032d5e4: 00183edc 7ea65ff4 701177dc 0032d60c 0x0032d5f4: 7ea65e40 0032d654 0032d730 7ea65ff4 Backtrace: =>1 0x7edfcb12 RaiseException+0x82() in kernel32 (0x0032d608) err:dbghelp:pe_load_dbg_file -Unable to peruse .DBG file "rpcrt4.dbg" ("") 2 0x7010a6d7 in rpcrt4 (+0xa6d7) (0x0032d768) 3 0x7ea57a81 OpenSCManagerW+0x61() in advapi32 (0x0032d7a8) 4 0x7e13d3b0 in qmgr (+0xd3b0) (0x0032d828) 5 0x7e65222c in setupapi (+0x2222c) (0x0032f908) 6 0x7e651565 in setupapi (+0x21565) (0x0032fb18) 7 0x7e65171e SetupInstallFromInfSectionW+0x8e() in setupapi (0x0032fb58) 8 0x7e653ddd InstallHinfSectionW+0x28d() in setupapi (0x0032fdd8) 9 0x7ec5fce4 main+0x414() in rundll32 (0x0032fed8) 10 0x7ec6044b in rundll32 (+0x1044b) (0x0032ff08) 11 0x7ee2da67 in kernel32 (+0x5da67) (0x0032ffe8) 12 0xb7eacc87 (0x00000000) 0x7edfcb12 RaiseException+0x82 in kernel32: movl 0xfffffffc(%ebp),%ebx Modules: Module Address Debug info Name (86 modules) PE 10000000-10007000 Deferred rpcltc1 PE 65340000-653d2000 Deferred oleaut32 PE 65f00000-65fc2000 Deferred ole32 PE 70100000-70153000 Export rpcrt4 ELF 7bf00000-7bf04000 Deferred <wine-loader> ELF 7df6f000-7dfae000 Deferred urlmon<elf> \-PE 7df80000-7dfae000 \ urlmon ELF 7dfae000-7e0b8000 Deferred shell32<elf> \-PE 7dfc0000-7e0b8000 \ shell32 ELF 7e0b8000-7e0da000 Deferred mpr<elf> \-PE 7e0c0000-7e0da000 \ mpr ELF 7e0da000-7e128000 Deferred wininet<elf> \-PE 7e0e0000-7e128000 \ wininet ELF 7e128000-7e144000 Export qmgr<elf> \-PE 7e130000-7e144000 \ qmgr ELF 7e144000-7e177000 Deferred uxtheme<elf> \-PE 7e150000-7e177000 \ uxtheme ELF 7e177000-7e1d0000 Deferred shlwapi<elf> \-PE 7e180000-7e1d0000 \ shlwapi ELF 7e1d0000-7e28f000 Deferred comctl32<elf> \-PE 7e1e0000-7e28f000 \ comctl32 ELF 7e28f000-7e2b7000 Deferred msvfw32<elf> \-PE 7e2a0000-7e2b7000 \ msvfw32 ELF 7e2b7000-7e2cc000 Deferred midimap<elf> \-PE 7e2c0000-7e2cc000 \ midimap ELF 7e2cc000-7e2e4000 Deferred msacm32<elf> \-PE 7e2d0000-7e2e4000 \ msacm32 ELF 7e319000-7e3d5000 Deferred libasound.so.2 ELF 7e3e9000-7e41f000 Deferred winealsa<elf> \-PE 7e3f0000-7e41f000 \ winealsa ELF 7e438000-7e482000 Deferred dsound<elf> \-PE 7e440000-7e482000 \ dsound ELF 7e482000-7e4e7000 Deferred quartz<elf> \-PE 7e490000-7e4e7000 \ quartz ELF 7e4e7000-7e506000 Deferred advpack<elf> \-PE 7e4f0000-7e506000 \ advpack ELF 7e506000-7e595000 Deferred winmm<elf> \-PE 7e510000-7e595000 \ winmm ELF 7e595000-7e5bc000 Deferred msacm32<elf> \-PE 7e5a0000-7e5bc000 \ msacm32 ELF 7e5f7000-7e60c000 Deferred lz32<elf> \-PE 7e600000-7e60c000 \ lz32 ELF 7e60c000-7e626000 Deferred version<elf> \-PE 7e610000-7e626000 \ version ELF 7e626000-7e68c000 Export setupapi<elf> \-PE 7e630000-7e68c000 \ setupapi ELF 7e68c000-7e6ab000 Deferred imm32<elf> \-PE 7e690000-7e6ab000 \ imm32 ELF 7e6d8000-7e6de000 Deferred libxfixes.so.3 ELF 7e6de000-7e6e8000 Deferred libxcursor.so.1 ELF 7e6e8000-7e6ef000 Deferred libxrandr.so.2 ELF 7e6ef000-7e6f8000 Deferred libxrender.so.1 ELF 7e6f8000-7e6fc000 Deferred libxinerama.so.1 ELF 7e6fc000-7e715000 Deferred libxcb.so.1 ELF 7e715000-7e718000 Deferred libxcb-xlib.so.0 ELF 7e718000-7e71c000 Deferred libxau.so.6 ELF 7e71c000-7e837000 Deferred libx11.so.6 ELF 7e837000-7e846000 Deferred libxext.so.6 ELF 7e846000-7e85f000 Deferred libice.so.6 ELF 7e85f000-7e868000 Deferred libsm.so.6 ELF 7e871000-7e875000 Deferred koi8-r.so ELF 7e87c000-7e90e000 Deferred winex11<elf> \-PE 7e890000-7e90e000 \ winex11 ELF 7e94c000-7e96d000 Deferred libexpat.so.1 ELF 7e96d000-7e999000 Deferred libfontconfig.so.1 ELF 7e999000-7e9ac000 Deferred libz.so.1 ELF 7e9ac000-7ea1b000 Deferred libfreetype.so.6 ELF 7ea1b000-7ea6b000 Export advapi32<elf> \-PE 7ea30000-7ea6b000 \ advapi32 ELF 7ea6b000-7eb06000 Deferred gdi32<elf> \-PE 7ea80000-7eb06000 \ gdi32 ELF 7eb06000-7ec4e000 Deferred user32<elf> \-PE 7eb20000-7ec4e000 \ user32 ELF 7ec4e000-7ec63000 Export rundll32<elf> \-PE 7ec50000-7ec63000 \ rundll32 ELF 7ec63000-7ec85000 Deferred libwine-etersoft.so.1 ELF 7edb8000-7eee5000 Export kernel32<elf> \-PE 7edd0000-7eee5000 \ kernel32 ELF 7ef1a000-7ef3f000 Deferred libm.so.6 ELF 7ef3f000-7f000000 Deferred ntdll<elf> \-PE 7ef50000-7f000000 \ ntdll ELF b7d50000-b7d56000 Deferred libxxf86vm.so.1 ELF b7d57000-b7d5b000 Deferred libdl.so.2 ELF b7d5b000-b7e8e000 Deferred libc.so.6 ELF b7e8e000-b7ea5000 Deferred libpthread.so.0 ELF b7fcf000-b7feb000 Deferred ld-linux.so.2 Threads: process tid prio (all id:s are in hex) 00000008 (D) c:\windows\system32\rundll32.exe 00000009 0 <== 00000010 00000011 0 Backtrace: =>1 0x7edfcb12 RaiseException+0x82() in kernel32 (0x0032d608) 2 0x7010a6d7 in rpcrt4 (+0xa6d7) (0x0032d768) 3 0x7ea57a81 OpenSCManagerW+0x61() in advapi32 (0x0032d7a8) 4 0x7e13d3b0 in qmgr (+0xd3b0) (0x0032d828) 5 0x7e65222c in setupapi (+0x2222c) (0x0032f908) 6 0x7e651565 in setupapi (+0x21565) (0x0032fb18) 7 0x7e65171e SetupInstallFromInfSectionW+0x8e() in setupapi (0x0032fb58) 8 0x7e653ddd InstallHinfSectionW+0x28d() in setupapi (0x0032fdd8) 9 0x7ec5fce4 main+0x414() in rundll32 (0x0032fed8) 10 0x7ec6044b in rundll32 (+0x1044b) (0x0032ff08) 11 0x7ee2da67 in kernel32 (+0x5da67) (0x0032ffe8) 12 0xb7eacc87 (0x00000000) err:service:RPC_MainLoop RpcServerUseProtseq failed with error 1703 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1703 err:service:RPC_MainLoop RpcServerUseProtseq failed with error 1703 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1703 err:service:RPC_MainLoop RpcServerUseProtseq failed with error 1703 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1703 Building local environment... Communication dlls installing... MSI installing... fixme:mscoree:GetCORSystemDirectory (0x7e5b27c0, 260, 0x7e5b29c8): stub! Successfully registered DLL /home/guest/.wine/dosdevices/c:/windows/system32/msxml3.dll Successfully registered DLL /home/guest/.wine/dosdevices/c:/windows/system32/msxml4.dll Successfully registered DLL /home/guest/.wine/dosdevices/c:/windows/system32/vbscript.dll Successfully registered DLL /home/guest/.wine/dosdevices/c:/windows/system32/jscript.dll guest@multi:~/wine_c/Program Files/1cv81/bin> wine 1cv8.exe err:service:RPC_MainLoop RpcServerUseProtseq failed with error 1703 err:wineboot:start_services_process Unexpected termination of services.exe - exit code 1703 fixme:heap:HeapSetInformation 0xcd0000 0 0x32fb7c 4 fixme:gdi:ExtCreatePen Hatches not implemented fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON) fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON) fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON)
Да, подтверждаю. Это происходит при выполнении rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 wine.inf
похожая ошибка возникала при установке indeo5 через ww. Тоже выдавала: fixme:ntdll:server_ioctl_file Unsupported ioctl 110018 (device=11 access=0 func=6 method=0) На все 100% не уверен, что там было именно device=11, func=6, но вроде как-раз такие значения там и были. Решалось это запуском программы устновки через winexp
Да, но Indeo тут ни при чём.
Похоже, что вылеты в дебаггер при тестировании многих программ в последнее время - следствие этой ошибки. В том числе и программ из "школьного" проекта.
падает при вызове NdrGetBuffer() из svcctl_OpenSCManagerW()
NdrGetBuffer() находится в rpcrt4.dll. По умолчанию она используется сторонняя. Если поставить встроенную, дебагер больше не вызывается
*** Bug 1698 has been marked as a duplicate of this bug. ***
а проблема в том, что комманда _Handle = MACHINE_HANDLEW_bind(MachineName); возвращает ноль Проблемы тут 2: 1)если MACHINE_HANDLEW_bind() возвращает 0, значит где-то внутри ошибка. 2)если она всё же возвращает 0, то это должно корректно обрабатываться.
Нет, ошибка в другом месте. _Handle имеет не нулевое значение, но почему-то отладочная конструкция FIXME("_StubMsg=%p, _StubMsg.BufferLength=%d _Handle=%d\n", _StubMsg, _StubMsg.BufferLength, _Handle); выводит, что _Handle=0: fixme:service:svcctl_OpenSCManagerW _StubMsg=0x32d790, _StubMsg.BufferLength=168 _Handle=0 Странно как-то
на первый взгляд, функции NdrGetBuffer() передаются вполне корректные значения
По-моему ошибка не в Wine, а как-раз в Виндовой дллке: http://support.microsoft.com/kb/835575
замена rpcrt4.dll на более новую (взята с ХР), ничего не меняет. Вообще в http://support.microsoft.com/kb/835575 функция NdrGetBuffer() при вылете в дебаг вызывается из Dsproxy.dll и, если я правильно понял, то они предлагают для решения проблемы загрузить новую Dsproxy.dll. Т.е всё дело в неправильном вызове NdrGetBuffer()
А вообще ошибка возникает даже в стандартных тестах для advapi32.dll ещё даже до первого теста. Cкорее всего ошибка в последних изменениях
До ошибки в rpcrt4.dll вызывается WaitNamedPipeW() c параметрами name = L"\\\\\\pipe\\svcctl" nTimeOut = 0x00000000 Эта функция возвращает FALSE. После чего идёт 4 освобождения памяти, и вылет в дебаг
WaitNamedPipeW() вызывает NtFsControlFile() которая возвращает код ошибки. NtFsControlFile() вызывает server_ioctl_file(), а она в свою очередь показывает ошибку: fixme:ntdll:server_ioctl_file Unsupported ioctl 110018 (device=11 access=0 func=6 method=0)
в "чистом" wine (запуск через wwo) данной ошибки не возникает. Скорее всего виноват какой-то наш патч.
при вызове NtFsControlFile(), в качестве параметра code передаётся FSCTL_PIPE_WAIT , которая формируется: #define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) причём константы: FILE_DEVICE_NAMED_PIPE = 11 METHOD_BUFFERED = 0 FILE_ANY_ACCESS = 0. Из дебага видно, что функция server_ioctl_file() распаковывает эти значения нормально, но правильными их не признаёт: fixme:ntdll:server_ioctl_file Unsupported ioctl 110018 (device=11 access=0 func=6 method=0)
Если использовать встроенную rpcrt4.dll, то функция уже другая: ioctl 110008 (device=11 access=0 func=2 method=0) , что соответствует комманде FSCTL_PIPE_LISTEN
Ошибка не в том, что мы вызываем непоодерживаемый ioctl, а скорее в параметрах. Если заменить функцию 8 на функцию 2 (которая точно ноддерживатеся), то опять получаем fixme:ntdll:server_ioctl_file Unsupported ioctl 110008 (device=11 access=0 func=2 method=0)
Функция server_ioctl_file() обращается к wineserver status = STATUS_NOT_SUPPORTED получается следующим образом: (status = wine_server_call( req )) далее ret = wait_reply( req ); далее read_reply_data( &req->u.reply, sizeof(req->u.reply) ); эта функция успешно записывает ответ сервера в буфер: ret = read( ntdll_get_thread_data()->reply_fd, buffer, size ) и возвращается. а далее wait_reply() возвращает какое-то значение внутри полученного ответа: return req->u.reply.reply_header.error; которое и считается как ошибка
возможно (но маловераятно), что ошибка в wineserver. Думаю, что в любом случае без трейса wineserver не обойтись
А вообще первый признак неправильной работы появляется ещё до вызова svcctl_OpenSCManagerW(). Неправильная работа начинается с : err:service:RPC_Init RpcServerUseProtseq failed with error 1703 а функция RpcServerUseProtseqEp() как-раз находится в rpcrt4.dll
Код ошибки 1703 соответствует RPC_S_PROTSEQ_NOT_SUPPORTED
Возможно эту операцию не стоит выполнять
заменил rpcrt.dll Сейчас в этом месте выдаёт ошибку 1766, что соответствует RPC_S_INTERNAL_ERROR, но тесты выполняются. Тестировал в ветках pure, master и eterhack - везде тесты выполняются. Вылета в дебаг нигде не происходит. При выполнении проваливаются 64 теста ( при запуске через wwo только 24). wwo использует версию wine-0.9.58 В git в ветке pure должна быть самая последняя Если у нас правильно работает git, то логично предположить, что бага где-то в патчах после версии 0.9.58 Но есть ещё одна бага: ведь при запуске через wine (WINE@Etersoft 1.0 SQL (1.0.8)) программа всё-таки вылетает в дебаг
Проверил стандартные тесты для advapi32 - service. При использовании встроенной rpcrt4.dll проваливается 12 тестов. При использовании нативной - 63 теста
Данная ошибка появляется только в WINE@Etersoft 1.0 SQL (1.0.8) В текущей версии (обновление через git 04.05.2008) данной ошибки нет.
Кусок ошибки при установке текущей версии: fixme:ntdll:server_ioctl_file Unsupported ioctl 110018 (device=11 access=0 func=6 method=0) err:module:DelayLoadFailureHook failed to delay load rpcrt4.dll.I_RpcExceptionFilter wine: Call from 0x7ee16ea0 to unimplemented function rpcrt4.dll.I_RpcExceptionFilter, aborting wine: Unimplemented function rpcrt4.dll.I_RpcExceptionFilter called at address 0x7ee16ea0 (thread 0009), starting debugger... WineDbg starting on pid 0008 Unhandled exception: unimplemented function rpcrt4.dll.I_RpcExceptionFilter called in 32-bit code (0x7ee16f16).
проблемы с rpcrt4.dll (при использовании сторонней) решаются заменой этой dll на нормальную. Нормальльную можно взять в /var/ftp/pvt/WINE tests/MS/dlls/
Перешли на использование вайновской rpcrt4.dll всегда.
При установке сегодняшней сборки опять валится в дебаг, но вроде помогла правка настройки для этой dll в winecfg. Вторая попытка апдейта закончилась более успешно.