Dang it. That's completely unrelated to the SQL change. I made an incorrect
assumption about presence of Certificate tables. Grr. It'll be fixed in the
next build.
PS: as is probably apparent by now, we do not have good unit testing to verify
changes in the Server CustomAction code. Even worse, I'm very rusty on the
code so I'm making dumb mistakes. Sorry for the trouble.
From: Michael Osmond [mailto:[EMAIL PROTECTED]
Sent: Sunday, December 17, 2006 16:23
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] Testing the ConfigureSQL fix
Rob,
Have now tested build 4813. Looks okay. Ran the install three times with no
ConfigureSQL issue (Log looks good).
However for your info the install then fails with a "Failed to read IIsWebs
table". I have made no changes to this part of the install, and there is an
IIsWebSite table (using Orca to double check).
Log details:
ConfigureIIs: Skipping ScaInstallWebSvcExt() because
IIsWebServiceExtension table not present
ConfigureIIs: Skipping ScaInstallAppPool() - required table not present
ConfigureIIs: Skipping ScaInstallMimeMap() - required table not present
ConfigureIIs: Skipping ScaGetHttpHeaders() - required tables not present.
ConfigureIIs: Skipping ScaGetWebErrors() - required tables not present.
ConfigureIIs: Error 0x80004004: IIsWebSiteCertificates table does not
exists or error.
ConfigureIIs: Error 0x80004004: Failed to get SSL Certificates.
ConfigureIIs: Error 0x80004004: failed to read IIsWebSite table
Error 26002. Failed to read IIsWebs table. (-2147467260 )
MSI (s) (9C!30) [10:06:25:770]: Product: CINS -- Error 26002. Failed to
read IIsWebs table. (-2147467260 )
At this point I need to move forward internally so I will be using build 4415
with a modified scasched.dll for the moment.
Regards
Michael
________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael Osmond
Sent: Friday, 15 December 2006 12:57 PM
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Testing the ConfigureSQL fix
Okay.
Probably won't get to it today. Will definitely get at it on Monday. ( Is it
today or yesterday there? )
Michael
________________________________
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Friday, 15 December 2006 12:55 PM
To: Michael Osmond; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix
Oh, sorry, I busted that build and tried to get a fix out really fast (that's
why there is a build 2 days later). I hadn't heard from you so I thought maybe
I squeaked it in. I should have sent mail as soon as I found the bug I
introduced.
Anyway, if you could grab the latest WiX v2 build instead, I think that will
work much, much better.
From: Michael Osmond [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 14, 2006 18:48
To: Rob Mensching; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix
2.0.4809 I grabbed it on wednesday I think
________________________________
From: Rob Mensching [mailto:[EMAIL PROTECTED]
Sent: Friday, 15 December 2006 12:43 PM
To: Michael Osmond; wix-users@lists.sourceforge.net
Subject: RE: Testing the ConfigureSQL fix
What build are you using?
From: Michael Osmond [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 14, 2006 17:35
To: wix-users@lists.sourceforge.net; Rob Mensching
Subject: Testing the ConfigureSQL fix
Hello Rob,
I only got back to testing this today - one busy week.
Build 4809 displayed a similar (or same) error - that is the custom action
crashes and you get the unclosed handles. I have spent a little time to track
down where in the code it is occuring.
Its in StrAllocStringAnsi - but now right at the start of the process. In the
call:
cch = MemSize(*ppwz); // get the count in bytes so we can check if it
failed (returns -1)
Below is the debug messages I added to the function to locate the error. And
below that the actual output.
Sorry its taken this long to get to it.
Michael
=============================================
/********************************************************************
StrAllocStringAnsi - allocates or reuses dynamic string memory and copies in an
existing ANSI string
NOTE: caller is responsible for freeing ppwz even if function fails
NOTE: cchSource must equal the length of wzSource (not including the NULL
terminator)
NOTE: if cchSource == 0, length of wzSource is used instead
********************************************************************/
extern "C" HRESULT DAPI StrAllocStringAnsi(
__inout LPWSTR* ppwz,
__in LPCSTR szSource,
__in DWORD_PTR cchSource,
__in UINT uiCodepage
)
{
Assert(ppwz && szSource);
HRESULT hr = S_OK;
LPWSTR pwz = NULL;
DWORD_PTR cch = 0;
DWORD_PTR cchDest = cchSource; // at least enough
OutputDebugStringA("#### Starting StrAllocStringAnsi !! 4809 x 2\r\n");
if (*ppwz)
{
OutputDebugStringA("#### StrAllocStringAnsi 0\r\n");
cch = MemSize(*ppwz); // get the count in bytes so we can check if it
failed (returns -1)
OutputDebugStringA("#### StrAllocStringAnsi 0-A\r\n");
if (-1 == cch)
{
ExitOnFailure(hr = E_INVALIDARG, "failed to get size of destination
string");
}
OutputDebugStringA("#### StrAllocStringAnsi 0-B\r\n");
cch /= sizeof(WCHAR); //convert the count in bytes to count in
characters
OutputDebugStringA("#### StrAllocStringAnsi 0-C\r\n");
}
OutputDebugStringA("#### StrAllocStringAnsi 1\r\n");
if (0 == cchSource)
{
cchDest = ::MultiByteToWideChar(uiCodepage, 0, szSource, -1, NULL, 0);
if (0 == cchDest)
{
ExitWithLastError1(hr, "failed to get required size for conversion
to unicode: %s", szSource);
}
--cchDest; //subtract one because MultiByteToWideChar includes space
for the NULL terminator that we track below
}
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
{
cchDest = cchSource - 1;
}
OutputDebugStringA("#### StrAllocStringAnsi 2\r\n");
if (cch < cchDest + 1)
{
OutputDebugStringA("#### StrAllocStringAnsi 3\r\n");
cch = cchDest + 1;
if (cch >= MAXDWORD / sizeof(WCHAR))
{
OutputDebugStringA("#### StrAllocStringAnsi 4\r\n");
ExitOnFailure1(hr = E_OUTOFMEMORY, "Not enough memory to allocate
string of size: %d", cch);
}
if (*ppwz)
{
OutputDebugStringA("#### StrAllocStringAnsi 5\r\n");
pwz = static_cast<LPWSTR>(MemReAlloc(*ppwz, sizeof(WCHAR) * cch,
TRUE));
}
else
{
OutputDebugStringA("#### StrAllocStringAnsi 6\r\n");
pwz = static_cast<LPWSTR>(MemAlloc(sizeof(WCHAR) * cch, TRUE));
}
ExitOnNull1(pwz, hr, E_OUTOFMEMORY, "failed to allocate string, len:
%d", cch);
OutputDebugStringA("#### StrAllocStringAnsi 7\r\n");
*ppwz = pwz;
}
OutputDebugStringA("\r\nAbout to call!! 4809");
if (0 == ::MultiByteToWideChar(uiCodepage, 0, szSource, 0 == cchSource ? -1
: (int)cchSource, *ppwz, (int)cch))
{
ExitWithLastError1(hr, "failed to convert to unicode: %s", szSource);
}
OutputDebugStringA("\r\nDone the call!!");
(*ppwz)[cchDest] = L'\0';
LExit:
return hr;
}
1204: ConfigureSql: #### Doing script: 'drop_TriggersConstraints'
1204: ConfigureSql: #### ScaSqlStr - Calling StrAllocStringAnsi
1204: #### Starting StrAllocStringAnsi !! 4809 x 2
1204: #### StrAllocStringAnsi 0
1204: ConfigureSql: Debug Assert Message: Assertion failed in c:\baydev\install
\wix2.0.4809\src\ca\wcautil\wcautil.cpp, 64
CustomAction ConfigureSql called WcaInitialize() but not WcaTerminate()
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users