-
Notifications
You must be signed in to change notification settings - Fork 722
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
Use the dependency table as class loader fallback #20557
base: master
Are you sure you want to change the base?
Use the dependency table as class loader fallback #20557
Conversation
The dependency table tracks currently-loaded RAM classes with valid class chains by their offset, so it can be used as a fallback during relocation if a class cannot be found in its associated loader or if the loader itself cannot be found. Signed-off-by: Christian Despres <[email protected]>
9cc270d
to
2098f34
Compare
Attn @mpirvu. This isn't directly related to the dependency tracking - it just happens to be possible with the |
I went back in the acmeair logs to double-check that, and my recollection was wrong. I'm fairly sure that I have seen that kind of error, where the loader itself cannot be found, but from the logs of one of the tests I ran it looks like most of the times this actually succeeds as a fallback is when the class in question is a lambda. For instance, the relocation records of Those lookups happen by name in the loader, and I think it's known that we have a hard time finding these lambdas in that way. |
I'm unsure about using |
Signed-off-by: Christian Despres <[email protected]>
I've had to pull one or two things from this PR, since it will only be going in after the main work has been merged. I'll fix this up after that. |
The dependency table tracks currently-loaded RAM classes with valid class chains by their offset, so it can be used as a fallback during relocation if a class cannot be found in its associated loader or if the loader itself cannot be found.
Related: #20529