Mantis - Squeak
Viewing Issue Advanced Details
7122 Kernel major always 07-16-08 19:05 07-16-08 19:05
0007122: abuse of dependency mechanisism (keys ref'ed by values) can lead to serious memory leaks.
see 0007119 particularly nicolas's comments for features of this problem.

The purpose of this report is to focus on:

o Detection of these conditions in the image.
o Raise awareness amoung the unwitting perpetrators.
o Find good regression tests to catch this problem early.

Some applications set dependency keys that have values that refer to the keys.

In a weak dictionary this prevents the keys from being gc'ed. They have to be specifically removed from the dictionary.

For OB browsers this meant everything and thier owners were pointed to from the un gc'able key and would hang around even after the browser had been deleted.

The simplist way to make this occur would be to
open a browser
select a method and
make an edit in the methods text.

Once this happened (at least for OB browsers in the dev image) a circular reference would be set.

Deleting the browser would still leave references to its panes, grouping morphs, and the system window itself.

The solution there was a need to break the dependencies.

I've uploaded here the preliminary test I wrote for 0007119.
As time permits I hope to add other more focused tests.

Yours in curiosity and service, --Jerome Peace [^] (502 bytes) 07-16-08 19:05

There are no notes attached to this issue.