def _act_on_config(solid_config): if solid_config["crash_in_solid"]: segfault() if solid_config["throw_in_solid"]: raise Failure( description="I'm a Failure", metadata_entries=[ EventMetadataEntry.text( label="metadata_label", text="I am metadata text", description="metadata_description", ) ], ) elif solid_config["request_retry"]: raise RetryRequested()
def _act_on_config(solid_config): if solid_config["crash_in_solid"]: segfault() if solid_config["failure_in_solid"]: try: raise ExampleException("sample cause exception") except ExampleException as e: raise Failure( description="I'm a Failure", metadata={ "metadata_label": "I am metadata text", }, ) from e elif solid_config["throw_in_solid"]: raise ExampleException("I threw up") elif solid_config["request_retry"]: raise RetryRequested()
def _act_on_config(solid_config): if solid_config["crash_in_solid"]: segfault() if solid_config["throw_in_solid"]: try: raise ExampleException("sample cause exception") except ExampleException as e: six.raise_from( Failure( description="I'm a Failure", metadata_entries=[ EventMetadataEntry.text( label="metadata_label", text="I am metadata text", description="metadata_description", ) ], ), e, ) elif solid_config["request_retry"]: raise RetryRequested()
def hard_fail_or_0(context): if context.solid_config["fail"]: segfault() return 0
def execute(self): # access inner API to simulate hard crash segfault()
def segfault_solid(context): context.log.info("Informational message") print("Crashy output to stdout") # pylint: disable=print-call segfault()
"""Test that compute log tail processes go away when the parent hard crashes.""" import sys from dagster.core.execution.compute_logs import mirror_stream_to_file from dagster.utils import segfault if __name__ == "__main__": stdout_pids_file, stderr_pids_file = (sys.argv[1], sys.argv[2]) with mirror_stream_to_file(sys.stdout, stdout_pids_file) as stdout_pids: with mirror_stream_to_file(sys.stderr, stderr_pids_file) as stderr_pids: sys.stdout.write( "stdout pids: {pids}".format(pids=str(stdout_pids))) sys.stdout.flush() sys.stderr.write( "stderr pids: {pids}".format(pids=str(stderr_pids))) sys.stderr.flush() segfault()