[wix-users] Bundle upgrade fails: Cannot read language ID
Bob Arnson
bob at firegiant.com
Wed Dec 22 09:43:49 PST 2021
I suspect your .mc fix is more useful...
-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Sean Hall via wix-users
Sent: Wednesday, 22 December, 2021 11:56
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Sean Hall <r.sean.hall at gmail.com>
Subject: Re: [wix-users] Bundle upgrade fails: Cannot read language ID
> Based on the docs I expect INSTALLEDLANGUAGE to fail because it's not
supported for USERUNMANAGED
If this were true, then I would have expected the earlier call to MsiGetProductInfoEx for INSTALLPROPERTY_VERSIONSTRING to have failed as well because it is in the same table in the docs. Technically, the SYSTEM account is the machine user so it is not querying a per-user product from a different user than the current user. I'm interested to see your findings about whether the two properties behave differently.
On Tue, Dec 21, 2021 at 5:08 PM Jacques Eloff via wix-users < wix-users at lists.wixtoolset.org> wrote:
> Sean, thanks I'll try the debugger. Based on the docs I expect
> INSTALLEDLANGUAGE to fail because it's not supported for
> USERUNMANAGED. I don't actually need to populate it and I think
> removing that from the MSI should result in the bundle not populating
> the RelatedPackage/Language element and cause the msi engine to skip
> over trying to query it and then everything should be good.
>
> Thanks for all the replies and insights, much appreciated
>
> Jacques
>
> On Tue, Dec 21, 2021 at 12:41 PM Sean Hall via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> > Unfortunately, the log message for
> MSG_FAILED_READ_RELATED_PACKAGE_LANGUAGE
> > is broken - see https://github.com/wixtoolset/wix4/pull/71. You'd
> > have
> to
> > attach a debugger to see what the real values are.
> >
> > On Tue, Dec 21, 2021 at 2:07 PM Sean Hall <r.sean.hall at gmail.com> wrote:
> >
> > > Again, it's important to emphasize that this tangent was only
> > > about detecting the package as per-user. I have no idea how the
> > > fix for #5479 impacts the problems with language detection that
> > > you're seeing. But
> yes,
> > > WixToolset v3 does not have the fix for #5479.
> > >
> > > On Tue, Dec 21, 2021 at 1:07 PM Jacques Eloff <repstosd at gmail.com>
> > wrote:
> > >
> > >> Thank you Sean.
> > >>
> > >> So FireGiant's copy of v3 has the fix, WixToolset v3 does not -
> > >> is
> that
> > >> statement correct?
> > >>
> > >> Thanks,
> > >> Jacques
> > >>
> > >> On Tue, Dec 21, 2021 at 8:11 AM Sean Hall via wix-users <
> > >> wix-users at lists.wixtoolset.org> wrote:
> > >>
> > >>> No. FireGiant ported it from their v3 branch (
> > >>> https://github.com/firegiant/wix3).
> > >>>
> > >>> On Mon, Dec 20, 2021 at 11:35 PM Jacques Eloff via wix-users <
> > >>> wix-users at lists.wixtoolset.org> wrote:
> > >>>
> > >>> > Right, but does 3.14 have the fix? I can repro it and when I
> > >>> > look
> at
> > >>> >
> > >>> >
> > >>>
> >
> https://github.com/wixtoolset/wix3/blob/b496a8fdc2979c9a8e70edd3a47f2e
> 98fc178e9e/src/burn/engine/msiengine.cpp#L494
> > >>> > I still see the user managed context being checked before the
> machine
> > >>> > context. Perhaps I'm looking at the wrong branch (there was a
> > >>> > note
> on
> > >>> one
> > >>> > of the wixtoolset pages that had a link to the wix3 repo)
> > >>> >
> > >>> > Thanks,
> > >>> > Jacques
> > >>> >
> > >>> > On Mon, Dec 20, 2021 at 7:47 PM Bob Arnson <bob at firegiant.com>
> > wrote:
> > >>> >
> > >>> > > It was ported to v4.
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > *From:* Jacques Eloff <repstosd at gmail.com>
> > >>> > > *Sent:* Monday, 20 December, 2021 19:03
> > >>> > > *To:* Bob Arnson <bob at firegiant.com>
> > >>> > > *Cc:* WiX Toolset Users Mailing List <
> > wix-users at lists.wixtoolset.org
> > >>> >
> > >>> > > *Subject:* Re: [wix-users] Bundle upgrade fails: Cannot read
> > >>> language ID
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > Question, I noticed the fix was ported to v3. We're using
> > 3.14.0.5722
> > >>> > > (because of arm64 support). Should I still see the issue or
> > >>> > > is it
> > >>> only
> > >>> > > ported for the stable 3.x builds?
> > >>> > >
> > >>> > > Thanks,
> > >>> > >
> > >>> > > Jacques
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > On Mon, Dec 20, 2021 at 2:01 PM Jacques Eloff <
> repstosd at gmail.com>
> > >>> > wrote:
> > >>> > >
> > >>> > > Awesome, I managed to hack my machine to run as local system
> > >>> > > and
> I
> > >>> can
> > >>> > > repro this now successfully it seems. Thank you Bob!!!
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > On Mon, Dec 20, 2021 at 12:01 PM Bob Arnson
> > >>> > > <bob at firegiant.com>
> > >>> wrote:
> > >>> > >
> > >>> > > Nope, I’m not suggesting any of that. I was just commenting
> > >>> > > on
> > Sean’s
> > >>> > > comment, because of
> > https://github.com/wixtoolset/issues/issues/5479
> > >>> .
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > *From:* Jacques Eloff <repstosd at gmail.com>
> > >>> > > *Sent:* Monday, 20 December, 2021 14:41
> > >>> > > *To:* WiX Toolset Users Mailing List <
> > wix-users at lists.wixtoolset.org
> > >>> >
> > >>> > > *Cc:* Bob Arnson <bob at firegiant.com>
> > >>> > > *Subject:* Re: [wix-users] Bundle upgrade fails: Cannot read
> > >>> language ID
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > Thanks Sean, Bob
> > >>> > >
> > >>> > > In this case it was running under the update agent, so I'm
> guessing
> > >>> > either
> > >>> > > local SYSTEM or trusted installer since this is wuauserv. I
> > >>> > > know
> > >>> there's
> > >>> > > restrictions on querying the language property. You're
> > >>> > > suggesting
> > >>> this is
> > >>> > > due to the context under which the bundle is invoked?
> > >>> > >
> > >>> > > The docs do state that "These properties cannot be retrieved
> > >>> > > for
> > >>> product
> > >>> > > instances that are installed under a per-user-unmanaged
> > >>> > > context
> for
> > >>> user
> > >>> > > accounts other than current user account." So, even though
> > >>> > > this
> is
> > a
> > >>> > > per-machine MSI, because it ran under a local service, it's
> context
> > >>> > becomes
> > >>> > > user-unmanaged and then the API calls fail? Because once it
> fails,
> > it
> > >>> > fails
> > >>> > > for every other MSI, even though only 1 MSI in the chain
> > >>> > > contains
> > >>> > language
> > >>> > > data in the bundle manifest.
> > >>> > >
> > >>> > > The corruption was my first thought too because of the
> > >>> > > random
> error
> > >>> > codes,
> > >>> > > though I'm seeing failures across 20H2, 21H1, and 21H2. I've
> > >>> > > set
> up
> > >>> > > multiple repro VMs and when I install the baseline, the MSI
> either
> > >>> > upgrades
> > >>> > > or the bundle detects the downgrade (when I install a newer
> > version
> > >>> > before
> > >>> > > triggering the upgrade) and skips the MSI as expected.
> > >>> > > AllUsers
> is
> > >>> set
> > >>> > to 1.
> > >>> > >
> > >>> > > Thanks,
> > >>> > >
> > >>> > > Jacques
> > >>> > >
> > >>> > >
> > >>> > >
> > >>> > > On Mon, Dec 20, 2021 at 10:13 AM Bob Arnson via wix-users <
> > >>> > > wix-users at lists.wixtoolset.org> wrote:
> > >>> > >
> > >>> > > Or the bundle is running from a LocalSystem service, which
> > >>> > > is how
> > MSI
> > >>> > > parents a per-machine package.
> > >>> > >
> > >>> > > -----Original Message-----
> > >>> > > From: wix-users <wix-users-bounces at lists.wixtoolset.org> On
> Behalf
> > >>> Of
> > >>> > > Sean Hall via wix-users
> > >>> > > Sent: Monday, 20 December, 2021 12:17
> > >>> > > To: WiX Toolset Users Mailing List <
> wix-users at lists.wixtoolset.org
> > >
> > >>> > > Cc: Sean Hall <r.sean.hall at gmail.com>
> > >>> > > Subject: Re: [wix-users] Bundle upgrade fails: Cannot read
> language
> > >>> ID
> > >>> > >
> > >>> > > > The first package it detects, it reports as being a
> > >>> > > > per-user
> > scope,
> > >>> > > > but I
> > >>> > > suspect that's just because of how the fPerMachine flag was
> > >>> initialized.
> > >>> > >
> > >>> > > No, if it reported it as per-user scope then that means
> > >>> > > MsiGetProductInfoEx was able to find that product for
> > >>> > > MSIINSTALLCONTEXT_USERUNMANAGED. If that's not what you
> > >>> > > expected,
> > >>> then it
> > >>> > > seems the MSI APIs are broken on that machine or memory is
> getting
> > >>> > > corrupted.
> > >>> > >
> > >>> > > On Mon, Dec 20, 2021 at 10:39 AM Jacques Eloff via wix-users
> > >>> > > < wix-users at lists.wixtoolset.org> wrote:
> > >>> > >
> > >>> > > > Hi
> > >>> > > >
> > >>> > > > I've been looking at a failure when a bundle tries to
> > >>> > > > upgrade
> an
> > >>> MSI
> > >>> > > > (where the MSI have the language column set). All the MSIs
> > >>> > > > are per-machine installs.
> > >>> > > >
> > >>> > > > From the logs, it appears to fail in msiengine.cpp in the
> snippet
> > >>> > > > below
> > >>> > > >
> > >>> > > > // Ignore related product where we can't read the language.
> > >>> > > > if (FAILED(hr))
> > >>> > > > {
> > >>> > > > LogErrorId(hr,
> > >>> > > > MSG_FAILED_READ_RELATED_PACKAGE_LANGUAGE, wzProductCode,
> > >>> > > > sczInstalledLanguage, NULL);
> > >>> > > >
> > >>> > > > hr = S_OK;
> > >>> > > > continue;
> > >>> > > > }
> > >>> > > >
> > >>> > > > From the logs I observe some odd behavior.
> > >>> > > >
> > >>> > > > The first package it detects, it reports as being a
> > >>> > > > per-user
> > scope,
> > >>> > > > but I suspect that's just because of how the fPerMachine
> > >>> > > > flag
> was
> > >>> > > initialized.
> > >>> > > > All subsequent packages are then reporting failures,
> > >>> > > > whether
> they
> > >>> have
> > >>> > > > language IDs in their upgrade tables or not.
> > >>> > > >
> > >>> > > > [2EF0:29B8][2021-12-16T23:33:59]i103: Detected related package:
> > >>> > > > {9376EAFC-5ABE-4A09-B1D7-6F1DD4904105}, scope: PerUser,
> version:
> > >>> > > > 48.3.31210.0, language: 0 operation: MajorUpgrade
> > >>> > > > [2EF0:29B8][2021-12-16T23:33:59]i108: Detected compatible
> > package:
> > >>> > > >
> > >>>
> Microsoft.NET.Sdk.Android.Manifest_6.0.100.31.0.101_preview.9.16_x64.m
> > >>> > > > si,
> > >>> > > > provider: Microsoft.NET.Sdk.Android,6.0.100,x64, installed:
> > >>> > > > {CA87338A-7E35-413F-87C2-4E5C6E88A62D}, version:
> > >>> > > > 124.25.16443,
> > >>> chained:
> > >>> > > > {879C90F1-F656-4B45-AE49-87AF5A6BA28C}
> > >>> > > > [2EF0:29B8][2021-12-16T23:33:59]e152: Detected related package:
> > >>> > > > {CA87338A-7E35-413F-87C2-4E5C6E88A62D}, but failed to read
> > >>> language: ,
> > >>> > > > error: 0x8ff2a8
> > >>> > > >
> > >>> > > > Here's the kicker though. 4 consecutive runs of the budle
> > produced
> > >>> 4
> > >>> > > > different error codes, none of which are document under
> > >>> > > > MsiGetProductInfoExW
> > >>> > > >
> > >>> > > > 0x8ff2a8
> > >>> > > > 0x53f5f4
> > >>> > > > 0x19f1e4
> > >>> > > > 0xa2f24c
> > >>> > > >
> > >>> > > > The end result is that a potential downgrade is not
> > >>> > > > detected,
> the
> > >>> > > > engine executes an MSI that then triggers its launch
> > >>> > > > condition
> > >>> blocker
> > >>> > > > causing the bundle to fail.
> > >>> > > >
> > >>> > > > Anyone seen this before? I've not been able to reproduce
> > >>> > > > this
> > yet.
> > >>> > > >
> > >>> > > > Thanks,
> > >>> > > > Jacques
> > >>> > > >
> > >>> > > >
> > >>> ________________________________________________________________
> > >>> ____
> > >>> > > > WiX Toolset Users Mailing List provided by FireGiant
> > >>> > > > http://www.firegiant.com/
> > >>> > > >
> > >>> > >
> > >>> > >
> > ____________________________________________________________________
> > >>> > > WiX Toolset Users Mailing List provided by FireGiant
> > >>> > > http://www.firegiant.com/
> > >>> > >
> > >>> > >
> > ____________________________________________________________________
> > >>> > > WiX Toolset Users Mailing List provided by FireGiant
> > >>> > > http://www.firegiant.com/
> > >>> > >
> > >>> > >
> > >>> >
> > >>> >
> ____________________________________________________________________
> > >>> > WiX Toolset Users Mailing List provided by FireGiant
> > >>> > http://www.firegiant.com/
> > >>>
> > >>> ________________________________________________________________
> > >>> ____ WiX Toolset Users Mailing List provided by FireGiant
> > >>> http://www.firegiant.com/
> > >>
> > >>
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> > http://www.firegiant.com/
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list