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

Reply via email to