NDI project memory access violation

The issue happens in both 2022.33910 and 2023.11340 running on Windows 11

We have 6 identical computers running the same project files. Each computer is running two instances of touchdesigner. One of those instances crashes frequently on one machine (after anywhere from a minute to ~8hrs), infrequently on another machine, and never at all on the remaining 4 computers.

Of the two projects running, only one of them crashes and the other remains stable.

The crashing scene is pretty simple, there are videodevicein and ndiin TOPs that bring in camera feeds, which are then formatted, have text overlaid and then are sent out via NDI.

I’ve seen a crash window pop up that says ‘Failed inside operator: /project1/…/text2’. This text TOP just has the video as an input and it is comping text onto of it, doesn’t seem like it could be responsible for a crash in usual circumstances.

The CPU and memory usage remain stable and low, both under 15%.

The dmp files seem to indicate a failure to write to memory:

EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ffa85094a1b (libTD+0x0000000000cc4a1b)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000001
Parameter[1]: 00007ffa877113a0
Attempt to write to address 00007ffa877113a0

PROCESS_NAME: TouchDesigner.exe

WRITE_ADDRESS: 00007ffa877113a0

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR: c0000005

EXCEPTION_PARAMETER1: 0000000000000001

EXCEPTION_PARAMETER2: 00007ffa877113a0

STACK_TEXT:
000000c2ed3fab90 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : libTD+0xcc4a1b

STACK_COMMAND: ~0s; .ecxr ; kb

SYMBOL_NAME: libTD+cc4a1b

MODULE_NAME: libTD

IMAGE_NAME: libTD.dll

FAILURE_BUCKET_ID: INVALID_POINTER_WRITE_c0000005_libTD.dll!Unknown

TouchDesignerCrash.2022.33910.3.dmp (1.1 MB)

Could this be TD bug or is this more likely a memory hardware issue? It is strange to get such different behavior on identical setups.

Would damaged memory result in a “The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s” error? Is there any other information I should collect to reveal more clues?

Hey, thanks for the report and sorry you are running into this crash. Does it always crash with the same message? Are you able to share more .dmp files so I can try to triangular the issue?
The fact the same project runs fins on other machines, and the content of this .dmp file showing a near impossible spot for the crash to occur does mean it could be a hardware issue. It could also be memory corruption occurring inside of TouchDesigner’s code though. Have you run a memory testing app on that machine to see if any faults are shown?

Hey Malcolm, thank you for the quick response!

It usually doesn’t show the “failed inside operator” message, but the few times I’ve seen that pop up it has pointed to the same node.

The other dmp files that I’ve checked have the same error code with different addresses, etc. Here’s a zip with more, I’ve added a “1_” prefix to the dmps from the more frequently crashing computer, and “2_” for the other one. TDcrashfiles.zip (986.5 KB)

I haven’t yet run memory diagnostics but will try to do that next. The computers are remote and used for a show every day so I’ll find a time that can happen.

Thanks for the extra .dmp files. They are crashing in a few random places, none of them really make sense. I hate to blame hardware, but I do think it’s worth checking in this case. Memory corruption by us or another library may be possible as well, so it may be worth trying to run a testcase with a simpler file (remove some operators) and see if things become stable on those machines.

Ok thank you, that makes sense. I’ll report back if it we uncover anything else that suggests it could be related to software.