{nonref}The {Case of the} Disappearing Components
There is a general problem with the bank however. If the object runs asynchronously with the domain that signals the destruction of the space, the object may be running when the destruction is in progress. As this occurs various nodes and pages from which the object is built will disappear. The logic of the programs in the object can not generally be expected to behave in an anticipated maner in this case.
Note that there is no danger that the object will do something that its capabilities would not have allowed, but merely that those capabilities may be misused by the stricken program to cause deleterious effects on other objects. The object may thus misuse its authority.
One fairly general solution may be for the object to run under a meter that will be off while the space bank reclamation occurs. There could be an official source of such meter-bank pairs. See (p2,mbi).
This problem arises for factories whose .keeper is a hole which is a VDK (or some such) that leads to the builder.
An {understated} design goal of Gnosis style abstraction with domains is that it be possible, in the important cases, to write your abstraction implementation code so that it won't break unless there is a bug in it.
The requestor, in particular, should be unable to break the code unless there is a bug in it. If the requestor passes a bad meter, the domain breaks with no convenient way to determine whether to blame this event on the requestor or builder.
Before domains trapped on invalid meters, the following scheme was {and still is} suitable for negotiating the blame:
The requestor passes this debug-meter-key to the requestor key and claims the resulting resume key.
This resume key is then passed to the builder thru normal mail mechanisms.
This is, perhaps, a particular case of a more general problem whereby a meter keeper is supposed to be unable to influence the progress of those processes under its meter except to impede it. This invalid meter traps the meter keeper can do more. This principle is still written down in the manual somewhere.
Another argument in this respect is that invalid meter trapping is not a fundamental debugging function. By this I mean that all of the debugging tools that you needed before you still need. The tools that are necessary to track down a domain that is trying to jump to itself suffice to track down a domain that is trying to run on an invalid meter.
Creators written so far (1980 Nov) have found it easy to anticipate flaky banks.
The factory (p2,factory) is a general solution to this problem. The domain which is designated by the public keys to the creator never invokes the suspect space bank and cannot be impeded by it.
An information compressing scheme will set to undefined such pages that it has compressed until a reference to that page indicates that the (uncompressed) value is required.
This represents a pitfall in that the easiest way of installing an editor is the wrong way. This manner of installing an editor may, however, be just what is required if there were some specific file that was to to be accessed by several individuals one at a time.
In Gnosis we can install an editor in either mode {and several that haven't been invented just yet}.
If one uses the registry {(p2,registry)} to build a tree of directories it is tempting to think that a weakened key to the root is unable to influence the leaves of this tree. Not So! If X is the weakened root key and Y is sub-directory of X then X may be used to fetch Y which, in turn, may be used to modify members of Y.