<div dir="ltr"><div>Paul,</div><div><br></div><div>Re-running the migration is one piece of the puzzle (GsDeployer class >> cleanClassHistory will migrate any classes that have not been migrated).</div><div><br></div><div>The other piece of the puzzle is the consequences of an unexpected error during code load into a production system. <br></div><div><br></div><div>My operating assumption is that developers test their load process on a "copy of production" prior to running code updates on a production system to flush out any errors that may show up during the process. However, because this error is not predictable, a test on a copy of production may not reveal that there is an exposure to this error, unless you ensure that no voting can occur while loading code into production.</div><div><br></div><div>As I think about this more, You CAN guarantee that the only consequence of this error is to "re-run the migrate" by using GsDeployer class>>bulkMigrate:, because the list instances phase is deferred until the block is finished executing and a commit is performed immediately prior to the list instances call ...</div><div><br></div><div>Dale<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 12, 2022 at 8:45 AM PAUL DEBRUICKER via Glass <<a href="mailto:glass@lists.gemtalksystems.com">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi sorry- Is the error display, needing to re-run the migrate after the partly-finished-mfc, and classes with partially migrated instances in the stone during that time the only consequences of this? <br>
<br>
<br>
<br>
<br>
<br>
> On Sep 8, 2022, at 4:51 PM, Lisa Almarode via Glass <<a href="mailto:glass@lists.gemtalksystems.com" target="_blank">glass@lists.gemtalksystems.com</a>> wrote:<br>
> <br>
> GemStone v3.6.2 and later contain a bug fix that causes errors in auto-migrate in the GLASS/Seaside environment<br>
> <br>
> 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.<br>
> <br>
> 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".<br>
> <br>
> 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.<br>
> <br>
> The GemStone server fix:<br>
> <a href="https://gemtalksystems.com/data/bugnotes/49651.html" rel="noreferrer" target="_blank">https://gemtalksystems.com/data/bugnotes/49651.html</a><br>
> <br>
> The automigrate issue:<br>
> <a href="https://gemtalksystems.com/data/bugnotes/50078.html" rel="noreferrer" target="_blank">https://gemtalksystems.com/data/bugnotes/50078.html</a><br>
> _______________________________________________<br>
> Glass mailing list<br>
> <a href="mailto:Glass@lists.gemtalksystems.com" target="_blank">Glass@lists.gemtalksystems.com</a><br>
> <a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
<br>
_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" target="_blank">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div>