-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Illegal instruction, not sure how it occurs, rr report included #38312
Comments
Put a few hours into extracting a mwe but gave up. |
There is a struct with a union over missing involved might be similar to #38224 |
the bug does not occur in 1.3, additional info |
Looks like the issue is a concrete type that doesn't get interned:
Codegen gets very unhappy as a result. |
Alright, both these types were deserialized from (different) .ji files. @JeffBezanson @vtjnash how is uniqueing of concrete types supposed to work for datatypes deserialized from .ji files. |
MWE:
|
Huh:
|
This issue is caused by deserializing types like RefValue{Ref{Val{1}}}, (i.e. Concrete{Abstract{Concrete{...}}}). What happened here is that we were recaching the outer concrete type before the inner one. However, our caching logic (and subtyping) assumes that it is only ever called with completely recached parameter types, causing an incorrect cache miss for the second deserialization. Fix that by not pushing the outer type onto the flagref list until we've deserialized the inner type, thus assuring that we've finished recaching the inner type before attempting to recache the outer type.
Proposed fix in #38339 . |
https://s3.amazonaws.com/julialang-dumps/reports/2020-11-05T14-56-56-bhalonen.tar.zst
This is for last nights build, though it happens on 1.5.2 and 1.5.1 as well.
The text was updated successfully, but these errors were encountered: