Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
Hi all: We are using the latest 2.0 build of wix and are now seeing this bug 80-90% of the time during installs. Has anybody made any progress in nailing down these leaked MSI Handles in the sql custom actions? Thanks, Dana - 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-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
We think we've identified a fix for this problem. We've made sure the strings are null terminated and also changed the strutil file so it wouldn't be looking beyond the end of the array. After introducing this fix, we've run our upgrades and installs 8-10 times without any failures so far (we're still holding our breaths, though). Two files were edited: src/ca/serverca/scasched/scasqlstr.cpp (line 269) Before: // We have an ANSI string so convert it to UNICODE. cchScript = cbScript; hr = StrAllocStringAnsi(pwzScriptBuffer, reinterpret_castLPCSTR(pbScript), cchScript, CP_ACP); ExitOnFailure1(hr, Failed to allocate WCHAR string of size '%d', cchScript); After: LPSTR pszScript = reinterpret_castLPSTR(pbScript); pszScript[cbRead] = '\0'; cchScript = cbRead; // We have an ANSI string so convert it to UNICODE. hr = StrAllocStringAnsi(pwzScriptBuffer, pszScript, cchScript, CP_ACP); ExitOnFailure1(hr, Failed to allocate WCHAR string of size '%d', cchScript); src/dutil/strutil.cpp (Line 246) Before: else if (L'\0' == szSource[cchSource]) // if the source already had a null terminator, don't count that in the character count because we track it below After: else if (L'\0' == szSource[cchSource-1]) // if the source already had a null terminator, don't count that in the character count because we track it below Dana On 8/22/07, Dana Gutride [EMAIL PROTECTED] wrote: Hi all: We are using the latest 2.0 build of wix and are now seeing this bug 80-90% of the time during installs. Has anybody made any progress in nailing down these leaked MSI Handles in the sql custom actions? Thanks, Dana - 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-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
Ok, Try this: make sure the following attributes in both SqlFileSpec and SqlLogFileSpec have the same length (in char count): Name Filename Size MaxSize GrowthSize Let me know if that helps. If it does the scaexec.cpp needs to be fixed. Rene From: Dana Gutride [mailto:[EMAIL PROTECTED] Sent: Wed 8/22/2007 19:33 To: Schrieken, Rene Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We are using both sqlfilespec and logfilespec. Dana On 8/22/07, Schrieken, Rene [EMAIL PROTECTED] wrote: Hi Dana, Just a quick question: Are you using SqlDataBase with SqlFileSpec and SqlLogFileSpec? Tnx Rene From: [EMAIL PROTECTED] on behalf of Dana Gutride Sent: Wed 8/22/2007 15:24 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hi all: We are using the latest 2.0 build of wix and are now seeing this bug 80-90% of the time during installs. Has anybody made any progress in nailing down these leaked MSI Handles in the sql custom actions? Thanks, Dana This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. - 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-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
Can you also check scaexec.cpp (wix2.0): I believe this should be fixed:(line 610 onwards) before: hr = WcaReadStringFromCaData(pwz, pwzTemp); ExitOnFailure1(hr, failed to read log file spec name from custom action data: %S, pwz); hr = StringCchCopyW(sfLog.wzName, countof(sfDb.wzName), pwzTemp); ExitOnFailure1(hr, failed to copy log file spec name: %S, pwzTemp); After: hr = WcaReadStringFromCaData(pwz, pwzTemp); ExitOnFailure1(hr, failed to read log file spec name from custom action data: %S, pwz); hr = StringCchCopyW(sfLog.wzName, countof(sfLog.wzName), pwzTemp); ExitOnFailure1(hr, failed to copy log file spec name: %S, pwzTemp); Same goes for the other 4 StringCchCopyW Rene From: [EMAIL PROTECTED] on behalf of Dana Gutride Sent: Wed 8/22/2007 19:42 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We think we've identified a fix for this problem. We've made sure the strings are null terminated and also changed the strutil file so it wouldn't be looking beyond the end of the array. After introducing this fix, we've run our upgrades and installs 8-10 times without any failures so far (we're still holding our breaths, though). Two files were edited: src/ca/serverca/scasched/scasqlstr.cpp (line 269) Before: // We have an ANSI string so convert it to UNICODE. cchScript = cbScript; hr = StrAllocStringAnsi(pwzScriptBuffer, reinterpret_castLPCSTR(pbScript), cchScript, CP_ACP); ExitOnFailure1(hr, Failed to allocate WCHAR string of size '%d', cchScript); After: LPSTR pszScript = reinterpret_castLPSTR(pbScript); pszScript[cbRead] = '\0'; cchScript = cbRead; // We have an ANSI string so convert it to UNICODE. hr = StrAllocStringAnsi(pwzScriptBuffer, pszScript, cchScript, CP_ACP); ExitOnFailure1(hr, Failed to allocate WCHAR string of size '%d', cchScript); src/dutil/strutil.cpp (Line 246) Before: else if (L'\0' == szSource[cchSource]) // if the source already had a null terminator, don't count that in the character count because we track it below After: else if (L'\0' == szSource[cchSource-1]) // if the source already had a null terminator, don't count that in the character count because we track it below Dana On 8/22/07, Dana Gutride [EMAIL PROTECTED] wrote: Hi all: We are using the latest 2.0 build of wix and are now seeing this bug 80-90% of the time during installs. Has anybody made any progress in nailing down these leaked MSI Handles in the sql custom actions? Thanks, Dana This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. - 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-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
This is happening during upgrades much more often than a new install. The only thing that has changed during our dev cycle has been the length of the sql scripts that are incorporated into the upgrade process. The file specs haven't caused us any trouble. Dana On 8/22/07, Schrieken, Rene [EMAIL PROTECTED] wrote: Ok, Try this: make sure the following attributes in both SqlFileSpec and SqlLogFileSpec have the same length (in char count): Name Filename Size MaxSize GrowthSize Let me know if that helps. If it does the scaexec.cpp needs to be fixed. Rene -- *From:* Dana Gutride [mailto:[EMAIL PROTECTED] *Sent:* Wed 8/22/2007 19:33 *To:* Schrieken, Rene *Subject:* Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We are using both sqlfilespec and logfilespec. Dana On 8/22/07, Schrieken, Rene [EMAIL PROTECTED] wrote: Hi Dana, Just a quick question: Are you using SqlDataBase with SqlFileSpec and SqlLogFileSpec? Tnx Rene -- *From:* [EMAIL PROTECTED] on behalf of Dana Gutride *Sent:* Wed 8/22/2007 15:24 *To:* wix-users@lists.sourceforge.net *Subject: *Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hi all: We are using the latest 2.0 build of wix and are now seeing this bug 80-90% of the time during installs. Has anybody made any progress in nailing down these leaked MSI Handles in the sql custom actions? Thanks, Dana This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. - 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-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
At the risk of stating the obvious, conditions on custom actions are separate from feature selection, so the unstated assumption here is that your custom action condition is associated with the feature disposition. Phil Wilson From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: Friday, June 22, 2007 11:18 AM To: Mike Dimmick; Rob Mensching; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE I do have a feature in my install which run's SQL scripts but I'm getting this error even when that feature is not selected. That could explain why InstallSqlData is being called. So given that... is there a problem with InstallSqlData being called when the feature containing the sql data isn't selected? From: Mike Dimmick [mailto:[EMAIL PROTECTED] Sent: Thursday, June 21, 2007 1:35 PM To: Don Tasanasanta; 'Rob Mensching'; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I can't recall - does Windows Installer use a new msiexec process for every custom action, or does it reuse the same one? I suspect this may be an undocumented area, undocumented so no-one relies on it, but since creating a process is a costly affair I would expect Windows Installer to keep the same process around and reuse it if the security context (i.e. impersonate vs. noImpersonate) is the same. If it reuses the same one, it could be that something else is trashing the heap before InstallSqlData even runs and that's why you're ending up in a mess. Candle only adds a reference to InstallSqlData if there are some SQL elements in the source file, and light only includes those Fragments that are referenced. All the SQL actions are in their own fragment in the sca.wxs file in WiX 2.0, and in their own embedded wixlib in WixSqlExtension.dll in WiX 3.0. Check with Orca to see whether InstallSqlData appears in the MSI you're having trouble with. I would have thought it would be pretty unlikely that calling through a corrupt/uninitialised pointer would call into InstallSqlData. However, wild-write bugs are like that. What other custom actions or extended WiX schema are you using? -- Mike Dimmick From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: 21 June 2007 18:34 To: Rob Mensching; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We have been trying to attach a debugger to this issue but it doesn't reliably duplicate but it does happen often enough to be a nuisance. Here's another question though... we are encountering this error on installs that do not do anything with SQL. Why is InstallSqlData throwing an error when there is no SQL data to be installed? From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 08, 2007 7:54 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm, that would suggest that there is still some memory issue. It is likely that your SQL script is exactly the right shape and size to hit this issue. If you could attach a debugger to the install with pageheap turned on, hopefully we can narrow down the exception. From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: Monday, May 07, 2007 11:26 AM To: Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've upgraded our build process to 2.0.5213.0, recompiled and ran again. We're still having a problem. Here's an excerpt from the logs. Let me know if you need the whole file. Action start 16:53:33: InstallCertificates. MSI (s) (6C:94) [16:53:33:920]: Doing action: InstallSqlData Action ended 16:53:33: InstallCertificates. Return value 1. MSI (s) (6C:AC) [16:53:33:947]: Invoking remote custom action. DLL: D:\WINDOWS\Installer\MSIF.tmp, Entrypoint: InstallSqlData MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (591) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (590) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (583) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (582) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (504) of type 790541 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Note: 1: 2769 2: InstallSqlData 3: 5 Action start 16:53:33: InstallSqlData. Info 2769. Custom Action InstallSqlData did not close 5 MSIHANDLEs. MSI (s) (6C:94) [16:53:34:001]: Machine policy value 'DisableRollback' is 0 MSI (s) (6C:94) [16:53:34:001]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\R ollback\Scripts 3: 2 Action ended 16:53:34: InstallSqlData. Return value 3. MSI (s) (6C:94) [16:53:34:014
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
InstallSqlData does have a condition: NOT SKIPINSTALLSQLDATA. You could set that if there's no need for it to run, based on your feature/component selection states. If it does run but doesn't need to actually do anything (no components containing SQL elements were selected for installation) it doesn't bother scheduling the deferred actions that actually do the work. The pattern in WiX is to have a 'schedule' custom action which reads the MSI tables to work out what to do, and which schedules one or more 'exec' deferred custom actions which actually do it. (Due to a Windows Installer 1.1 limitation, the 'schedule' custom actions live in a different DLL from the 'execute' actions.) The schedule action communicates with the exec action(s) using the exec actions' custom action data property. InstallSqlData is the schedule action for the SQL elements (at install - the uninstall schedule action is UninstallSqlData). -- Mike Dimmick _ From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: 22 June 2007 19:18 To: Mike Dimmick; Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I do have a feature in my install which run's SQL scripts but I'm getting this error even when that feature is not selected. That could explain why InstallSqlData is being called. So given that. is there a problem with InstallSqlData being called when the feature containing the sql data isn't selected? _ From: Mike Dimmick [mailto:[EMAIL PROTECTED] Sent: Thursday, June 21, 2007 1:35 PM To: Don Tasanasanta; 'Rob Mensching'; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I can't recall - does Windows Installer use a new msiexec process for every custom action, or does it reuse the same one? I suspect this may be an undocumented area, undocumented so no-one relies on it, but since creating a process is a costly affair I would expect Windows Installer to keep the same process around and reuse it if the security context (i.e. impersonate vs. noImpersonate) is the same. If it reuses the same one, it could be that something else is trashing the heap before InstallSqlData even runs and that's why you're ending up in a mess. Candle only adds a reference to InstallSqlData if there are some SQL elements in the source file, and light only includes those Fragments that are referenced. All the SQL actions are in their own fragment in the sca.wxs file in WiX 2.0, and in their own embedded wixlib in WixSqlExtension.dll in WiX 3.0. Check with Orca to see whether InstallSqlData appears in the MSI you're having trouble with. I would have thought it would be pretty unlikely that calling through a corrupt/uninitialised pointer would call into InstallSqlData. However, wild-write bugs are like that. What other custom actions or extended WiX schema are you using? -- Mike Dimmick _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: 21 June 2007 18:34 To: Rob Mensching; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We have been trying to attach a debugger to this issue but it doesn't reliably duplicate but it does happen often enough to be a nuisance. Here's another question though. we are encountering this error on installs that do not do anything with SQL. Why is InstallSqlData throwing an error when there is no SQL data to be installed? _ From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 08, 2007 7:54 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm, that would suggest that there is still some memory issue. It is likely that your SQL script is exactly the right shape and size to hit this issue. If you could attach a debugger to the install with pageheap turned on, hopefully we can narrow down the exception. From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: Monday, May 07, 2007 11:26 AM To: Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've upgraded our build process to 2.0.5213.0, recompiled and ran again. We're still having a problem. Here's an excerpt from the logs. Let me know if you need the whole file. Action start 16:53:33: InstallCertificates. MSI (s) (6C:94) [16:53:33:920]: Doing action: InstallSqlData Action ended 16:53:33: InstallCertificates. Return value 1. MSI (s) (6C:AC) [16:53:33:947]: Invoking remote custom action. DLL: D:\WINDOWS\Installer\MSIF.tmp, Entrypoint: InstallSqlData MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (591) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (590) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (583) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (582) of type 790540 for thread
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
We have been trying to attach a debugger to this issue but it doesn't reliably duplicate but it does happen often enough to be a nuisance. Here's another question though... we are encountering this error on installs that do not do anything with SQL. Why is InstallSqlData throwing an error when there is no SQL data to be installed? From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 08, 2007 7:54 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm, that would suggest that there is still some memory issue. It is likely that your SQL script is exactly the right shape and size to hit this issue. If you could attach a debugger to the install with pageheap turned on, hopefully we can narrow down the exception. From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: Monday, May 07, 2007 11:26 AM To: Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've upgraded our build process to 2.0.5213.0, recompiled and ran again. We're still having a problem. Here's an excerpt from the logs. Let me know if you need the whole file. Action start 16:53:33: InstallCertificates. MSI (s) (6C:94) [16:53:33:920]: Doing action: InstallSqlData Action ended 16:53:33: InstallCertificates. Return value 1. MSI (s) (6C:AC) [16:53:33:947]: Invoking remote custom action. DLL: D:\WINDOWS\Installer\MSIF.tmp, Entrypoint: InstallSqlData MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (591) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (590) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (583) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (582) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (504) of type 790541 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Note: 1: 2769 2: InstallSqlData 3: 5 Action start 16:53:33: InstallSqlData. Info 2769. Custom Action InstallSqlData did not close 5 MSIHANDLEs. MSI (s) (6C:94) [16:53:34:001]: Machine policy value 'DisableRollback' is 0 MSI (s) (6C:94) [16:53:34:001]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\R ollback\Scripts 3: 2 Action ended 16:53:34: InstallSqlData. Return value 3. MSI (s) (6C:94) [16:53:34:014]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\R ollback\Scripts 3: 2 MSI (s) (6C:94) [16:53:34:014]: No System Restore sequence number for this installation. MSI (s) (6C:94) [16:53:34:014]: Unlocking Server Action ended 16:53:34: INSTALL. Return value 3. From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 18, 2007 10:40 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm. Can you quickly try the latest WiX v2 release: http://wix.sourceforge.net/releases/2.0.5213.0/. That should quickly tell us if there is still a problem. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: Wednesday, April 18, 2007 10:24 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've looked back and seen that there's some history to this problem. I'm wondering if a solution has been found and implemented. I'm using wix version 2.0.4820.0 and now encountering this problem 100% of the time in the last 2 builds during silent installs only. - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
I can't recall - does Windows Installer use a new msiexec process for every custom action, or does it reuse the same one? I suspect this may be an undocumented area, undocumented so no-one relies on it, but since creating a process is a costly affair I would expect Windows Installer to keep the same process around and reuse it if the security context (i.e. impersonate vs. noImpersonate) is the same. If it reuses the same one, it could be that something else is trashing the heap before InstallSqlData even runs and that's why you're ending up in a mess. Candle only adds a reference to InstallSqlData if there are some SQL elements in the source file, and light only includes those Fragments that are referenced. All the SQL actions are in their own fragment in the sca.wxs file in WiX 2.0, and in their own embedded wixlib in WixSqlExtension.dll in WiX 3.0. Check with Orca to see whether InstallSqlData appears in the MSI you're having trouble with. I would have thought it would be pretty unlikely that calling through a corrupt/uninitialised pointer would call into InstallSqlData. However, wild-write bugs are like that. What other custom actions or extended WiX schema are you using? -- Mike Dimmick _ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: 21 June 2007 18:34 To: Rob Mensching; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We have been trying to attach a debugger to this issue but it doesn't reliably duplicate but it does happen often enough to be a nuisance. Here's another question though. we are encountering this error on installs that do not do anything with SQL. Why is InstallSqlData throwing an error when there is no SQL data to be installed? _ From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 08, 2007 7:54 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm, that would suggest that there is still some memory issue. It is likely that your SQL script is exactly the right shape and size to hit this issue. If you could attach a debugger to the install with pageheap turned on, hopefully we can narrow down the exception. From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: Monday, May 07, 2007 11:26 AM To: Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've upgraded our build process to 2.0.5213.0, recompiled and ran again. We're still having a problem. Here's an excerpt from the logs. Let me know if you need the whole file. Action start 16:53:33: InstallCertificates. MSI (s) (6C:94) [16:53:33:920]: Doing action: InstallSqlData Action ended 16:53:33: InstallCertificates. Return value 1. MSI (s) (6C:AC) [16:53:33:947]: Invoking remote custom action. DLL: D:\WINDOWS\Installer\MSIF.tmp, Entrypoint: InstallSqlData MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (591) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (590) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (583) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (582) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (504) of type 790541 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Note: 1: 2769 2: InstallSqlData 3: 5 Action start 16:53:33: InstallSqlData. Info 2769. Custom Action InstallSqlData did not close 5 MSIHANDLEs. MSI (s) (6C:94) [16:53:34:001]: Machine policy value 'DisableRollback' is 0 MSI (s) (6C:94) [16:53:34:001]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollb ack\Scripts 3: 2 Action ended 16:53:34: InstallSqlData. Return value 3. MSI (s) (6C:94) [16:53:34:014]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollb ack\Scripts 3: 2 MSI (s) (6C:94) [16:53:34:014]: No System Restore sequence number for this installation. MSI (s) (6C:94) [16:53:34:014]: Unlocking Server Action ended 16:53:34: INSTALL. Return value 3. _ From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 18, 2007 10:40 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm. Can you quickly try the latest WiX v2 release: http://wix.sourceforge.net/releases/2.0.5213.0/. That should quickly tell us if there is still a problem. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: Wednesday, April 18, 2007 10:24 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've looked back and seen that there's some history to this problem. I'm wondering if a solution has been found and implemented. I'm using wix version 2.0.4820.0 and now encountering this problem 100% of the time
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
At the risk of being wrong, I believe I've read ( and witnessed in task manager ) that each CA runs in a new msiexec process. Mike Dimmick [EMAIL PROTECTED] wrote:v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} I cant recall does Windows Installer use a new msiexec process for every custom action, or does it reuse the same one? I suspect this may be an undocumented area, undocumented so no-one relies on it, but since creating a process is a costly affair I would expect Windows Installer to keep the same process around and reuse it if the security context (i.e. impersonate vs. noImpersonate) is the same. If it reuses the same one, it could be that something else is trashing the heap before InstallSqlData even runs and thats why youre ending up in a mess. Candle only adds a reference to InstallSqlData if there are some SQL elements in the source file, and light only includes those Fragments that are referenced. All the SQL actions are in their own fragment in the sca.wxs file in WiX 2.0, and in their own embedded wixlib in WixSqlExtension.dll in WiX 3.0. Check with Orca to see whether InstallSqlData appears in the MSI youre having trouble with. I would have thought it would be pretty unlikely that calling through a corrupt/uninitialised pointer would call into InstallSqlData. However, wild-write bugs are like that. What other custom actions or extended WiX schema are you using? -- Mike Dimmick - From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: 21 June 2007 18:34 To: Rob Mensching; wix-users@lists.sourceforge.net Subject: Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE We have been trying to attach a debugger to this issue but it doesnt reliably duplicate but it does happen often enough to be a nuisance. Heres another question though we are encountering this error on installs that do not do anything with SQL. Why is InstallSqlData throwing an error when there is no SQL data to be installed? - From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 08, 2007 7:54 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm, that would suggest that there is still some memory issue. It is likely that your SQL script is exactly the right shape and size to hit this issue. If you could attach a debugger to the install with pageheap turned on, hopefully we can narrow down the exception. From: Don Tasanasanta [mailto:[EMAIL PROTECTED] Sent: Monday, May 07, 2007 11:26 AM To: Rob Mensching; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Ive upgraded our build process to 2.0.5213.0, recompiled and ran again. Were still having a problem. Heres an excerpt from the logs. Let me know if you need the whole file. Action start 16:53:33: InstallCertificates. MSI (s) (6C:94) [16:53:33:920]: Doing action: InstallSqlData Action ended 16:53:33: InstallCertificates. Return value 1. MSI (s) (6C:AC) [16:53:33:947]: Invoking remote custom action. DLL: D:\WINDOWS\Installer\MSIF.tmp, Entrypoint: InstallSqlData MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (591) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (590) of type 790531 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (583) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (582) of type 790540 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Leaked MSIHANDLE (504) of type 790541 for thread 2488 MSI (s) (6C:AC) [16:53:34:001]: Note: 1: 2769 2: InstallSqlData 3: 5 Action start 16:53:33: InstallSqlData. Info 2769. Custom Action InstallSqlData did not close 5 MSIHANDLEs. MSI (s) (6C:94) [16:53:34:001]: Machine policy value 'DisableRollback' is 0 MSI (s) (6C:94) [16:53:34:001]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 Action ended 16:53:34: InstallSqlData. Return value 3. MSI (s) (6C:94) [16:53:34:014]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 MSI (s) (6C:94) [16:53:34:014]: No System Restore sequence number for this installation. MSI (s) (6C:94) [16:53:34:014]: Unlocking Server Action ended 16:53:34: INSTALL. Return value 3. - From: Rob Mensching [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 18, 2007 10:40 AM To: Don Tasanasanta; wix-users@lists.sourceforge.net Subject: RE: [WiX-users] ConfigureSQL Leaked MSIHANDLE Hmm. Can you quickly try the latest WiX v2 release: http://wix.sourceforge.net
[WiX-users] ConfigureSQL Leaked MSIHANDLE
I've looked back and seen that there's some history to this problem. I'm wondering if a solution has been found and implemented. I'm using wix version 2.0.4820.0 and now encountering this problem 100% of the time in the last 2 builds during silent installs only. - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] ConfigureSQL Leaked MSIHANDLE
Hmm. Can you quickly try the latest WiX v2 release: http://wix.sourceforge.net/releases/2.0.5213.0/. That should quickly tell us if there is still a problem. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Don Tasanasanta Sent: Wednesday, April 18, 2007 10:24 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] ConfigureSQL Leaked MSIHANDLE I've looked back and seen that there's some history to this problem. I'm wondering if a solution has been found and implemented. I'm using wix version 2.0.4820.0 and now encountering this problem 100% of the time in the last 2 builds during silent installs only. - This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users