[Glass] orphaned classes do not disappear
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Thu Mar 16 15:14:51 PDT 2017
On 03/16/2017 09:11 AM, Johan Brichau via Glass wrote:
> Hi Dale,
>
>> On 10 Mar 2017, at 16:25, Dale Henrichs via Glass <glass at lists.gemtalksystems.com> wrote:
>>
>> Are the orphaned classes still in the class history of current class version?
> No, the classHistories all contain only the current version of the class.
> It seems the classHistory object is the same as the one referenced by the current version.
okay..
>
>> Have you tried calling Repository>>findReferencePathToObjs:limitObjArray:findAllRefs:printToLog: with an empty limitObjArray? I think that the default listReferences code uses something similar to Repository>>buildLimitSetForRefPathScan as it's list of repository roots, which are ignored for purposes of list references, but probably still useful when hunting down stale metaclass refs.
> I tried this but you cannot pass an empty array (there is an explicit check in the method).
> However, I tried passing an array { #none } and still did not find any reference paths for a single MetaClass instance.
> When I try passing the entire list of metaclasses, I hit an error:
>
> The object with object ID 1339726081 is corrupt. Reason: ‘Error no limit oop found in last chain link for search oop 1339726081
> The object in question is such a MetaClass instance.
Hmmm, I know that over the years (and especially recently) we have done
work to improve the find reference code. I am not intimately familiar
with with the bugs that have been fixed over the years, so it would be
possible that we have bugs/features that are not finding the reference
for your object ...
It is tempting to suggest that you upgrade your repository to 3.3.3 and
use the find references code for that version --- in this case you
wouldn't need to load code, but could just run the basic upgradeImage
script and then use topaz to run reference scans ...
Is the object that you are searching for holding onto a lot other state
or otherwise preventing you from upgrading? If it is just an annoyance?
If you consider it a real problem and you are willing to share a copy of
your db, we'd be willing to try to figure out what's going on --- in our
case, we'd more than likely upgrade the db ourselves and debug the issue
there ... if it is still an issue:)
Dale
More information about the Glass
mailing list