schrodinger.seam.testing.failures module

A module for testing various ways the SeamRunner handles worker failures / exceptions.

Example Usages:

  1. Force a local worker to OOM

    $SCHRODINGER/run python3 -m schrodinger.seam.testing.failures –local-wait-time 10 –pipeline-options=’–max-local-worker-mem=0.1’

  2. Force a remote worker to OOM

    $SCHRODINGER/run python3 -m schrodinger.seam.testing.failures –local-wait-time 2 –remote-wait-time 10 –trial-worker-max-walltime 0.1 –pipeline-options=’–max-remote-worker-mem=0.1’

  3. Force a remote worker to exit

    $SCHRODINGER/run python3 -m schrodinger.seam.testing.failures –local-wait-time 2 –trial-worker-max-walltime 0.1 –remote-exit

class schrodinger.seam.testing.failures.FailingTransformSettings(wait_time: float = 0.0, mem: float = 0.0, exception: Exception | None = None, exit: bool = False)

Bases: object

Settings to intentionally fail a transform.

Variables:
  • wait_time – Time to sleep in the transform (can force trial worker timeout).

  • mem – Additional memory to allocate in the transform (can force worker OOM error).

  • exception – Exception to raise in the transform.

  • exit – Whether to os._exit() in the transform (can force worker to exit without cleaning up).

wait_time: float = 0.0
mem: float = 0.0
exception: Exception | None = None
exit: bool = False
__init__(wait_time: float = 0.0, mem: float = 0.0, exception: Exception | None = None, exit: bool = False) None
class schrodinger.seam.testing.failures.FailingTransform(local_settings: Optional[FailingTransformSettings] = None, remote_settings: Optional[FailingTransformSettings] = None)

Bases: PTransform

A transform that fails intentionally for various reasons.

__init__(local_settings: Optional[FailingTransformSettings] = None, remote_settings: Optional[FailingTransformSettings] = None)
expand(pcoll)
schrodinger.seam.testing.failures.ger_parser()
schrodinger.seam.testing.failures.process_namespace(namespace: Namespace) Namespace
schrodinger.seam.testing.failures.main(num_inputs: int = 2, trial_worker_max_walltime: float = 60, local_settings: Optional[FailingTransformSettings] = None, remote_settings: Optional[FailingTransformSettings] = None, options: Optional[PipelineOptions] = None)
schrodinger.seam.testing.failures.tmp_set_trial_worker_max_walltime(value)