As seen in ATR-25996, incorrect retrieval could occur if the
kwargs of a function called through
RecoFragmentsPool were compared by pointer value.
This workaround should help by explicitly including the type and name of each
Configurable as an extra entry in the tuple used for cache retrieval, and then dropping this when passing the args to the function call. I'm a bit surprised that this comparison happens actually, I thought we had sorted this out by adding a
__hash__ function. But at least this workaround seems to solve the problem in this case and should otherwise be harmless.