Systemic object marking
In Deephaven, a systemic object is an object whose failure causes Deephaven to terminate the entire worker process. When systemic object marking is disabled (the default), all objects are treated as systemic and any object failure is fatal. When marking is enabled, threads are non-systemic by default — only objects created on explicitly marked threads or within a scoped execution are systemic. This guide explains how to control this behavior using the deephaven.systemic_obj_tracker module.
Enable systemic object marking
Systemic object marking is not user-configurable at runtime by default. To enable this feature, start the server with the JVM option:
Check if systemic object marking is enabled:
Manage thread systemic status
Systemic object creation is controlled per thread. When systemic object marking is enabled, you can programmatically set a thread as systemic or non-systemic at runtime. While a thread is systemic, any object it creates is also systemic; when non-systemic, objects are not marked as systemic.
Check and toggle the systemic status of the current thread:
Context managers
The deephaven.systemic_obj_tracker module provides context managers to enable or disable systemic object creation within code blocks.
Systemic scripts from the Python Client
When executing a script on the server from the Python client, you can control whether objects created by that script are marked as systemic by using the systemic argument—provided systemic object marking is enabled on the server. If systemic object marking is disabled on the server, the systemic argument has no effect, and all objects created by the script will be systemic by default.