Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

msi - failed to marshal script action

516 views
Skip to first unread message

Andrej Jantzen

unread,
Oct 28, 2002, 5:48:07 AM10/28/02
to
Hello,

I'm getting a problem during install of an msi package on a client computer
with W2K SP2 (english), no special Windows Installer flags are active.
Activation of a log mode gives me the fail reason:

failed to marshal script action

The package is created by Wise Installer 3.52, on VBScript custom action is
defined. Interactively started scripts running ok, so the scripting runtime seems to be OK.
I tried different kinds of customs actions and different places for scripts, but
nothing helps, script doesnt start executing.
Can anybody help ?

Thanks,
Andrej

venu kelkar

unread,
Oct 28, 2002, 6:04:21 AM10/28/02
to
hi andrej,

what is the type value in Custom actions table?? it has to
be 134(128+6),
128 - installer waits for the vbscript to run completely
and then continues.try this. if u've already done this,
then check if there is on error resume next in the
vbscript. if it is there take out that statement and then
execute. maybe u'll get the error at the right place.

regards
venu kelkar

>.
>

R. Michael Sanford

unread,
Oct 28, 2002, 6:37:34 AM10/28/02
to
Need more info.

Post the relevant except from your log file.
Also, you seem to be saying that another script is running properly? Is
that right?
Post the script that is choking.
Also, an exact indication of where in the sequence(s) you are trying to run
the script would be helpful.
Lastly, post the relevant row from your CustomAction table. (Or at least the
value of the Type column.

--
R. Michael Sanford
ActiveInstall Corp.
http://www.activeinstall.com


"Andrej Jantzen" <jan...@removeit-docutec.de> wrote in message
news:OjIGR9mfCHA.2512@tkmsftngp10...

Andrej Jantzen

unread,
Oct 29, 2002, 5:16:11 AM10/29/02
to
Hi,
thanks for your answer.
- action type was 6 (synchronous execution in the Wise dialog)
- first line of the script is MsgBox
- it works ok on 2 other clients
- upgrade W2K to SP3 didn't help

I thought "synchronous" execuiton would be the same as "asynchronous, wait at end of the sequence",
or even "more simple" option.
I think the windows cfg is screwed, but I'll try that.

regards,
Andrej


"venu kelkar" <venuk...@yahoo.com> wrote in message news:1049501c27e71$c48e2790$2ae2...@phx.gbl...


> hi andrej,
>
> what is the type value in Custom actions table?? it has to
> be 134(128+6),
> 128 - installer waits for the vbscript to run completely
> and then continues.try this. if u've already done this,
> then check if there is on error resume next in the
> vbscript. if it is there take out that statement and then
> execute. maybe u'll get the error at the right place.
>
> regards
> venu kelkar
>

> >...


> >Activation of a log mode gives me the fail reason:
> >
> >failed to marshal script action
> >

> >Thanks,
> >Andrej
> >
> >.
> >

Andrej Jantzen

unread,
Oct 29, 2002, 5:35:52 AM10/29/02
to
Hi Michael,

Here log file:
...
MSI (s) (FC:60): Using well known SID for System
MSI (s) (FC:60): Finished allocating new user SID
Action ended 18:00:22: InstallFiles. Return value 1.
MSI (s) (FC:60): Doing action: aaCreateLogDir
Action start 18:00:22: aaCreateLogDir.
MSI (s) (FC:60): Creating MSIHANDLE (1) of type 790542 for thread 864
MSI (s) (FC:60): Creating MSIHANDLE (2) of type 0 for thread 864
MSI (s) (FC:60): Failed to marshal script action.
MSI (s) (FC:60): Failed to marshal script action.
MSI (s) (FC:60): Closing MSIHANDLE (2) of type 0 for thread 864
MSI (s) (FC:60): Closing MSIHANDLE (1) of type 790542 for thread 864
Action ended 18:00:22: aaCreateLogDir. Return value 3.
MSI (s) (FC:60): Machine policy value 'DisableRollback' is 0
MSI (s) (FC:60): Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (FC:60): Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (FC:60): Unlocking Server
Action ended 18:00:22: INSTALL. Return value 3.
...

Test script function to be called
...
Function myCreateLogDir
MsgBox "myCreateDir"
Call realCreateDir
myCreateLogDir = 0
End Function
...

This custom action is to be executed after "InstallFiles" sequence without any conditions,
Type=6(synchronous), script is located in binary table (but other places as said do not work, too)

Upgrade to SP3 didn't help, the same package works on other computer,
so I started to think that something in windows itself is screwed here.

Regards,
Andrej

"R. Michael Sanford" <msan...@activeinstall.com> wrote in message news:ONsDNYnfCHA.564@tkmsftngp10...


> Need more info.
>
> Post the relevant except from your log file.
> Also, you seem to be saying that another script is running properly? Is
> that right?
> Post the script that is choking.
> Also, an exact indication of where in the sequence(s) you are trying to run
> the script would be helpful.
> Lastly, post the relevant row from your CustomAction table. (Or at least the
> value of the Type column.
>
> --
> R. Michael Sanford
> ActiveInstall Corp.
> http://www.activeinstall.com
>
>
> "Andrej Jantzen" <jan...@removeit-docutec.de> wrote in message
> news:OjIGR9mfCHA.2512@tkmsftngp10...

> > ...

R. Michael Sanford

unread,
Oct 29, 2002, 6:06:32 AM10/29/02
to
Well nothing jumps out at me but here is one thing to try:

In your script file, remove EVERYTHING except something like this:

Function TestScript
MsgBox "Test"
End Function

Make sure you specify the function name in the CustomAction table. Add a
button to your welcome form that triggers a DoAction control event, using
this ca as an argument.

My thinking is that WI is reading in the ENTIRE script file and choking on
some other portion of it. AFAIK, the whole script is read into memory and
parsed, then executed. Errors that occur while the script is executing
usually show up in the log with pretty good information to help you debug,
but if it is unable to parse the script in the first place...

In other words, create the simplest possible scenario in which a script
would run.

BTW, you said it runs on another pc? What is different between the two?
Did you compare vbscript.dll versions?

Let us know how it goes!

--
R. Michael Sanford
ActiveInstall Corp.
http://www.activeinstall.com


"Andrej Jantzen" <jan...@removeit-docutec.de> wrote in message

news:#zYGHbzfCHA.3596@tkmsftngp08...

Andrej Jantzen

unread,
Nov 5, 2002, 1:18:58 PM11/5/02
to
Hi,

I tried it and it doesnt help - no scripts started.
Something got totally misconfigured in WI service or scripting
(as said vbs scripts or scripts in IE run without problems),
(re)installing of SP3, WI runtime 2.0.2600.2, IE of different versions,
repair option of W2K - nothing helps.
BTW, I found some reports about same symptoms with .Net Framework Beta2
with Office 2000 ("msi - failed to marshal script action"), but no solutions.
We have 2 problems now:

1. find if our own install packages contain bugs, I thinking about
a) using sysdiff to find out the changes in the file system and registry?
b) repackaging with Wise 4.2 ?

2. find the way to "repair" WI service on customer PC's (with a lot of 3rd party software),
which having this problem now
- if 1a helps, should be possible ?
- if not, open support case with MS (may be too long for us) ?

Any better ideas ?
Regards,
Andrej

"R. Michael Sanford" <msan...@activeinstall.com> wrote in message news:u1tIgrzfCHA.1756@tkmsftngp12...

Andrej Jantzen

unread,
Nov 8, 2002, 6:18:02 AM11/8/02
to
Hi,

So it's fixed !
Reason was a little tricky - I used VBoostTypes6.olb from Matthew Curland's
"Advanced Visual Basic 6" providing some nice features like support reference count
tricks for object lifetime management in hierarchical object models (we provide
in our app an extensive obect models for script-based customizing).
Dropping VBoostTypes6.olb file into an msi project creates some registry
entries in the registry table, these entries are removed during deinstallation.
The problem is that these entries already exists and should never be removed !
e.g. "ThreadingModel"="Both" for some interfaces in oleaut32.dll (full fix see below).
This causes (apart from other effects) misfunction of interaction with scripting engines
in a multithreading environment (marshalling etc).
Simple script (test.vbs) are running (interactively -> single thread in wscript.exe) ok,
but Windows Installer uses multithreading heavy !

Curious: why W2K reinstall/repair mode or service pack doesnt fix such basis things!

I fixed my merge module by manual removing of such entries, and providing
a reg file for computers corrupted by older install packages.

Thanks for your ideas,
Andrej


[HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}\InprocServer32]
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\CLSID\{B196B286-BAB4-101A-B69C-00AA00341D07}\InprocServer32]
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\Interface\{00000000-0000-0000-C000-000000000046}]
@="IUnknown"

[HKEY_CLASSES_ROOT\Interface\{00000000-0000-0000-C000-000000000046}\BaseInterface]
@=""

[HKEY_CLASSES_ROOT\Interface\{00000000-0000-0000-C000-000000000046}\NumMethods]
@="3"

[HKEY_CLASSES_ROOT\Interface\{00020400-0000-0000-C000-000000000046}]
@="IDispatch"

[HKEY_CLASSES_ROOT\Interface\{00020400-0000-0000-C000-000000000046}\NumMethods]
@="7"

[HKEY_CLASSES_ROOT\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid]
@="{00020420-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Interface\{00020400-0000-0000-C000-000000000046}\ProxyStubClsid32]
@="{00020420-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Interface\{B196B283-BAB4-101A-B69C-00AA00341D07}]
@="IProvideClassInfo"

[HKEY_CLASSES_ROOT\Interface\{B196B283-BAB4-101A-B69C-00AA00341D07}\NumMethods]
@="4"

[HKEY_CLASSES_ROOT\Interface\{B196B283-BAB4-101A-B69C-00AA00341D07}\ProxyStubClsid32]
@="{B196B286-BAB4-101A-B69C-00AA00341D07}"


0 new messages