  Current reconfiguration techniques are based on starting the system in a
consistent configuration, in which all participating entities are in their
initial state. Starting from that state, the system must preserve consistency
as long as a predefined churn rate of processors joins and leaves is not
violated, and unbounded storage is available. Many working systems cannot
control this churn rate and do not have access to unbounded storage. System
designers that neglect the outcome of violating the above assumptions may doom
the system to exhibit illegal behaviors. We present the first automatically
recovering reconfiguration scheme that recovers from transient faults, such as
temporal violations of the above assumptions. Our self-stabilizing solutions
regain safety automatically by assuming temporal access to reliable failure
detectors. Once safety is re-established, the failure detector reliability is
no longer needed. Still, liveness is conditioned by the failure detector's
unreliable signals. We show that our self-stabilizing reconfiguration
techniques can serve as the basis for the implementation of several dynamic
services over message passing systems. Examples include self-stabilizing
reconfigurable virtual synchrony, which, in turn, can be used for implementing
a self-stabilizing reconfigurable state-machine replication and
self-stabilizing reconfigurable emulation of shared memory.
