[wix-devs] Black-Box Analysis of the "Unexpected PDB error while running build.cmd" Problem

Bob Arnson bob at firegiant.com
Tue Jul 13 07:53:47 PDT 2021


It's an intermittent failure in an external process the compiler uses.

-----Original Message-----
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Ron Martin via wix-devs
Sent: Tuesday, 13 July, 2021 10:26
To: Rob Mensching <rob at firegiant.com>; WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Ron Martin <cpuwzd at comcast.net>
Subject: Re: [wix-devs] Black-Box Analysis of the "Unexpected PDB error while running build.cmd" Problem

If there is no way that a layer can be declared as finished while still having one or more active worker threads, what is your explanation for the success of starting each layer manually vs. the likely failure of starting all the layers from a script?

On 7/12/2021 12:24 AM, Rob Mensching wrote:
>
> > Can I conclude that the multi-threading is contained within one or
> more of your "layers"?
>
> Yes, there is some. Bob is adding more.
>
> > I'm assuming that the roblems arise because there is no mechanism to
> assure
> that all 0f the multi-threaded building commenced within a layer is 
> completed before the next layer can be processed.
>
> No. There is no parallelism across layers. The output of earlier 
> layers are consumed by later layers. That’s why the layers exist.
>
> > Is the required mechanism simply missing?
>
> No. The batch files are the mechanism.
>
> *From:* Ron Martin <cpuwzd at comcast.net>
> *Sent:* Sunday, July 11, 2021 8:13 PM
> *To:* Rob Mensching <rob at firegiant.com>; WiX Toolset Developer Mailing 
> List <wix-devs at lists.wixtoolset.org>
> *Subject:* Re: [wix-devs] Black-Box Analysis of the "Unexpected PDB 
> error while running build.cmd" Problem
>
> Rob,
>
> I think I saw some mention of switches to enable or disable 
> multi-threaded building, but I haven't researched them yet. Can I 
> conclude that the multi-threading is contained within one or more of 
> your "layers"? If so, since manual building has such a positive 
> effect, I'm assuming that the roblems arise because there is no 
> mechanism to assure that all 0f the multi-threaded building commenced 
> within a layer is completed before the next layer can be processed.
>
> Is the required mechanism simply missing? Is there any way to create 
> our own such mechanism?
>
> Ron
>
> On 7/11/2021 12:36 PM, Rob Mensching wrote:
>
>     Yes.
>
>     That list defines the "layers" of the build.
>
>     Build/rebuilding layers in order is a way to minimize the chance of hitting the Microsoft PDB error.
>
>     Once a layer is built successfully, you don't have to go back and build it again until you change something in it.
>
>     -----Original Message-----
>
>     From: wix-devs<wix-devs-bounces at lists.wixtoolset.org>  
> <mailto:wix-devs-bounces at lists.wixtoolset.org>  On Behalf Of Ron 
> Martin via wix-devs
>
>     Sent: Sunday, July 11, 2021 7:10 AM
>
>     To: wix-devs<wix-devs at lists.wixtoolset.org>  
> <mailto:wix-devs at lists.wixtoolset.org>
>
>     Cc: Ron Martin<cpuwzd at comcast.net>  <mailto:cpuwzd at comcast.net>
>
>     Subject: [wix-devs] Black-Box Analysis of the "Unexpected PDB 
> error while running build.cmd" Problem
>
>     build.cmd is executed from the wix4 folder. It takes an optional "release" parameter. It executes build_all.cmd from the wix4\src folder, passing along the optional "release" parameter.
>
>     build_all.cmd is executed from the wix4\src folder. It takes an optional "release" parameter.
>
>     The functionality of executing build.cmd from the wix4 folder with an optional "release" parameter can be achieved by executing a series of commands from the wix4\src folder. All but the first take an optional "release" parameter.
>
>     We will refer to this series of commands as the primary command sequence.
>
>        * call build_init.cmd
>
>        * call dtf\dtf.cmd
>
>        * call internal\internal.cmd
>
>        * call libs\libs.cmd
>
>        * call api\api.cmd
>
>        * call burn\burn.cmd
>
>        * call wix\wix.cmd
>
>        * call ext\ext.cmd
>
>        * call test\test.cmd
>
>     Hypothesis:
>
>          Executing the primary command sequence manually will 
> accomplish the
>
>          desired goal without
>
>          generating an "unexpected PDB error" error. This will be 
> considered
>
>          the quiescent state.
>
>          Furthermore, once quiescence has been reached, source code 
> changes
>
>          can be made. Using
>
>          a list of the changed files, you can hopefully deduce a 
> sub-sequence
>
>          of the primary command
>
>          sequence (notably not including the first command of the 
> primary
>
>          command sequence) that will
>
>          restore quiescence.
>
>     Example:
>
>          While working on Issue 5371, specifically in the area of C++ 
> code
>
>          that implements custom
>
>          actions for the Util extension, I was repeatably able to 
> return to
>
>          quiescence by executing
>
>          call ext\ext.cmd from wix4\src.
>
>     I look forward to confirmation of my hypothesis and any simplification or improvement in our build process to which it might lead.
>
>     Ron
>
>     
> ____________________________________________________________________
>
>     WiX Toolset Developer Mailing List provided by 
> FireGianthttp://www.firegiant.com/  <http://www.firegiant.com/>
>
____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-devs mailing list