On 2024-01-16 2:15 PM, Chris Angelico via Python-list wrote:
Where do you tend to "leave a reference dangling somewhere"? How is this occurring? Is it a result of an incomplete transaction (like an HTTP request that never finishes), or a regular part of the operation of the server?
I have a class that represents a database table, and another class that represents a database column. There is a one-to-many relationship and they maintain references to each other.
In another part of the app, there is a class that represents a form, and another class that represents the gui elements on the form. Again there is a one-to-many relationship.
A gui element that represents a piece of data has to maintain a link to its database column object. There can be a many-to-one relationship, as there could be more than one gui element referring to the same column.
There are added complications which I won't go into here. The bottom line is that on some occasions a form which has been closed does not get gc'd.
I have been trying to reproduce the problem in my toy app, but I cannot get it to fail. There is a clue there! I think I have just over-complicated things.
I will start with a fresh approach tomorrow. If you don't hear from me again, you will know that I have solved it!
Thanks for the input, it definitely helped. Frank -- https://mail.python.org/mailman/listinfo/python-list