Store full name temporarily when caching Configurables as input to...
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.