Fix memory leak in exception translation

convert_to_dev_failed wrapped the results of traceback.format_exception[_only] with reinterpret_borrow instead of reinterpret_steal, leaking one owned Python reference — and the whole formatted-traceback object graph — on every exception raised in an attribute/command. Under polling or repeated erroring reads this grows unbounded.

Adds an erroring read/write exercise to the valgrind memory test. Also adds RSS plateau test to CI. Will see how it works. It seems to be able to catch this particular error. The question is - if the will be false-positive fails.

Closes #771 (closed)

Merge request reports

Loading