You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like CFE doesn't guard against visiting the same record when traversing deeply nested constant records.
Constants form a DAG, and the same constant can be mentioned multiple times. Traversing them deeply without noticing repeated constants can take exponential time.
Part of #49713.
It looks like CFE doesn't guard against visiting the same record when traversing deeply nested constant records.
Constants form a DAG, and the same constant can be mentioned multiple times. Traversing them deeply without noticing repeated constants can take exponential time.
For example, adaptation of https://github.com/dart-lang/sdk/blob/main/tests/language/canonicalize/hashing_memoize_instance_test.dart for records:
When CFE is interrupted in the debugger, I can see the following repeated stack trace:
If all those constants are typed with
(Object?, Object?)
type, CFE still hangs with the following repeated stack trace:/cc @johnniwinther
The text was updated successfully, but these errors were encountered: