My Touchdesigner project has crashed multiple times, with the crash dialogue saying the Engine COMP in my network is the problem. The .tox that I’m loading is mainly just a Webclient DAT. There are two inputs, one is a DAT for the headers into the Webclient DAT, and the other is a DAT for the request body into the Webclient DAT.
I also couldn’t replicate the issue on my development machine (this crash was happening on the production machine). I did manage to generate some dump files, which I will attach here.
Device Specs:
Windows 10
Nvidia RTX 2060 driver 516.94 (tried downgrading to 512.95 but it still crashed)
Touchdesigner Version 2022.28040
Thanks for the report and dump files - and sorry you’re seeing crashes.
Are the DAT inputs to the Engine COMP unusually large? Do you know if it always crashes after a long time (eg a few hours) or can it happen quite quickly? Neither of these should be causing a crash, but it might help us identify the problem.
If you’re able to share a .toe with actual DAT content in use on the production machine, that might help us recreate the crash. You can e-mail support@derivative.ca if you’d rather not share them here.
Are the DAT inputs to the Engine COMP unusually large?
I’m not sure they’re unusually large, but they’re consistently ~1kb in size. I’m interacting with the Google Sheets API which lets you batch together update requests. Here’s a dump of the request body that I’m passing into the Engine COMP: api_body_dump.zip (15.3 KB) (it doesn’t seem like you can upload .txt/.dat files so sorry about the .zip)
Do you know if it always crashes after a long time (eg a few hours) or can it happen quite quickly?
Both ! When I first encountered the crash it would happen very quickly, within a couple of minutes. However, just today it crashed again after ~12 hours of running normally.
If you’re able to share a .toe with actual DAT content in use on the production machine, that might help us recreate the crash.
I’ll email you a .zip of the project in addition to what I’ve shared here.
I should mention that the reason why I’m approaching the webclient this way is that I was having some really terrible performance issues with the Webclient DAT. Ideally I would be making multiple requests a second (about 2-4), but as soon as I start sending requests performance exponentially decreases. As well, it takes longer and longer for the requests to complete, which leaves more and more connections open on the Webclient DAT. This in turn starts blocking the rest of my network which causes major dips in fps. I noticed this behavior even when I was making requests with small body payloads. Probably should open that as a bug in another thread, but wanted to mention it here.
Many thanks for the details - and for the e-mail. I haven’t successfully recreated the crash yet, but the dump files do tell us it’s happening setting the request body DAT input to TouchEngine. For now, if you are able to generate that part inside the Engine component, you should avoid the crash. We’ll keep looking at it and hopefully have an actual fix soon.
I’ve opened an issue on our internal tracker for the webclient DAT behaviour. It would definitely be easier if you could just use that without the Engine COMP at all.
Performance is probably suffering from the constant updating of the DAT output in text mode. I’d recommend changing the Web Client DAT output to be a clamped table, either formatted or unformatted. If you’re exclusively handling the requests in the callback then you could even forgo the DAT output and clamp to 0.