Multithreaded Access In A HEAP_NO_SERIALIZE Heap

Application Verifier stop message

Heap violation detected. Multithreaded access in a HEAP_NO_SERIALIZE heap: thread <thread ID> is in a running state conflicting with thread <thread ID>.

Probable cause

A heap created with HEAP_NO_SERIALIZE flag is not supposed to be accessed simultaneously from two threads. The typical way this situation happens in a program is by linking with a single-threaded version of the C runtime. For instance, Visual C++ can link statically to such a library when proper flags are used.

Information displayed by Application Verifier in Tool Window

Heap Handle - Heap handle for the heap owning the block

Block address – N/A

Size - N/A

Description - Multithreaded access in a HEAP_NO_SERIALIZE heap: thread <thread ID> is in a running state conflicting with thread <thread ID>

Trace description – No Stack Frame for the current block

Additional information

Look at the call stack for both threads in question and determine why they are using the same NO_SERIALIZE heap at concurrently.

Frequency of this error is low.

See Also

Concepts

Heap Verifier