[Glass] Auto-migrate has risks with epoch garbage collection enabled

Lisa Almarode lisa.almarode at gemtalksystems.com
Thu Sep 8 16:51:17 PDT 2022

GemStone v3.6.2 and later contain a bug fix that causes errors in 
auto-migrate in the GLASS/Seaside environment

GLASS/Seaside provides auto-migrate when code is filed in that modifies 
class definitions; this requires a repository scan, that cannot complete 
if voting occurs while it is running. Epoch garbage collection, if 
enabled (it is disabled by default), means that voting could occur 
triggered by background operations. The change in v3.6.2 was to make the 
repository scan failure explicitly report an error, rather than silently 
returning an empty collection.

This all means that if epoch is enabled, and then classes are modified 
in the GLASS/Seaside environment, it could report the alarming error 
"Voting occurred or an atomic promote detected during the operation, 
results are compromised- please try again".

To be completely safe, we recommend disabling epoch in GemStone while 
performing code modifications that modify class definitions, or during 
upgradeSeasideImage.  You should also be aware of when markForCollection 
runs (either manually or by any automation you have written), and ensure 
that voting is complete before starting upgrade or making code changes.

The GemStone server fix:

The automigrate issue:

More information about the Glass mailing list