I am hunting down this issue where a #godot 3.5.2 app runs flawlessly on Android for days and then just dies.
No unhandled exceptions, nothing.

We have the exact same application deployed on hundreds of piece of identical hardware with the exact same hardware and #android #bsp

Some never crash, others crash every hour.

It's driving me nuts.
#godot #csharp #gdscript

@delegatevoid I had something like that recently. Turns out I had a very slow memory leak. Check how many, if any, orphan nodes are being generated while the game is running.
@LexGear @delegatevoid but still, shouldn't it crash on all? Assuming they are doing the same test on all devices. It's an incredibly hard bug to find anyway. I wonder how much time it takes to crash (ok, it's around an hour - not extremely bad) and also how it is possible there is nothing in logcat.

@mihamarkic @LexGear doens't seem to be related to orphaned nodes. I've none.

The time before is crashes is pretty random could be anything from 2 minutes to 2 days.

All devices are also controlled in the exact same at the exact same time.

I think it might be a bug in the native mono code, and capturing those in the GD code....

@delegatevoid @mihamarkic Oh bummer. Okay, the next thing I'd try is to log the game while its running and capture the crash errors. I did something like this in terminal:

./MyGame.x86_64 > log.txt 2>&1

@LexGear @mihamarkic we have extremely detailed logging via logcat.
But it seems whatever exception is causing the crash is not managed but native code. Those are hard to capture.

The node count is steady at 756 nodes and no orphans.

There is also no user interaction with the app. So all the devices run exactly the same game loop with the only interaction being: "They get updated data from a remote system."

Maybe I am going to do the dreaded upgrade from 3.5.2 to 3.6.2

@delegatevoid @LexGear What does logcat say? There has to be a crash report with call stack and such.
@mihamarkic @LexGear nothing in logcat on the managed side. So now I am taking one of the devices and let it logcat to disk for as long as it takes to then be able to review it. Because just looking at it won't help I could be sitting here for days. When the app crashes it restarts very fast.
@delegatevoid @LexGear But even if it is not managed code, it should give you at least a hint on where app crashes. You might also consider building Godot with debug symbols and use that for getting even more info and/or more logging.