Interop-debugging fails when using more than 63 TLS slots


Here’s a Public Service Announcement: Interop-debugging may hang if the debuggee uses more than 63 native Thread Local-Storage slots and then loads the CLR. KB939969 has more details, including three workarounds. This is fixed in Orcas, so only applies to pre-Orcas runtimes (like .NET 2.0). You really shouldn’t be using a lot of TLS slots in the first place, so ideally this isn’t an issue for more people.

Windows used to restrict your TLS slots, so this used to not be an issue. As windows increased the TLS limit and then more apps started using more TLS slots, folks started hitting this.

Comments (3)

  1. Pawel Pabich says:

    "This is fixed in Orcas, so only applies to pre-Orcas runtimes (like .NET 2.0)."

    As far as I know Orcas still uses the same runtime as VS 2005 does. The only difference is  related to the libraries that are part of BCL. Or  I’m missing something?

  2. jmstall says:

    Orcas includes a service pack to the VS2005 runtime. This fix is in that service pack.