[Bug 39863] New: Microsoft .NET Runtime Optimization Service 2.x terminates prematurely due to failure to hook up registry notifier ('RegNotifyChangeKeyValue' must treat NTSTATUS 'STATUS_PENDING' as success)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Dec 27 08:00:50 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=39863

            Bug ID: 39863
           Summary: Microsoft .NET Runtime Optimization Service 2.x
                    terminates prematurely due to failure to hook up
                    registry notifier ('RegNotifyChangeKeyValue' must
                    treat NTSTATUS 'STATUS_PENDING' as success)
           Product: Wine
           Version: 1.9.0
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: advapi32
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

as the summary says.

Encountered when installing/running .NET Framework 2.0 Service packs.

Prefix bootstrapping yields:

--- snip ---
$ wineboot
fixme:service:scmdatabase_autostart_services Auto-start service
L"clr_optimization_v2.0.50727_32" failed to start: 1053
--- snip ---

Relevant part of trace log:

--- snip ---
$ WINEDEBUG=+pid,+tid,+seh,+relay,+service,+reg,+ntdll,+server wineboot
>>log.txt 2>&1
...
0012:001a:trace:service:service_control_dispatcher got request 1 for service
L"clr_optimization_v2.0.50727_32" 
...
0012:001a:trace:service:service_handle_start L"clr_optimization_v2.0.50727_32"
argsize 32 
...
0012:001b:Call
ntdll.NtCreateKey(0094e18c,0002001f,0094e1f8,00000000,0094e1e8,00000000,00000000)
ret=7ec6f1f1
0012:001b:trace:reg:NtCreateKey
(0x14,L"SOFTWARE\\Microsoft\\.NetFramework\\v2.0.50727\\NGENService\\ListenedState",(null),0,2001f,0x94e18c)
0012:001b:trace:reg:NtCreateKey <- 0x7c
0012:001b:Ret  ntdll.NtCreateKey() retval=00000000 ret=7ec6f1f1
...
0012:001b:Call KERNEL32.CreateEventW(00000000,00000001,00000000,00000000)
ret=6405c356
...
0012:001b:Ret  KERNEL32.CreateEventW() retval=00000070 ret=6405c356
...
0012:001b:Call KERNEL32.ResetEvent(00000070) ret=6405a7bf
...
0012:001b:Ret  KERNEL32.ResetEvent() retval=00000001 ret=6405a7bf
0012:001b:Call advapi32.RegOpenKeyExW(0000007c,6405137c
L"",00000000,00020019,0094e4fc) ret=64075e45
...
0012:001b:Ret  advapi32.RegOpenKeyExW() retval=00000000 ret=64075e45
0012:001b:Call advapi32.RegQueryValueExW(00000084,64051a1c
L"RootstoreDirty",00000000,0094e4f8,0094e4e4,0094e4e0) ret=64076316
0012:001b:trace:reg:RegQueryValueExW
(0x84,L"RootstoreDirty",(nil),0x94e4f8,0x94e4e4,0x94e4e0=4)
...
0012:001b:Ret  advapi32.RegQueryValueExW() retval=00000000 ret=64076316
...
0012:001b:Call
advapi32.RegNotifyChangeKeyValue(0000007c,00000000,00000004,00000070,00000001)
ret=6405a808
0012:001b:trace:reg:RegNotifyChangeKeyValue (0x7c,0,4,0x70,1)
0012:001b:Call
ntdll.NtNotifyChangeKey(0000007c,00000070,00000000,00000000,0094e48c,00000004,00000000,00000000,00000000,00000001)
ret=7ec73ed8
0012:001b:trace:reg:NtNotifyChangeMultipleKeys
(0x7c,0,(nil),0x70,(nil),(nil),0x94e48c,0x00000004,
0x00000001,(nil),0x00000000,0x00000000)
...
001b: set_registry_notification( hkey=007c, event=0070, subtree=0,
filter=00000004 )
001b: set_registry_notification() = PENDING 
...
0012:001b:Ret  ntdll.NtNotifyChangeKey() retval=00000103 ret=7ec73ed8
0012:001b:Call ntdll.RtlNtStatusToDosError(00000103) ret=7ec73ef8
0012:001b:Ret  ntdll.RtlNtStatusToDosError() retval=000003e5 ret=7ec73ef8
0012:001b:Ret  advapi32.RegNotifyChangeKeyValue() retval=000003e5 ret=6405a808
...
0012:001b:Call msvcr80._vsnwprintf_s(0094e2f0,00000079,ffffffff,64051d50
L"ResetDirtyRootStore(): Failed to hook up registry notifier\n",0094e50c)
ret=640721b7
...
0012:001b:Call msvcr80._vsnwprintf_s(0094e2f8,00000075,ffffffff,64052a10
L"InitController(): Failed to register root store notifier\n",0094e514)
ret=640721b7
...
0012:001b:Call msvcr80._vsnwprintf_s(0094e2f0,00000043,ffffffff,640522a8
L"ShutdownController(): Completed\n",0094e50c) ret=640721b7
...
0012:001b:Call msvcr80._vsnwprintf_s(0094e2f8,00000037,ffffffff,6405296c
L"InitController(): Failed\nr",0094e514) ret=640721b7
...
0012:001b:Call KERNEL32.TerminateProcess(ffffffff,00000001) ret=64067d49
0012:001b:Call ntdll.NtTerminateProcess(ffffffff,00000001) ret=7b86c228
0012: *process killed* 
--- snip ---

Source:
http://source.winehq.org/git/wine.git/blob/723146ca6d3953ed0465e189ab8ead1d9cbce4bd:/dlls/advapi32/registry.c#l2700

--- snip ---
2700 LSTATUS WINAPI RegNotifyChangeKeyValue( HKEY hkey, BOOL fWatchSubTree,
2701                                      DWORD fdwNotifyFilter, HANDLE hEvent,
2702                                      BOOL fAsync )
2703 {
2704     NTSTATUS status;
2705     IO_STATUS_BLOCK iosb;
2706 
2707     hkey = get_special_root_hkey( hkey, 0 );
2708     if (!hkey) return ERROR_INVALID_HANDLE;
2709 
2710     TRACE("(%p,%i,%d,%p,%i)\n", hkey, fWatchSubTree, fdwNotifyFilter,
2711           hEvent, fAsync);
2712 
2713     status = NtNotifyChangeKey( hkey, hEvent, NULL, NULL, &iosb,
2714                                 fdwNotifyFilter, fWatchSubTree, NULL, 0,
2715                                 fAsync);
2716 
2717     if (status && status != STATUS_TIMEOUT)
2718         return RtlNtStatusToDosError( status );
2719 
2720     return ERROR_SUCCESS;
2721 }
--- snip ---

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list