[Bug 45795] New: Nvidia GeForce Now installer aborts due to failure to process xml config

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Sep 8 05:03:21 CDT 2018


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

            Bug ID: 45795
           Summary: Nvidia GeForce Now installer aborts due to failure to
                    process xml config
           Product: Wine
           Version: 3.15
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: msxml3
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

as it says.

The sub-installer can be run directly after executing 'GeForceNOW-release.exe'

--- snip ---
$ pwd

/home/focht/.wine/drive_c/GeForceNOWInstallerTemp

$ file *

EULA.txt:    ASCII text, with very long lines, with CRLF line terminators
GeForceNOW:  directory
license.txt: Non-ISO extended-ASCII text, with very long lines, with CRLF line
terminators
NVI2:        directory
setup.cfg:   XML 1.0 document, ASCII text, with CRLF line terminators
setup.exe:   PE32 executable (GUI) Intel 80386, for MS Windows

$ WINEDEBUG=+seh,+relay,+msi,+ole,+variant,+msxml wine ./setup.exe >>log.txt
2>&1
...
002a:trace:ole:apartment_getclassobject added new loaded dll
L"C:\\windows\\system32\\msxml3.dll"
002a:trace:ole:apartment_getclassobject calling DllGetClassObject 0x7cc36870
002a:Call msxml3.DllGetClassObject(0033f7f8,7e5ec928,0033f808) ret=7e50d2a5
002a:trace:msxml:DllGetClassObject {f5078f33-c551-11d3-89b9-0000f81fe221}
{00000001-0000-0000-c000-000000000046} 0x33f808
...
002a:trace:msxml:DOMClassFactory_AddRef (0x173188) ref = 1
002a:Ret  msxml3.DllGetClassObject() retval=00000000 ret=7e50d2a5
...
002a:trace:ole:apartment_release 290000cafe: after = 1
002a:trace:msxml:DOMClassFactory_CreateInstance (nil)
{2933bf95-7b36-11d2-b20e-00c04f983e60} 0x33f80c
002a:trace:msxml:DOMDocument_create (30, 0x33f7ac) 
...
002a:trace:msxml:xmldoc_add_refs (0x7c946550)->(1)
002a:trace:msxml:get_domdoc_from_xmldoc returning iface 0x178eb8
002a:trace:msxml:domdoc_QueryInterface
(0x178ea0)->({2933bf95-7b36-11d2-b20e-00c04f983e60} 0x33f80c)
002a:trace:msxml:domdoc_AddRef (0x178ea0)->(2)
002a:trace:msxml:domdoc_Release (0x178ea0)->(1)
002a:trace:msxml:DOMClassFactory_Release (0x173188) ref = 0 
...
002a:Ret  ole32.CoCreateInstance() retval=00000000 ret=1017f7b3
...
002a:trace:msxml:domdoc_load (0x178ea0)->(0x33f870 {VT_BSTR:
L"Z:\\home\\focht\\Downloads\\GeForceNOWInstallerTemp\\setup.CFG"})
002a:trace:msxml:create_uri
L"Z:\\home\\focht\\Downloads\\GeForceNOWInstallerTemp\\setup.CFG" 
...
002a:trace:msxml:domdoc_load ret (0) 
...
002a:Call oleaut32.VariantInit(0033f970) ret=1018af28
002a:trace:variant:VariantInit (0x33f970)
002a:Ret  oleaut32.VariantInit() retval=0033f970 ret=1018af28
002a:Call oleaut32.VariantClear(0033f970) ret=10028d65
002a:trace:variant:VariantClear (0x33f970 {VT_EMPTY})
002a:Ret  oleaut32.VariantClear() retval=00000000 ret=10028d65
002a:Call oleaut32.SysAllocStringLen(00180e10 L"//setup",00000007) ret=10028d75
002a:trace:ole:SysAllocStringLen L"//setup"
002a:Ret  oleaut32.SysAllocStringLen() retval=0016397c ret=10028d75
002a:trace:msxml:domdoc_selectNodes (0x178ea0)->(L"//setup" 0x33f9bc)
002a:Call KERNEL32.WideCharToMultiByte(0000fde9,00000000,0016397c
L"//setup",ffffffff,00000000,00000000,00000000,00000000) ret=7cc68ae0
002a:Ret  KERNEL32.WideCharToMultiByte() retval=00000008 ret=7cc68ae0
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000009) ret=7cc68a0d
002a:Ret  ntdll.RtlAllocateHeap() retval=001731a0 ret=7cc68a0d
002a:Call KERNEL32.WideCharToMultiByte(0000fde9,00000000,0016397c
L"//setup",ffffffff,001731a0,00000009,00000000,00000000) ret=7cc68b3a
002a:Ret  KERNEL32.WideCharToMultiByte() retval=00000008 ret=7cc68b3a
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000024) ret=7cc7fbf9
002a:Ret  ntdll.RtlAllocateHeap() retval=00180e28 ret=7cc7fbf9
002a:trace:msxml:create_selection (0x7c47d1b0, "//setup", 0x33f9bc)
002a:trace:msxml:xmldoc_add_refs (0x7c47d1b0)->(2)
002a:trace:msxml:registerNamespaces (0x7c91cb80)
002a:trace:msxml:XSLPattern_to_XPath ("//setup")
002a:trace:msxml:xslpattern_lex token: TOK_DblFSlash : //
002a:trace:msxml:xslpattern_lex token: TOK_NCName : setup
002a:trace:msxml:xslpattern_parse Got UnprefixedName: "setup"
002a:trace:msxml:xslpattern_parse Got AbbreviatedAbsoluteLocationPath:
"//*[name()='setup']"
002a:trace:msxml:XSLPattern_to_XPath => "//*[name()='setup']"
002a:trace:msxml:create_selection found 1 matches
002a:Call ntdll.RtlFreeHeap(00110000,00000000,001731a0) ret=7cc68a35
002a:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7cc68a35
002a:Call oleaut32.VariantClear(0033f970) ret=10027eca
002a:trace:variant:VariantClear (0x33f970 {VT_BSTR: L"//setup"})
002a:Call ntdll.RtlSizeHeap(00110000,00000000,00163978) ret=7e52da26
002a:Ret  ntdll.RtlSizeHeap() retval=00000020 ret=7e52da26
002a:Ret  oleaut32.VariantClear() retval=00000000 ret=10027eca
002a:Call ntdll.RtlFreeHeap(00110000,00000000,00180e00) ret=10029306
002a:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=10029306
002a:Call oleaut32.VariantInit(0033f978) ret=1018863c
002a:trace:variant:VariantInit (0x33f978)
002a:Ret  oleaut32.VariantInit() retval=0033f978 ret=1018863c
002a:trace:msxml:domselection_get__newEnum (0x180e28)->(0x33f93c)
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000018) ret=7cc7fbf9
002a:Ret  ntdll.RtlAllocateHeap() retval=00173200 ret=7cc7fbf9
002a:trace:msxml:domselection_AddRef (0x180e28)->(2)
002a:trace:msxml:enumvariant_AddRef (0x173200)->(1)
002a:trace:msxml:enumvariant_QueryInterface
(0x173200)->({00020404-0000-0000-c000-000000000046} 0x33f954)
002a:trace:msxml:enumvariant_AddRef (0x173200)->(2)
002a:trace:msxml:enumvariant_AddRef (0x173200)->(3)
002a:trace:msxml:enumvariant_Release (0x173200)->(2)
002a:trace:msxml:enumvariant_Release (0x173200)->(1)
002a:Call oleaut32.VariantClear(0033f978) ret=1006be44
002a:trace:variant:VariantClear (0x33f978 {VT_EMPTY})
002a:Ret  oleaut32.VariantClear() retval=00000000 ret=1006be44
002a:trace:msxml:enumvariant_Next (0x173200)->(1 0x33f978 0x33f94c)
002a:trace:msxml:domselection_get_item (0x180e28)->(0 0x33f980)
002a:trace:msxml:create_node type 1
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000020) ret=7cc4ea42
002a:Ret  ntdll.RtlAllocateHeap() retval=00180e00 ret=7cc4ea42
002a:trace:msxml:xmldoc_add_refs (0x7c47d1b0)->(3)
002a:trace:msxml:domelem_QueryInterface
(0x180e00)->({2933bf80-7b36-11d2-b20e-00c04f983e60} 0x33f838)
002a:trace:msxml:domelem_AddRef (0x180e00)->(2)
002a:trace:msxml:domelem_Release (0x180e00)->(1)
002a:trace:msxml:domselection_nextNode (0x180e28)->(0x33f8bc)
002a:Call oleaut32.VariantChangeType(0033f978,0033f978,00000000,0000000d)
ret=100a2638
002a:trace:variant:VariantChangeTypeEx (0x33f978 {VT_DISPATCH:
0x180e18},0x33f978 {VT_DISPATCH: 0x180e18},0x00000400,0x0000,VT_UNKNOWN)
002a:trace:variant:VariantClear (0x33f838 {VT_EMPTY})
002a:trace:variant:VariantClear (0x33f828 {VT_EMPTY})
002a:trace:variant:VariantCopyInd (0x33f828 {VT_EMPTY},0x33f978 {VT_DISPATCH:
0x180e18})
002a:trace:variant:VariantCopy (0x33f828 {VT_EMPTY},0x33f978 {VT_DISPATCH:
0x180e18})
002a:trace:variant:VariantClear (0x33f828 {VT_EMPTY})
002a:trace:msxml:domelem_AddRef (0x180e00)->(2)
002a:trace:variant:VARIANT_Coerce (0x33f838
{VT_EMPTY},0x00000400,0x0000,0x33f828 {VT_DISPATCH: 0x180e18},VT_UNKNOWN)
002a:trace:msxml:domelem_QueryInterface
(0x180e00)->({00000000-0000-0000-c000-000000000046} 0x33f840)
002a:trace:msxml:domelem_AddRef (0x180e00)->(3)
002a:trace:variant:VariantCopy (0x33f978 {VT_DISPATCH: 0x180e18},0x33f838
{VT_UNKNOWN: 0x180e18})
002a:trace:variant:VariantClear (0x33f978 {VT_DISPATCH: 0x180e18})
002a:trace:msxml:domelem_Release (0x180e00)->(2)
002a:trace:msxml:domelem_AddRef (0x180e00)->(3)
002a:trace:variant:VariantClear (0x33f838 {VT_UNKNOWN: 0x180e18})
002a:trace:msxml:domelem_Release (0x180e00)->(2)
002a:trace:variant:VariantClear (0x33f828 {VT_DISPATCH: 0x180e18})
002a:trace:msxml:domelem_Release (0x180e00)->(1)
002a:trace:variant:VariantChangeTypeEx returning 0x00000000, 0x33f978
{VT_UNKNOWN: 0x180e18}
002a:Ret  oleaut32.VariantChangeType() retval=00000000 ret=100a2638
002a:trace:msxml:domelem_QueryInterface
(0x180e00)->({2933bf80-7b36-11d2-b20e-00c04f983e60} 0x33f93c)
002a:trace:msxml:domelem_AddRef (0x180e00)->(2)
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000080) ret=102de3b5
002a:Ret  ntdll.RtlAllocateHeap() retval=00178f58 ret=102de3b5
002a:trace:msxml:domelem_AddRef (0x180e00)->(3)
002a:trace:msxml:domelem_Release (0x180e00)->(2)
002a:Call oleaut32.VariantClear(0033f978) ret=1006be44
002a:trace:variant:VariantClear (0x33f978 {VT_UNKNOWN: 0x180e18})
002a:trace:msxml:domelem_Release (0x180e00)->(1)
002a:Ret  oleaut32.VariantClear() retval=00000000 ret=1006be44
002a:trace:msxml:enumvariant_Next (0x173200)->(1 0x33f978 0x33f94c)
002a:trace:msxml:domselection_get_item (0x180e28)->(1 0x33f980)
002a:Call ntdll.RtlAllocateHeap(00110000,00000000,00000078) ret=100292e1
002a:Ret  ntdll.RtlAllocateHeap() retval=0017c6b0 ret=100292e1
002a:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0033f8e4)
ret=102c71d8
002a:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b4473c3
ip=7b4473c3 tid=002a
002a:trace:seh:raise_exception  info[0]=19930520
002a:trace:seh:raise_exception  info[1]=0033f900
002a:trace:seh:raise_exception  info[2]=1048dc68
002a:trace:seh:raise_exception  eax=7b435899 ebx=0033f900 ecx=00000000
edx=0033f8c4 esi=0033f8c4 edi=0033f890
002a:trace:seh:raise_exception  ebp=0033f868 esp=0033f804 cs=330023 ds=6332002b
es=33002b fs=f7bf0063 gs=7bd0006b flags=00200212
002a:trace:seh:call_stack_handlers calling handler at 0x10300b71 code=e06d7363
flags=1 
...
002a:Call KERNEL32.OutputDebugStringW(001860f8 L"      0.155 |    ERROR:
[NVI2.NVInstaller] 2974 at CNVInstaller::PreLoadFromConfig : COM error: Exception
{0x80004005; File: TypedEnum.h; Line: 59}. \n") ret=1003cc17 
--- snip ---

Winedbg session (second get_item() fails):

--- snip ---
Wine-dbg>bt

Backtrace:
=>0 0x000000007d64c96d domselection_get_item()
[/home/focht/projects/wine/mainline-src/dlls/msxml3/selection.c:238] in msxml3
(0x000000000033f8d8)
  1 0x000000007d64d5e4 enumvariant_Next+0xae()
[/home/focht/projects/wine/mainline-src/dlls/msxml3/selection.c:513] in msxml3
(0x000000000033f918)
  2 0x000000001006be5c in nvi2 (+0x6be5b) (0x000000000033f950)
  3 0x000000001017f8a8 in nvi2 (+0x17f8a7) (0x000000000033f9e4)
  4 0x0000000010066e8b in nvi2 (+0x66e8a) (0x000000000033fc1c)
  5 0x00000000004025ae in setup (+0x25ad) (0x000000000033fd68)
  6 0x0000000000405486 in setup (+0x5485) (0x000000000033fe64)
  7 0x000000000041ffe8 in setup (+0x1ffe7) (0x000000000033feb0)
  8 0x000000007b46dde6 call_process_entry+0x11() in kernel32
(0x000000000033fec8)
  9 0x000000007b46df1f start_process+0x12c()
[/home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1094] in
kernel32 (0x000000000033ffd8)
  10 0x000000007b46ddf2 start_process_wrapper+0x9() in kernel32
(0x000000000033ffec)

Wine-dbg>n
...
Wine-dbg>n
248        if (index < 0 || index >=
xmlXPathNodeSetGetLength(This->result->nodesetval))
...
Wine-dbg>n
251        *listItem =
create_node(xmlXPathNodeSetItem(This->result->nodesetval, index));
...
Wine-dbg>n
252        This->resultPos = index + 1;
Wine-dbg>
252        This->resultPos = index + 1;
Wine-dbg>
254        return S_OK;

...
Wine-dbg>bt

Backtrace:
=>0 0x000000007d64c96d domselection_get_item()
[/home/focht/projects/wine/mainline-src/dlls/msxml3/selection.c:238] in msxml3
(0x000000000033f8d8)
  1 0x000000007d64d5e4 enumvariant_Next+0xae()
[/home/focht/projects/wine/mainline-src/dlls/msxml3/selection.c:513] in msxml3
(0x000000000033f918)
  2 0x000000001006be5c in nvi2 (+0x6be5b) (0x000000000033f950)
  3 0x000000001017f8a8 in nvi2 (+0x17f8a7) (0x000000000033f9e4)
  4 0x0000000010066e8b in nvi2 (+0x66e8a) (0x000000000033fc1c)
  5 0x00000000004025ae in setup (+0x25ad) (0x000000000033fd68)
  6 0x0000000000405486 in setup (+0x5485) (0x000000000033fe64)
  7 0x000000000041ffe8 in setup (+0x1ffe7) (0x000000000033feb0)
  8 0x000000007b46dde6 call_process_entry+0x11() in kernel32
(0x000000000033fec8)
  9 0x000000007b46df1f start_process+0x12c()
[/home/focht/projects/wine/mainline-src/dlls/kernel32/process.c:1094] in
kernel32 (0x000000000033ffd8)
  10 0x000000007b46ddf2 start_process_wrapper+0x9() in kernel32
(0x000000000033ffec)

Wine-dbg>n
239        domselection *This = impl_from_IXMLDOMSelection( iface );
Wine-dbg>n
241        TRACE("(%p)->(%d %p)\n", This, index, listItem);
Wine-dbg>n
243        if(!listItem)
Wine-dbg>n
246        *listItem = NULL;
Wine-dbg>n
248        if (index < 0 || index >=
xmlXPathNodeSetGetLength(This->result->nodesetval))
...
Wine-dbg>n
249            return S_FALSE; 
--- snip ---

The content of the XML file:

--- snip ---
<?xml version="1.0" encoding="utf-8"?>
<setup title="GeforceNow" enableNonUAC="true" version="00.00"
installerMin="2.1002.83.512">
    <include name="${{InstallerDllDirectory}}\presentations.cfg"
select="/presentations/*"/>
    <include filter="not-manifest" name="${{InstallerDllDirectory}}\theme.cfg"
select="/theme/*"/>
    <strings>
    </strings>
    <constraints>
    <platforms list="AMD64" level="critical"
text="${{ErrorUnsupportedPlatform}}"/>
    <reject tests="PACKAGES" level="critical"
text="${{ErrorNoPackagesToInstall}}"/>
    <reject tests="REQUIRED" level="critical"
text="${{ErrorMissingRequiredPackages}}"/>
    <reject tests="FILES" level="critical"
text="${{ErrorMissingPackageFiles}}"/>
    <reject tests="INSTALL, MSI" level="critical"
text="${{ErrorInstallerAlreadyRunning}}"/>
    <reject tests="PNP" level="wait" text="${{WaitPnpAlreadyRunning}}"/>
    <reject tests="REBOOT" level="critical"
text="${{ErrorInstallerNeedReboot}}"/>
    </constraints>
    <install>
        <search dir=".">
            <select name="**\*"/>
            <deselect name="english\**\*"/>
            <if filter="!x86">
                <deselect name="**\x86\**\*"/>
            </if>
            <if filter="!amd64">
                <deselect name="**\amd64\**\*"/>
            </if>
            <if filter="!xp">
                <deselect name="**\WinXP\**\*"/>
            </if>
            <if filter="!minVista">
                <deselect name="**\WinVista\**\*"/>
            </if>
            <if filter="!VistaAndWin7">
                <deselect name="**\VistaAndWin7\**\*"/>
            </if>
            <if filter="!minWin8">
                <deselect name="**\Win8\**\*"/>
            </if>
        </search>
    </install>
    <properties>
        <string name="EulaFile" value="${{InstallerDirectory}}\EULA.txt"/>
        <string name="ArpIcon" value="${{LocalUserAppData}}\NVIDIA
Corporation\GeForceNOW\CEF\GeForceNOW.exe,0"/>
        <string name="TimeOutForPlugin" value="50000" />
        <string name="ProductType" value="251"/>
        <bool name="SilentInstall" value="false"/>
        <bool name="noeula"  value="true"/>
    </properties>
    <options>
        <bool name="clean" property="CleanInstall"/>
        <bool name="prestage" property="PrestageInstall"/>
        <bool name="validate" property="ValidationInstall"/>
        <string name="validationFile" property="ValidationFile"/>
        <bool name="forcereboot" property="RebootRequired"/>
        <bool name="noreboot" property="IgnoreReboot"/>
        <bool name="k" property="RebootRequired"/>
        <bool name="n" property="IgnoreReboot"/>
        <bool name="passive" property="ProgressOnly"/>
        <bool name="noeula" property="SkipEula"/>
        <bool name="nofinish" property="SkipFinish"/>
        <bool name="ignorepnp" property="IgnorePnpFlag"/>
        <bool name="progresswitheula" property="ProgressWithEula"/>
        <bool name="s" property="SilentInstall" />
    </options>
    <properties>
    </properties>
    <forms>
    </forms>
    <manifest>
        <file name="setup.exe"/>
        <file name="setup.cfg"/>
        <file name="eula.txt"/>
        <file name="${{InstallerDllDirectory}}/NVI2.dll"/>
        <file name="${{InstallerDllDirectory}}/NVI2SystemService32.sys"/>
        <file name="${{InstallerDllDirectory}}/NVI2SystemService64.sys"/>
        <file name="${{InstallerDllDirectory}}/NvInstallerUtil.dll"
core="true"/>
        <file name="${{InstallerDllDirectory}}/NVI2UI.dll"/>
        <file name="${{InstallerDllDirectory}}/NVPrxy32.dll"/>
        <file name="${{InstallerDllDirectory}}/NVPrxy64.dll"/>
        <file name="${{InstallerDllDirectory}}/theme.cfg"/>
        <file name="${{InstallerDllDirectory}}/*.ui.forms"/>
        <file name="${{InstallerDllDirectory}}/*.ui.strings"/>
        <file name="${{InstallerDllDirectory}}/*.png"/>
        <file name="${{InstallerDllDirectory}}/*.jpg"/>
    </manifest>
</setup>
--- snip --- 

Not sure, could be a dupe of existing msxml3/libxml2 bugs.

https://bugs.winehq.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=STAGED&bug_status=REOPENED&bug_status=NEEDINFO&bug_status=RESOLVED&component=msxml3&list_id=628598&product=Wine&query_format=advanced

Maybe Nikolay can tell. CC'ing.

'winetricks -q msxml3' makes it work (there are follow-up bugs though).

$ sha1sum GeForceNOW-release.exe 
9c7c50f9572464c4f1205eede2534580937481c8  GeForceNOW-release.exe

$ du -sh GeForceNOW-release.exe 
59M    GeForceNOW-release.exe

$ wine --version
wine-3.15-94-gbfe8510ec0

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