Microsoft KB Archive/266071

= FIX: JScript Garbage Collector Is in Inconsistent State When Many Cross-Thread Calls Are Made =

Article ID: 266071

Article Last Modified on 5/11/2006

-

APPLIES TO


 * Microsoft JScript 5.0
 * Microsoft Internet Explorer 5.0
 * Microsoft Internet Explorer 5.01

-



This article was previously published under Q266071



SYMPTOMS
Any multi-threaded host that uses JScript to make calls to marshaled objects may experience spurious script errors and application failures.



CAUSE
JScript implements a mark and sweep garbage collector. During the sweep phase of a garbage collection, if the garbage collector has a reference to a proxy, a release of the proxy causes a call out to the marshaled object. During this call out, another thread may make a call into the thread on which the garbage collector is running. The garbage collector has code to detect this case and abort the garbage collection procedure so that the incoming call can execute script code correctly.

To abort the garbage collector in progress, the code must clear the bits set during the mark phase. The code was incorrectly setting the bits instead of clearing them.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

To resolve this problem, install version 5.5 of the Microsoft Windows Script Engines.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

This problem was first corrected in Windows 2000 Service Pack 1.

This problem was corrected in version 5.5 of the Windows Script Engines.

