X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/19ee2e029443d4d6de3df4a4e8bcb6ae9700475a..e4c5f98f696c354638bbba22ee4a1db20a52837c:/sdk/python/arvados/commands/put.py diff --git a/sdk/python/arvados/commands/put.py b/sdk/python/arvados/commands/put.py index 3f4766d398..af8e243b84 100644 --- a/sdk/python/arvados/commands/put.py +++ b/sdk/python/arvados/commands/put.py @@ -979,6 +979,7 @@ def progress_writer(progress_func, outfile=sys.stderr): return write_progress def exit_signal_handler(sigcode, frame): + logging.getLogger('arvados.arv_put').error("Caught signal {}, exiting.".format(sigcode)) sys.exit(-sigcode) def desired_project_uuid(api_client, project_uuid, num_retries): @@ -992,7 +993,8 @@ def desired_project_uuid(api_client, project_uuid, num_retries): raise ValueError("Not a valid project UUID: {}".format(project_uuid)) return query.execute(num_retries=num_retries)['uuid'] -def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr): +def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr, + install_sig_handlers=True): global api_client args = parse_arguments(arguments) @@ -1011,6 +1013,13 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr): if api_client is None: api_client = arvados.api('v1', request_id=request_id) + # Install our signal handler for each code in CAUGHT_SIGNALS, and save + # the originals. + orig_signal_handlers = {} + if install_sig_handlers: + orig_signal_handlers = {sigcode: signal.signal(sigcode, exit_signal_handler) + for sigcode in CAUGHT_SIGNALS} + # Determine the name to use if args.name: if args.stream or args.raw: @@ -1127,11 +1136,6 @@ def main(arguments=None, stdout=sys.stdout, stderr=sys.stderr): "arv-put: %s" % str(error)])) sys.exit(1) - # Install our signal handler for each code in CAUGHT_SIGNALS, and save - # the originals. - orig_signal_handlers = {sigcode: signal.signal(sigcode, exit_signal_handler) - for sigcode in CAUGHT_SIGNALS} - if not args.dry_run and not args.update_collection and args.resume and writer.bytes_written > 0: logger.warning("\n".join([ "arv-put: Resuming previous upload from last checkpoint.",