Bugs item #1589839, was opened at 2006-11-03 03:03
Message generated for change (Settings changed) made by pmarcu
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1589839&group_id=105970

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: heat
Group: v3.0
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: RvdEls (rvdels)
>Assigned to: pmarcu (pmarcu)
Summary: heat hangs on particular dll

Initial Comment:
When I do "heat file TestLab3.dll -out TestLab3.wxs"
heat hangs with 100 percent cpu.
The dll doesn't give any problems with tallow that is
why I think this is a problem in heat.

When it hung I attached a debugger and this give me the
following stack:
wixutilextension.dll!Microsoft.Tools.WindowsInstallerXml.Extensions.UtilFinalizeHarvesterMutator.MutateComponents()
+ 0x213a bytes   
wixutilextension.dll!Microsoft.Tools.WindowsInstallerXml.Extensions.UtilFinalizeHarvesterMutator.Mutate(Microsoft.Tools.WindowsInstallerXml.Serialize.Wix
wix) + 0x6f bytes        
wix.dll!Microsoft.Tools.WindowsInstallerXml.Mutator.Mutate(Microsoft.Tools.WindowsInstallerXml.Serialize.Wix
wix) + 0x7f bytes        
heat.exe!Microsoft.Tools.WindowsInstallerXml.Tools.Heat.Run(string[]
args) + 0x5b6 bytes      
heat.exe!Microsoft.Tools.WindowsInstallerXml.Tools.Heat.Main(string[]
args) + 0x24 bytes      

I have attached the problematic file.


----------------------------------------------------------------------

Comment By: RvdEls (rvdels)
Date: 2006-11-13 07:05

Message:
Logged In: YES 
user_id=1636851

After further investigations is discovered it hangs in:

    ext\UtilExtension\wixext\UtilFinalizeHarvesterMutator.cs

in the following loop:

  // remove the RegistryValue elements which were converted
into COM elements
  // that were successfully nested under the Component element
  foreach (DictionaryEntry entry in
indexedProcessedRegistryValues)
  {
      Wix.ISchemaElement element =
(Wix.ISchemaElement)entry.Value;
      Wix.RegistryValue registryValue =
(Wix.RegistryValue)entry.Key;

      while (null != element)
      {
          if (element == component)
          {
             
(Wix.IParentElement)registryValue.ParentElement).RemoveChild(registryValue);
              break;
          }
          element = element.ParentElement;
      }
  }


element.ParentElement seems to be pointing at itself.

After I add the following code at the end of the while loop
(just before element = element.ParentElement) heat
terminates o.k. and the result looks
o.k. 

  if (element == element.ParentElement)
  {
      break;
  }

I don't know if this is the right fix and why the
ParentElement pointer is pointing to itself.


----------------------------------------------------------------------

Comment By: RvdEls (rvdels)
Date: 2006-11-03 03:09

Message:
Logged In: YES 
user_id=1636851

Well I tried to attached the problematic file, but it was
too large...

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=642714&aid=1589839&group_id=105970

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
WiX-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-devs

Reply via email to