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
[Artery] Compression table keeps temporary refs #28822
Comments
We fixed ask recently (#28528 ) but maybe there are more surprising temporary refs in some scenario? |
That fix was in 2.6.4 |
Oh great. Thanks! |
Hmm, I was too trigger-happy closing this. I'm using the version that has this fix - or at least I've got that code in the codebase I'm deploying with. And I still observe all these temporary refs when receiving a compression advertisement. This is the "heavy hitters" map / data structure which gets updated here I think, if I'm not mistaken. |
Will this be back ported to 2.5.x? |
We don't consider it as a critical bug so there is currently no plan to backport. |
I seem to still be getting cached PromiseActorRefs with akka 2.6.14. This is a screenshot from memory analyzer: Looking at git I can no longer find the change that added PromiseActorRef as not cacheable (pull request #28528), and in akka-remote/src/main/scala/akka/remote/serialization/ActorRefResolveCache.scala the isCacheable function seems not to know about PromiseActorRef. |
@nodefactory-bk There was a follow up in #29834 introducing Note that compression and TopHeavyHitters is a different thing than ActorRefResolveCache. I agree that it seems unnecessary to fill the TopHeavyHitters with PromiseActorRef in the first place. Could you create a new issue about that? Note that you can reduce the number of items in the TopHeavyHitters with config:
|
Not sure this belongs here, but it seems kind of odd.
In a current experiment of mine involving large clusters, I'm using Artery TCP as a transport and make calls from one system to another using actor selections + ask.
While debugging, I'm noticing that the compression table advertises those references every minute:
Just wondering - isn't this a waste? After all those references won't mean anything after the ask timeout, which often is much smaller than a minute.
The text was updated successfully, but these errors were encountered: