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

Отработанное время:
Продуктивное время:
Bug 2662 - Не работает wine --update в eter25   Make a simular bug
Summary: Не работает wine --update в eter25
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: 3D-графика; GL; DirectX (show other bugs)
Version: 1.0.9
Hardware: PC All
: P1 blocker
Target Milestone: ---
Assignee: Anton Rudnev
QA Contact:
URL: http://bugs.winehq.org/show_bug.cgi?i...
Whiteboard:
Keywords:
Depends on:
Blocks: 777 2357 2649
  Show dependency treegraph
 
In work:
Reported: 2008-10-17 17:31 MSD by Andrey Vusik
Modified: 2008-10-26 19:42 MSK (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Vusik 2008-10-17 17:31:04 MSD
Wine от 17 октября

guest@multi:~$ wine --update
Updating... Using WINEPREFIX=/home/guest/.wine
Creating default file tree...
Copying prepared tree from '/usr/share/wine/skel' ...
WINE@Etersoft 1.0 SQL (1.0.9), registration number is EEEE-C0DE.
Legality check is available on the page http://sales.etersoft.ru/product/.

Update registry and environments...
fixme:ntoskrnl:KeInitializeMutex 0x1113b8 0
DbgPrint says: Eutron SmartKey USB Driver (Jun 10 2005), FastUSB=0, DelayUSB=2000
fixme:ntoskrnl:KeInitializeSpinLock 0x456638
fixme:ntoskrnl:KeInitializeEvent 0x4567ac 1 0
fixme:ntoskrnl:KeWaitForSingleObject 0x1113b8 0 0 1 (nil)
fixme:ntoskrnl:KeReleaseMutex 0x1113b8 0
fixme:ntoskrnl:KeInitializeMutex 0x111c14 1
fixme:ntoskrnl:KeInitializeEvent 0x111c44 1 0
fixme:ntoskrnl:KeInitializeEvent 0x111c64 1 0
fixme:ntoskrnl:KeInitializeSpinLock 0x111c80
fixme:ntoskrnl:KeInitializeEvent 0x111d88 1 0
fixme:ntoskrnl:IoRegisterDeviceInterface 0x1112a0 {10d60713-fb4c-4bb1-941b-44b79d25af8b} <null> 0x111364
fixme:ntoskrnl:KeInitializeMutex 0x112888 0
fixme:ntoskrnl:KeWaitForSingleObject 0x1113b8 0 0 1 (nil)
fixme:ntoskrnl:KeReleaseMutex 0x1113b8 0
fixme:ntoskrnl:PoSetPowerState 0x111b10 1 1
fixme:ntoskrnl:KeClearEvent 0x111d88
fixme:ntoskrnl:KeClearEvent 0x111c44
fixme:ntoskrnl:KeInitializeEvent 0x7ec806c0 0 0
fixme:ntoskrnl:KeSetEvent 0x7ec806c0 0 0
fixme:ntoskrnl:KeWaitForSingleObject 0x7ec806c0 0 0 1 (nil)
fixme:ntoskrnl:KeInitializeEvent 0x7ec80608 0 0
fixme:ntoskrnl:KeSetEvent 0x7ec80608 0 0
fixme:ntoskrnl:KeInitializeEvent 0x7ec805f8 0 0
fixme:ntoskrnl:KeSetEvent 0x7ec805f8 0 0
fixme:usbd:USBD_ParseConfigurationDescriptorEx 0x1129d8, 0x1129d8, 0, 0, -1, -1, -1
fixme:ntoskrnl:KeInitializeEvent 0x7ec80638 0 0
err:wineusbhub:__wine_usbhub_internal_ioctl could not set config 1: Операция не позволяется
fixme:ntoskrnl:KeSetEvent 0x7ec80638 0 0
fixme:ntoskrnl:KeSetEvent 0x111d88 0 0
fixme:ntoskrnl:KeSetEvent 0x111c44 0 0
err:winedevice:ServiceMain MajorFunction[IRP_MJ_PNP] failed: c0000001
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: Нет такого файла или каталога
err:mshtml:register_server typelib registration failed: 80029c4a
wbemprox.dll:DllMain:(10000000, 1, 00000000)
wbemprox.dll:regsvr:DllRegisterServer
wbemprox.dll:DllMain:(10000000, 0, 00000000)
err:rpc:I_RpcReceive we got fault packet with status 0x3e6
err:ntdll:RtlpWaitForCriticalSection section 0x1106b8 "?" wait timed out in thread 0014, blocked by 0013, retrying (60 sec)
wine: configuration in '/home/guest/.wine' has been updated.
Comment 1 Константин Кондратюк 2008-10-17 18:11:54 MSD
Ubuntu 8.04, Debian 4.0
ALT Linux на cellar'е...
Comment 2 Vitaly Lipatov 2008-10-17 20:08:21 MSD
Проблема в функции NdrSendReceive (dlls/rpcrt4).
Там уже есть наш хак, но он не исправляет проблему.
Там неясность, как должна обрабатываться ошибка. Возможно нужно почитать об этих функциях, и посмотреть на тесты.

Теста на эту функцию явно не хватает.

Судя по коду ReactOS, ничего правильного в генерации исключения нет:
http://www.reactos.org/generated/doxygen/dd/d1f/ndr__midl_8c-source.html

Хотя вопрос, кто же теряет критическую секцию, остаётся.

См. также
http://bugs.winehq.org/show_bug.cgi?id=6159
http://www.winehq.org/pipermail/wine-cvs/2006-February/020703.html
Comment 3 Anton Rudnev 2008-10-20 19:09:13 MSD
Кажется, скоро победа будет за нами ...

=>1 0x7bc32fc6 RtlpWaitForCriticalSection+0xe3(crit=0x1106f8) [/srv/mibori/Projects/wine/dlls/ntdll/critsection.c:449] in ntdll (0x7e6f8508)
  2 0x7bc33532 RtlEnterCriticalSection+0x147(crit=0x1106f8) [/srv/mibori/Projects/wine/dlls/ntdll/critsection.c:582] in ntdll (0x7e6f8548)
  3 0x7eb1f2bb scmdatabase_lock_exclusive+0x15(db=0x1106e8) [/srv/mibori/Projects/wine/programs/services/services.c:474] in services (0x7e6f8568)
  4 0x7eb1bd1c svcctl_CreateServiceW+0x2be(hSCManager=0x111ca0, lpServiceName=0x111d90, lpDisplayName=0x111dac, dwDesiredAccess=983551, dwServiceType=16, dwStartType=3, dwErrorControl=1, lpBinaryPathName=0x111dd4, lpLoadOrderGroup=(nil), lpdwTagId=(nil), lpDependencies=0x0, dwDependenciesSize=0, lpServiceStartName=(nil), lpPassword=0x0, dwPasswordSize=0, phService=0x111cc0) [/srv/mibori/Projects/wine/programs/services/rpc.c:389] in services (0x7e6f85c8)
  5 0x7eb235f3 svcctl_svcctl_CreateServiceW+0x6de(_pRpcMessage=0x111ae0) [/srv/mibori/Projects/wine/programs/services/svcctl_s.c:1480] in services (0x7e6f8828)
  6 0x7eae7f70 process_request_packet+0x312(conn=0x111588, hdr=0x1119c8, msg=0x111ae0) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:291] in rpcrt4 (0x7e6f8958)
  7 0x7eae8430 RPCRT4_process_packet+0xee(conn=0x111588, hdr=0x1119c8, msg=0x111ae0) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:346] in rpcrt4 (0x7e6f8998)
  8 0x7eae84f7 RPCRT4_worker_thread+0x35(the_arg=0x111790) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:363] in rpcrt4 (0x7e6f89c8)
  9 0x7bc75892 worker_thread_proc+0x12e(param=(nil)) [/srv/mibori/Projects/wine/dlls/ntdll/threadpool.c:111] in ntdll (0x7e6f8a18)
  10 0x7bc732e6 init_teb+0xb2(teb=0x7bc75754) [/srv/mibori/Projects/wine/dlls/ntdll/thread.c:128] in ntdll (0x7e6f8a28)
  11 0x7bc73365 call_thread_func+0x6d(rtl_func=0x7bc75754, arg=(nil)) [/srv/mibori/Projects/wine/dlls/ntdll/thread.c:392] in ntdll (0x7e6f8ac8)
  12 0x7bc735c5 start_thread+0x1bc(info=0x7ffc8fb8) [/srv/mibori/Projects/wine/dlls/ntdll/thread.c:454] in ntdll (0x7e6f93c8)
  13 0xb7e78f83 start_thread+0xb3() in libpthread.so.0 (0x7e6f94b8)
  14 0xb7e0763e __clone+0x5e() in libc.so.6 (0x00000000)
Comment 4 Anton Rudnev 2008-10-21 13:00:45 MSD
(In reply to comment #3)
> Кажется, скоро победа будет за нами ...
> 
кусок дебаглога:

func(1126b0) #23 =>
mib svcctl_svcctl_ChangeServiceConfigW(1126b0) ...
mib svcctl_ChangeServiceConfigW, arg lpDisplayName == ════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
mib call RtlEnterCriticalSection(1106f8) in thread 14, #28
mib ret RtlEnterCriticalSection(1106f8) in thread 14 -> STATUS_SUCCESS (end)
mib svcctl_ChangeServiceConfigW(...) after enter crit sect 1106f8
MIB raise_exception

обращаем внимание на значение lpDisplayName, а теперь иcходник:

    service_lock_exclusive(service->service_entry); // <---- enter crit!


    if (is_marked_for_delete(service->service_entry))
    {
        service_unlock(service->service_entry);
        return ERROR_SERVICE_MARKED_FOR_DELETE;
    }

    if (lpDisplayName != NULL &&
        (entry = scmdatabase_find_service_by_displayname(service->service_entry->db, lpDisplayName)) &&
        (entry != service->service_entry))
    {
        service_unlock(service->service_entry); // <-------leave crit!
        return ERROR_DUPLICATE_SERVICE_NAME;
    }
    // больше service_unlock(service->service_entry) нет

в нем service_lock_exclusive(service->service_entry) входит в крит. секцию
а service_unlock(service->service_entry) выходт из нее.

программа падает на scmdatabase_find_service_by_displayname(service->service_entry->db, lpDisplayName)) и не закрывает критическую секцию.

бэктрейс:
=>1 0xb7dbfe4b strcmpiW+0x36(str1=0x1128a0, str2=(nil)) [/srv/mibori/Projects/wine/libs/wine/string.c:31] in libwine.so.1 (0x7ebe94c8)
  2 0x7ef1fda3 scmdatabase_find_service_by_displayname+0x30(db=0x1106e8, name=0x1128a0) [/home/mibori/Projects/wine/programs/services/services.c:347] in services (0x7ebe94f8)
  3 0x7ef1d1de svcctl_ChangeServiceConfigW+0x108(hService=0x112700, dwServiceType=1, dwStartType=2, dwErrorControl=1, lpBinaryPathName=0x112820, lpLoadOrderGroup=(nil), lpdwTagId=(nil), lpDependencies=0x0, dwDependenciesSize=0, lpServiceStartName=(nil), lpPassword=0x0, dwPasswordSize=0, lpDisplayName=0x1128a0) [/srv/mibori/Projects/wine/programs/services/rpc.c:503] in services (0x7ebe95d8)
  4 0x7ef23c9d svcctl_svcctl_ChangeServiceConfigW+0x5d4(_pRpcMessage=0x1126c8) [/srv/mibori/Projects/wine/programs/services/svcctl_s.c:1208] in services (0x7ebe9828)
  5 0x7eec8dc6 process_request_packet+0x3c4(conn=0x111588, hdr=0x111eb8, msg=0x1126c8) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:313] in rpcrt4 (0x7ebe9958)
  6 0x7eec93c9 RPCRT4_process_packet+0x13a(conn=0x111588, hdr=0x111eb8, msg=0x1126c8) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:397] in rpcrt4 (0x7ebe9998)
  7 0x7eec94c3 RPCRT4_worker_thread+0x50(the_arg=0x112080) [/srv/mibori/Projects/wine/dlls/rpcrt4/rpc_server.c:416] in rpcrt4 (0x7ebe99c8)
  8 0x7bc758de worker_thread_proc+0x13e(param=(nil)) [/srv/mibori/Projects/wine/dlls/ntdll/threadpool.c:114] in ntdll (0x7ebe9a18)
  9 0x7bc73332 call_thread_entry_point+0xe() in ntdll (0x7ebe9a28)
  10 0x7bc733b1 call_thread_func+0x7d(rtl_func=0x7bc757a0, arg=(nil)) [/srv/mibori/Projects/wine/dlls/ntdll/thread.c:394] in ntdll (0x7ebe9ac8)
  11 0x7bc73611 start_thread+0x1cc(info=0x7ffccfb8) [/srv/mibori/Projects/wine/dlls/ntdll/thread.c:456] in ntdll (0x7ebea3c8)
  12 0xb7d8ef83 start_thread+0xb3() in libpthread.so.0 (0x7ebea4b8)
  13 0xb7d1d63e __clone+0x5e() in libc.so.6 (0x00000000)






Comment 5 Andrey Vusik 2008-10-21 16:11:44 MSD
Fedora 9 --- плюс 1)
Аналогичная ошибка.
Comment 6 Константин Кондратюк 2008-10-21 16:13:53 MSD
Потому что нужно дождаться eter26 и не проверять раньше времени.
Comment 7 Константин Кондратюк 2008-10-22 10:28:22 MSD
Правка для eter27 работает.
Comment 8 Andrey Vusik 2008-10-26 19:35:33 MSK
Debian 4.0 
wine, libwine от 25 октября

в консоли при первом запуске
Failed to load DLL /home/guest/.wine/dosdevices/c:/windows/system32/msxml3.dll
Comment 9 Andrey Vusik 2008-10-26 19:36:30 MSK
(In reply to comment #8)
> Debian 4.0 
> wine, libwine от 25 октября
> 
> в консоли при первом запуске
> Failed to load DLL /home/guest/.wine/dosdevices/c:/windows/system32/msxml3.dll
> 

Не туда написал..