XD crashes

One of users reports that XD crashes every time he’s using the plugin or least he can reproduce it. Can you share ideas what might be the reason? We can’t reproduce it on our side.
crash.zip (38.3 KB)

hmm. I can’t reproduce it either. Has the user updated XD to the latest?

Per crash logs attached he’s using 24.4.22.1. It seems to be the most recent version for now. At least I have the same version and don’t see any updates available.

Looking at your crash log, it seems that the V8 engine is crashing from an infinite recursion in your Javascript–I’ve seen that, too.

And this is something Adobe’s aware of.

@cpryland I’m curious what brought you to the conclusion that this is specifically a recursion issue? Is it because you’re seeing in the log that a lot of memory is being used?

No, because there are exactly 511 identical recursion frames in V8.

Kerry confirmed this, and I think it’s been logged?

You can easily recreate in any plugin: just have some code

function foo () {
    return foo()
}

and run foo().

Yes – if your plugin has a bug where it has an infinite recursion (or eats memory infinitely), XD will eventually crash as a result. This is one of the rare instances where a misbehaving plugin can cause serious consequences to the overall XD application.

Ideally we’d like to protect against this better, but for now it’s important for plugin developers to try to fix any bugs like this in their plugins. @gdreyv, can your user share a specific file with you that will reliably reproduce the bug? Anything like that?

We got the file but can’t reproduce the error so far. I believe it’s caused by some unique set of settings/parameters. Anyway it will be grate to have kind of js call stack in such cases.

Look at the thread “V8 Manager” in your crash log. Pretty simple tell-tale with 511 frames on the stack, with only the first 28 or so being symbolized.

@peterflynn @kerrishotts

Infinite recursion in a plugin still crashes the latest XD hard.

Seems like this is something that V8 would definitely be checking; wonder why XD’s incarnation of V8 wouldn’t?