I have just posted Magma r42Gamma2 to SqueakMap and SqueakSource with a significant fix for the
"[SomeClass] cannot have variable sized instances"
problem. There were two reports of users experiencing the message, but I was not able to determine the root cause from the information given. Earlier today however, I experienced the problem myself and was able to debug and fix the problem. A detailed description of the problem is at the end of this message.
I strongly recommend anyone using any version of r42 to upgrade to this latest r42Gamma2.
If you have experienced the "[SomeClass] cannot have variable sized instances" message, then three classes in your class-map need to be restored. However, the easiest way is to go back to the backup repository that it was before it was opened by r42 on-line server.
If you have an important (i.e., production) repository with no backup prior to that repository being opened for on-line service by r42, please contact me via private e-mail. The procedure for fixing is tedious, I'd rather not have to explain it unless absolutely necessary.
- Chris
Description of the problem: When a repository is created but never been opened on r42 via a MagmaServerConsole, it won't have the following remote-server related classes in its class-map: MagmaRemoteLocation, MagmaLocation and MaServerLocation In this case, if the repository was then opened for remote service, AND there were domain classes not present in the server image (which is very common, since there is no need for the domain classes in the server image) the bug in rebuildTransientClassMaps would cause the 'nextClassId' to not be properly updated, resulting in the three above-mentioned Magma classes to overlay the last three classes in the classId map! This means if those three classes are concrete and have instances in the repository, they won't be able to be properly materialized.
The patch involves either rolling back the repository to just prior to that commit, or recovering the buffers for the original three class-definitions and restoring them.
magma@lists.squeakfoundation.org