Repository>>reclaimAll reconfigures the stone configuration option StnSignalAbortCrBacklog
to 3 and restores it to its original value when finished. But if reclaimAll
is interrupted (the session is killed or an unexpected signal/error occurs
and it is not allowed to complete) StnSignalAbortCrBacklog will be left
at 3, causing major changes in the frequency of sigAbort/lostOT signals
on the system.
In addition, reclaimAll also sets the following GcUser configuration options:
reclaimMinPages = 1
reclaimSleepTime = 1
sleepTimeBetweenReclaimMs = 0
These *must* be reset by executing Repository>>postReclaimAll: with the
arguments returned by the reclaimAll:. If reclaimAll is interrupted and
postReclaimAll: is not executed, these GC configuration options will be
left at these settings. This may cause changes in the behavior of reclaim
activity on the system.
Note that Repository>>objectAudit / Repository>>auditWithLimit: internally
calls reclaimAll, and will therefore be subject to this bug as well (fixed
in 3.0 during a redesign of objectAudit).
Manually reset these values:
As a user with SystemControl and GarbageCollection privileges:
run
System stoneConfigurationAt: #StnSignalAbortCrBacklog put: <original-value>.
SystemRepository _setGcConfigAt: #reclaimMinPages put: <original-value>
.
SystemRepository _setGcConfigAt: #reclaimSleepTime put: <original-value>.
SystemRepository _setGcConfigAt: #sleepTimeBetweenReclaimMs put: <original-value>.
%
Last updated: 2/7/14