http://bugs.winehq.org/show_bug.cgi?id=35252
Bug ID: 35252 Summary: lsTasks tool fails due to ITaskScheduler::Enum being a stub Product: Wine Version: 1.7.9 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: mstask Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Classification: Unclassified
Hello folks,
continuation of bug 8549
--- snip --- ... 0024:trace:mstask:MSTASK_ITaskScheduler_SetTargetComputer (0x12fce0)->(L"\\nexus4") 0024:Call KERNEL32.GetComputerNameW(0033f44c,0033f444) ret=7e39086a 0024:Ret KERNEL32.GetComputerNameW() retval=00000001 ret=7e39086a 0024:Call KERNEL32.lstrcmpiW(0033f448 L"\\nexus4",0040a900 L"\\nexus4") ret=7e390883 0024:Ret KERNEL32.lstrcmpiW() retval=00000000 ret=7e390883 0024:Call ntdll.RtlAllocateHeap(0040c000,00000000,00001000) ret=00403761 0024:Ret ntdll.RtlAllocateHeap() retval=0040e920 ret=00403761 0024:fixme:mstask:MSTASK_ITaskScheduler_Enum 0x12fce0, 0x33fc30: stub 0024:Call ole32.CoUninitialize() ret=004011bc 0024:Call user32.DestroyWindow(00020046) ret=7ecd352a ... 0024:Call KERNEL32.ExitProcess(00000001) ret=004011c4 --- snip ---
Source: http://source.winehq.org/git/wine.git/blob/5bff2fb66b46ab1834354b57baca26286...
--- snip --- 141 static HRESULT WINAPI MSTASK_ITaskScheduler_Enum( 142 ITaskScheduler* iface, 143 IEnumWorkItems **ppEnumTasks) 144 { 145 FIXME("%p, %p: stub\n", iface, ppEnumTasks); 146 return E_NOTIMPL; 147 } --- snip ---
$ sha1sum lsTasks.zip 34a1eec6036ea72ecac0e27d0d252fbed4730117 lsTasks.zip
$ du -sh lsTasks.zip 20K lsTasks.zip
$ wine --version wine-1.7.9-209-gb231b4b
Regards
http://bugs.winehq.org/show_bug.cgi?id=35252
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source URL| |http://www.inwa.net/~frog/b | |oo/win32/intel/lsTasks.zip
https://bugs.winehq.org/show_bug.cgi?id=35252
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet Summary|lsTasks tool fails due to |Multiple applications need |ITaskScheduler::Enum being |ITaskScheduler::Enum |a stub |implementation (lsTasks, | |Toad for MySQL Freeware | |7.2)
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
still present, 'Toad for MySQL Freeware 7.2' also wants this.
Prerequisite: 'winetricks -q dotnet40'
There is a dialog on first-time startup which shows a managed backtrace. The dialog can be dismissed with no further impact though.
Download: https://www.quest.com/common/dlclick.aspx?fileid=24784
Direct: http://usdownloads.quest.com.edgesuite.net/Repository/www.quest.com/latest_v...
Managed backtrace:
--- snip --- System.NotImplementedException The method or operation is not implemented. Stack Trace: at Microsoft.Win32.TaskScheduler.V1Interop.ITaskScheduler.Enum() at Microsoft.Win32.TaskScheduler.TaskCollection.V1TaskEnumerator..ctor(TaskService svc, Regex filter) at Microsoft.Win32.TaskScheduler.TaskCollection.GetEnumerator() at Quest.Toad.Util.Migration.ProcessTaskFolder(TaskFolder folder, List`1 tasks) at Quest.Toad.Util.Migration.CheckScheduledTasks(Boolean force) at Quest.Toad.Util.Migration.MigrateSettings() at Quest.Toad.Gui.MainForm.runFirstEverExecution() at Quest.Toad.Gui.MainForm.MainForm_Shown(Object sender, EventArgs e) at System.Windows.Forms.Form.OnShown(EventArgs e) at System.Windows.Forms.Form.CallShownEvent() at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() --- snip ---
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Quest Software/Toad for MySQL Freeware 7.2
$ WINEDEBUG=+tid,+seh,+relay,+mstask wine ./toad.exe >>log.txt 2>&1 ... 002a:Call mstask.DllGetClassObject(112012b4,79205da0,0033de7c) ret=7e8d3d50 002a:trace:mstask:DllGetClassObject ({148bd52a-a2ab-11ce-b11f-00aa00530503} {00000001-0000-0000-c000-000000000046} 0x33de7c) 002a:trace:mstask:MSTASK_IClassFactory_QueryInterface IID: {00000001-0000-0000-c000-000000000046} 002a:trace:mstask:MSTASK_IClassFactory_AddRef 002a:Ret mstask.DllGetClassObject() retval=00000000 ret=7e8d3d50 ... 002a:trace:mstask:MSTASK_ITaskScheduler_AddRef 002a:Call KERNEL32.GetLastError() ret=7919d319 002a:Ret KERNEL32.GetLastError() retval=000036b7 ret=7919d319 002a:trace:mstask:MSTASK_ITaskScheduler_SetTargetComputer (0x111496f0)->((null)) 002a:trace:mstask:MSTASK_ITaskScheduler_Release ... 002a:trace:mstask:MSTASK_ITaskScheduler_GetTargetComputer (0x111496f0)->(0x33e410) ... 002a:fixme:mstask:MSTASK_ITaskScheduler_Enum 0x111496f0, 0x33e3b0: stub ... 002a:Call KERNEL32.RaiseException(e0434352,00000001,00000005,0033e278) ret=791cac08 002a:trace:seh:raise_exception code=e0434352 flags=1 addr=0x7b83ac57 ip=7b83ac57 tid=002a 002a:trace:seh:raise_exception info[0]=80004001 002a:trace:seh:raise_exception info[1]=00000000 002a:trace:seh:raise_exception info[2]=00000000 002a:trace:seh:raise_exception info[3]=00000000 002a:trace:seh:raise_exception info[4]=79140000 002a:trace:seh:raise_exception eax=7b826c7d ebx=7b8bb000 ecx=80004001 edx=0033e194 esi=0033e234 edi=0033e200 002a:trace:seh:raise_exception ebp=0033e1d8 esp=0033e174 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 002a:trace:seh:call_vectored_handlers calling handler at 0x791f5a7c code=e0434352 flags=1 ... 002a:Call user32.SetWindowTextW(000200c8,0122e0c4 L"System.NotImplementedException\r\nThe method or operation is not implemented.\r\nStack Trace:\r\n at Microsoft.Win32.TaskScheduler.V1Interop.ITaskScheduler.Enum()\r\n at Microsoft.Win32.TaskScheduler.TaskCollection.V1TaskEnumerator..ctor(TaskService svc, Regex filter)\r\n at Microsoft.Win32.Tas"...) ret=06fa69fc --- snip ---
$ sha1sum Quest_Toad-for-MySQL-Freeware_72.exe 0347aa4c1fbe6296e0ca7bb9a2e7e5f93f2ad6cf Quest_Toad-for-MySQL-Freeware_72.exe
$ du -sh Quest_Toad-for-MySQL-Freeware_72.exe 78M Quest_Toad-for-MySQL-Freeware_72.exe
$ wine --version wine-1.7.18-92-gb01fc1a
Regards
http://bugs.winehq.org/show_bug.cgi?id=35252
Simon swdevelop1981@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |swdevelop1981@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=35252
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- Stub enumeration interface is here with http://source.winehq.org/git/wine.git/commit/7aa2e9a9d057e61f3a9672d54819c8f.... I'll try to retest with lsTasks.
https://bugs.winehq.org/show_bug.cgi?id=35252
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello Nikolay,
the app expectedly still fails with 'IEnumWorkItems::Reset' now needed.
Do you prefer to resolve here and create new bugs per method stub impl or just keep it open until the few missing interface methods are implemented?
--- snip --- System.NotImplementedException The method or operation is not implemented. Stack Trace: at Microsoft.Win32.TaskScheduler.V1Interop.IEnumWorkItems.Reset() at Microsoft.Win32.TaskScheduler.TaskCollection.V1TaskEnumerator..ctor(TaskService svc, Regex filter) at Microsoft.Win32.TaskScheduler.TaskCollection.GetEnumerator() at Quest.Toad.Util.Migration.ProcessTaskFolder(TaskFolder folder, List`1 tasks) at Quest.Toad.Util.Migration.CheckScheduledTasks(Boolean force) at Quest.Toad.Util.Migration.MigrateSettings() at Quest.Toad.Gui.MainForm.runFirstEverExecution() at Quest.Toad.Gui.MainForm.MainForm_Shown(Object sender, EventArgs e) at System.Windows.Forms.Form.OnShown(EventArgs e) at System.Windows.Forms.Form.CallShownEvent() at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() --- snip ---
$ wine --version wine-1.7.40-29-gc1c108f
Regards
https://bugs.winehq.org/show_bug.cgi?id=35252
--- Comment #4 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Anastasius Focht from comment #3)
Hello Nikolay,
the app expectedly still fails with 'IEnumWorkItems::Reset' now needed.
Do you prefer to resolve here and create new bugs per method stub impl or just keep it open until the few missing interface methods are implemented?
Either way works for me. Now it made me think if mstask should forward to newer interfaces from taskschd. If they are different APIs that work on same data we should consider using taskschd as it got more implemented features.
https://bugs.winehq.org/show_bug.cgi?id=35252
--- Comment #5 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Nikolay Sivov from comment #4)
Either way works for me. Now it made me think if mstask should forward to newer interfaces from taskschd. If they are different APIs that work on same data we should consider using taskschd as it got more implemented features.
Yes, mstask should be implemented using taskschd, one of the most notable reasons is that they are using the same task database. v1 to v2+ API mapping is reasonably simple. Probably v1 task enumeration needs some filtering to avoid listing v2+ tasks, but that's also pretty obvious and easy to do.
https://bugs.winehq.org/show_bug.cgi?id=35252
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|mstask |taskschd
https://bugs.winehq.org/show_bug.cgi?id=35252
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|source | URL|http://www.inwa.net/~frog/b |http://usdownloads.quest.co |oo/win32/intel/lsTasks.zip |m.edgesuite.net/Repository/ | |www.quest.com/latest_versio | |ns/Quest_Toad-for-MySQL-Fre | |eware_72.exe
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Original download is gone thus replacing with 'Toad for MySQL Freeware 7.2'
Download: http://usdownloads.quest.com.edgesuite.net/Repository/www.quest.com/latest_v...
Prerequisite: 'winetricks -q dotnet40' and WinVer setting 'Windows XP' (otherwise the installer wants .NET 4.5).
--- snip --- $ pwd /home/focht/winetest/drive_c/Program Files/Quest Software/Toad for MySQL Freeware 7.2
$ wine ./toad.exe ... System.NotImplementedException The method or operation is not implemented. Stack Trace: at Microsoft.Win32.TaskScheduler.V1Interop.IEnumWorkItems.Reset() at Microsoft.Win32.TaskScheduler.TaskCollection.V1TaskEnumerator..ctor(TaskService svc, Regex filter) at Microsoft.Win32.TaskScheduler.TaskCollection.GetEnumerator() at Quest.Toad.Util.Migration.ProcessTaskFolder(TaskFolder folder, List`1 tasks) at Quest.Toad.Util.Migration.CheckScheduledTasks(Boolean force) at Quest.Toad.Util.Migration.MigrateSettings() at Quest.Toad.Gui.MainForm.runFirstEverExecution() at Quest.Toad.Gui.MainForm.MainForm_Shown(Object sender, EventArgs e) at System.Windows.Forms.Form.OnShown(EventArgs e) at System.Windows.Forms.Form.CallShownEvent() at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() --- snip ---
$ wine --version wine-3.5
Regards
https://bugs.winehq.org/show_bug.cgi?id=35252
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |c84082209a88f6d156d52022200 | |2fa36dd25b540 Summary|Multiple applications need |Multiple applications need |ITaskScheduler::Enum |ITaskScheduler::Enum |implementation (lsTasks, |implementation (lsTasks, |Toad for MySQL Freeware |Toad for MySQL Freeware |7.2) |7.x) Status|NEW |RESOLVED URL|http://usdownloads.quest.co |https://web.archive.org/web |m.edgesuite.net/Repository/ |/20191116093038/https://fil |www.quest.com/latest_versio |es.downloadnow.com/s/softwa |ns/Quest_Toad-for-MySQL-Fre |re/14/02/03/71/ToadforMySQL |eware_72.exe |_Freeware_7.3.1.3290.zip?to | |ken=1573932545_5663baad542d | |a14192ac6eb4e1d29924&fileNa | |me=ToadforMySQL_Freeware_7. | |3.1.3290.zip Component|taskschd |mstask Resolution|--- |FIXED
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting. The remainder was fixed Jun 2018 with following commits:
* https://source.winehq.org/git/wine.git/commitdiff/c84082209a88f6d156d5202220... ("mstask: Implement IEnumWorkItems::Reset().")
* https://source.winehq.org/git/wine.git/commitdiff/c0dd4f5aeecde21b034540ec2d... ("mstask: Implement IEnumWorkItems::Next().")
Thanks Dmitry
Also thanks Nikolay for 'ITaskScheduler::EnumThe Enum part', discussed in comment #2 and follow-up:
* https://source.winehq.org/git/wine.git/commitdiff/7aa2e9a9d057e61f3a9672d548... ("mstask: Added IEnumWorkItems stub.")
---
Stable download link via Internet Archive/Wayback machine:
https://web.archive.org/web/20191116093038/https://files.downloadnow.com/s/s...
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files (x86)/Quest Software/Toad for MySQL Freeware 7.3
$ WINEDEBUG=+seh,+relay,+mstask wine ./toad.exe >>log.txt 2>&1
$ grep mstask log.txt ... 002c:Call mstask.DllGetClassObject(134a875c,79205da0,0032df08) ret=65210532 002c:trace:mstask:DllGetClassObject ({148bd52a-a2ab-11ce-b11f-00aa00530503} {00000001-0000-0000-c000-000000000046} 0032DF08) 002c:trace:mstask:MSTASK_IClassFactory_QueryInterface IID: {00000001-0000-0000-c000-000000000046} 002c:trace:mstask:MSTASK_IClassFactory_AddRef 002c:Ret mstask.DllGetClassObject() retval=00000000 ret=65210532 002c:trace:mstask:MSTASK_IClassFactory_QueryInterface IID: {b196b28f-bab4-101a-b69c-00aa00341d07} 002c:warn:mstask:MSTASK_IClassFactory_QueryInterface Unknown interface: {b196b28f-bab4-101a-b69c-00aa00341d07} 002c:trace:mstask:MSTASK_IClassFactory_CreateInstance IID: {00000000-0000-0000-c000-000000000046} 002c:trace:mstask:TaskSchedulerConstructor (0032E02C) ... 002c:trace:mstask:MSTASK_ITaskScheduler_SetTargetComputer (0A0E0DF8)->((null)) 002c:trace:mstask:MSTASK_ITaskScheduler_Release 002c:trace:mstask:MSTASK_ITaskScheduler_GetTargetComputer (0A0E0DF8)->(0032E49C) 002c:trace:mstask:MSTASK_ITaskScheduler_Enum (0A0E0DF8)->(0032E454) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({00000000-0000-0000-c000-000000000046} 0032DEF0) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4} 0032DE6C) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({b196b283-bab4-101a-b69c-00aa00341d07} 0032DD48) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({00000003-0000-0000-c000-000000000046} 0032DC90) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(4) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({00000144-0000-0000-c000-000000000046} 0032DD54) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({148bd528-a2ab-11ce-b11f-00aa00530503} 0032E154) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(4) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(1) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_QueryInterface (134C51E0)->({148bd528-a2ab-11ce-b11f-00aa00530503} 0032E284) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_AddRef (134C51E0)->(3) 002c:trace:mstask:EnumWorkItems_Reset (134C51E0) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(2) 002c:trace:mstask:EnumWorkItems_Next (134C51E0)->(1 0032E488 0032E480) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(1) 002c:trace:mstask:EnumWorkItems_Release (134C51E0)->(0) 002c:trace:mstask:MSTASK_ITaskScheduler_Release 002c:trace:mstask:MSTASK_ITaskScheduler_Release 002c:trace:mstask:TaskSchedulerDestructor 0A0E0DF8 ... --- snip ---
$ sha1sum ToadforMySQL_Freeware_7.3.1.3290.* 8afd76a00c1ebb538230bb11036471778af5c2a6 ToadforMySQL_Freeware_7.3.1.3290.exe 29c1bd74b1e9133a9f9cacdd2b25244bdab38d4a ToadforMySQL_Freeware_7.3.1.3290.zip
$ du -sh ToadforMySQL_Freeware_7.3.1.3290.* 80M ToadforMySQL_Freeware_7.3.1.3290.exe 80M ToadforMySQL_Freeware_7.3.1.3290.zip
$ wine --version wine-4.20
Regards
https://bugs.winehq.org/show_bug.cgi?id=35252
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.21.