The blueapi context system tests picked up device instances accumulating due to changes introduced in
Investigation identified that during creation of derived signals, the getter/setter functions of the base signals were passed to cached_get_type_hints(), as these are methods bound to the parent device instance, use of them as cache keys causes the device instances to leak until they are evicted from the cache.
(see discussion with @coretl in mx-bluesky PR for test fix DiamondLightSource/mx-bluesky#1642)
This can be remedied by not caching these entries.
Steps To Reproduce
Steps to reproduce the behavior:
- Run mx-bluesky system tests
test_baton_handler_soak fails
Acceptance Criteria
- mx-bluesky system tests pass and device instances no longer accumulate.
The blueapi context system tests picked up device instances accumulating due to changes introduced in
Investigation identified that during creation of derived signals, the getter/setter functions of the base signals were passed to
cached_get_type_hints(), as these are methods bound to the parent device instance, use of them as cache keys causes the device instances to leak until they are evicted from the cache.(see discussion with @coretl in mx-bluesky PR for test fix DiamondLightSource/mx-bluesky#1642)
This can be remedied by not caching these entries.
Steps To Reproduce
Steps to reproduce the behavior:
test_baton_handler_soakfailsAcceptance Criteria