[Glass] Auto-migrate has risks with epoch garbage collection enabled
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