Build: #48 failed

Job: Test ManyLinux 2.28 Python 3.12 failed

uid a002 x85c183 x36f SPw15 23 PPr regression: Test case result

The below summarizes the result of the test " uid a002 x85c183 x36f SPw15 23 PPr regression" in build 48 of PIPESPECS - Pipeline main with Casa master - Test ManyLinux 2.28 Python 3.12.
Description
uid a002 x85c183 x36f SPw15 23 PPr regression
Test class
pipeline.infrastructure.utils.regression_tester
Method
test_uid___A002_X85c183_X36f_SPW15_23__PPR__regression
Duration
4 mins
Status
Failed (New Failure)

Error Log

pipeline.infrastructure.exceptions.PipelineException: Traceback (most recent call last):
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/executeppr.py", line 270, in executeppr
    results = pipeline_task(**task_args)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/h/cli/utils.py", line 27, in wrapped_func
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/hsd/cli/hsd_atmcor.py", line 61, in hsd_atmcor
    results = utils.execute_task(context, task_name, all_inputs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/h/cli/utils.py", line 93, in execute_task
    raise exceptions.PipelineException(previous_tracebacks_as_string)
pipeline.infrastructure.exceptions.PipelineException: Traceback (most recent call last):
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 659, in execute
    return self._handle_multiple_vis(**parameters)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 781, in _handle_multiple_vis
    single_result = self.execute(**parameters)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 41, in attach_timestamp_to_results
    result = method(self, *args, **kw)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 121, in handle_matplotlibrc
    result = method(self, *args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 89, in capture
    result = method(self, *args, **kw)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 62, in finalise_pipeline_result
    result = method(self, *args, **kw)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 678, in execute
    result = self.prepare(**prepare_parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/hsd/tasks/atmcor/atmcor.py", line 605, in prepare
    task_exec_status = self._executor.execute(job)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 89, in capture
    result = method(self, *args, **kw)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 848, in execute
    result = job.execute(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/jobrequest.py", line 256, in execute
    return self.fn(*self.args, **self.kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/sdatmcor.py", line 312, in __call__
    task_result = _sdatmcor_t( _pc.document['infile'], _pc.document['datacolumn'], _pc.document['outfile'], _pc.document['overwrite'], _pc.document['field'], _pc.document['spw'], _pc.document['scan'], _pc.document['antenna'], _pc.document['correlation'], _pc.document['timerange'], _pc.document['intent'], _pc.document['observation'], _pc.document['feed'], _pc.document['msselect'], _pc.document['outputspw'], _pc.document['gainfactor'], _pc.document['dtem_dh'], _pc.document['h0'], _pc.document['atmtype'], _pc.document['atmdetail'], _pc.document['altitude'], _pc.document['temperature'], _pc.document['pressure'], _pc.document['humidity'], _pc.document['pwv'], _pc.document['dp'], _pc.document['dpm'], _pc.document['layerboundaries'], _pc.document['layertemperature'] )
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/private/sdutil.py", line 129, in wrapper
    retval = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/private/task_sdatmcor.py", line 693, in sdatmcor
    sdms.atmcor(config=config, datacolumn=datacolumn, outfile=outfile)
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatools/singledishms.py", line 110, in atmcor
    return self._swigobj.atmcor(config, datacolumn, outfile)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatools/__casac__/singledishms.py", line 569, in atmcor
    return _singledishms.singledishms_atmcor(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error creating output MS structure
@pytest.mark.fast
    @pytest.mark.alma
    def test_uid___A002_X85c183_X36f_SPW15_23__PPR__regression():
        """Run ALMA single-dish restoredata regression on the observation data of M100.
    
        Dataset:                    uid___A002_X85c183_X36f_SPW15_23
        """
        input_dir = 'pl-regressiontest/uid___A002_X85c183_X36f_SPW15_23'
    
        pr = PipelineRegression(
            visname=['uid___A002_X85c183_X36f_SPW15_23.ms'],
            ppr=f'{input_dir}/PPR.xml',
            input_dir=input_dir,
            expectedoutput_dir=input_dir
        )
    
        # copy files use restore task into products folder
        if not pr.compare_only:
            input_products = casa_tools.utils.resolve(f'{input_dir}/products')
            shutil.copytree(input_products, f'{pr.output_dir}/products')
    
>       pr.run()

pipeline/infrastructure/utils/regression_tester.py:679: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
pipeline/infrastructure/utils/regression_tester.py:306: in run
    self.__run_ppr(input_vis, self.ppr, telescope)
pipeline/infrastructure/utils/regression_tester.py:467: in __run_ppr
    executeppr.executeppr(ppr_local, importonly=False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

pprXmlFile = '../PPR.xml', importonly = False, breakpoint = 'breakpoint'
bpaction = 'ignore', loglevel = 'info', plotlevel = 'default'
interactive = True

    def executeppr(pprXmlFile: str, importonly: bool = True, breakpoint: str = 'breakpoint', bpaction: str = 'ignore',
                   loglevel: str = 'info', plotlevel: str = 'default', interactive: bool = True) -> None:
        """
        Runs Pipeline Processing Request (PPR).
    
        Executes pipeline tasks based on instructions described in pprXmlFile.
    
        Args:
            pprXmlFile: A path to PPR file.
            importonly: Whether or not to indicate to stop processing after
                importing data. If True, execution of PPR stops after
                h*_importdata stage. The parameter has no effect if there is no
                h*_importdata stage in PPR.
            breakpoint: A name of command that should be considered as a break point.
            bpaction: An action to be taken at the breakpoint.
                Available actions are,
                'ignore': ignores breakpoint in pprXmlFile.
                'break': stop execution at the breakpoint in pprXmlFile.
                'resume': resume the last context and restart processing after the
                    breakpoint in pprXmlFile.
            loglevel: A logging level. Available levels are, 'critical', 'error',
                'warning', 'info', 'debug', 'todo', and 'trace'.
            plotlevel: A plot level. Available levels are, 'all', 'default', and
                'summary'
            interactive: If True, print pipeline log to STDOUT.
    
        Examples:
           Only import EBs.
           >>> executeppr('PPR_uid___A001_X14c3_X1dd.xml')
    
           Full execution of PPR.
           >>> executeppr('PPR_uid___A001_X14c3_X1dd.xml', importonly=False)
    
           Run pipeline tasks up to the 'breakpoint' in PPR and save context.
           >>> executeppr('PPR_uid___A001_X14c3_X1dd.xml', importonly=False, bpaction='break')
    
           Resume execution from the 'breakpoint' in PPR.
           >>> executeppr('PPR_uid___A001_X14c3_X1dd.xml', importonly=False, bpaction='resume')
        """
        # save existing context to disk
        save_existing_context()
    
        # Useful mode parameters
        echo_to_screen = interactive
        workingDir = None
    
        try:
            # Decode the processing request
            casa_tools.post_to_log("Analyzing pipeline processing request ...", echo_to_screen=echo_to_screen)
            info, structure, relativePath, intentsDict, asdmList, procedureName, commandsList = \
                _getFirstRequest(pprXmlFile)
            processing_intents = _getProcessingIntents(intentsDict, procedureName)
    
            # Set the directories
            if 'SCIPIPE_ROOTDIR' in os.environ:
                workingDir = os.path.join(os.path.expandvars('$SCIPIPE_ROOTDIR'), relativePath, 'working')
                rawDir = os.path.join(os.path.expandvars('$SCIPIPE_ROOTDIR'), relativePath, 'rawdata')
            else:
                # PIPE-2093: if $SCIPIPE_ROOTDIR doesn't exist, we likely run in a local dev/test environment.
                # Then we will override the typical production workingDir/rawDIR values that are traditionally
                # constructed from $SCIPIPE_ROOTDIR and the PPR <RelativePath> field. Note that we assume that
                # any executeppr call here happens inside the "working/" directory.
                workingDir = os.path.abspath(os.path.join('..', 'working'))
                rawDir = os.path.abspath(os.path.join('..', 'rawdata'))
    
            # Check for the breakpoint
            bpset = False
            if breakpoint != '':
                for command in commandsList:
                    if command[0] == breakpoint:
                        casa_tools.post_to_log("    Found break point: " + breakpoint, echo_to_screen=echo_to_screen)
                        casa_tools.post_to_log("    Break point action is: " + bpaction, echo_to_screen=echo_to_screen)
                        bpset = True
                        break
    
            # Get the pipeline context
            #     Resumes from the last context. Consider adding name
            if bpset and bpaction == 'resume':
                context = cli.h_resume(filename='last')
                context.processing_intents.update(processing_intents)
                casa_tools.post_to_log("    Resuming from last context", echo_to_screen=echo_to_screen)
            else:
                context = cli.h_init(loglevel=loglevel, plotlevel=plotlevel, processing_intents=processing_intents)
                casa_tools.post_to_log("    Creating new pipeline context", echo_to_screen=echo_to_screen)
    
        except Exception:
            casa_tools.post_to_log("Beginning pipeline run ...", echo_to_screen=echo_to_screen)
            casa_tools.post_to_log("For processing request: " + pprXmlFile, echo_to_screen=echo_to_screen)
            traceback.print_exc(file=sys.stdout)
            errstr = traceback.format_exc()
            casa_tools.post_to_log(errstr, echo_to_screen=echo_to_screen)
            casa_tools.post_to_log("Terminating procedure execution ...", echo_to_screen=echo_to_screen)
            errorfile = utils.write_errorexit_file(workingDir, 'errorexit', 'txt')
            return
    
        # Request decoded, starting run.
        casa_tools.post_to_log("Beginning pipeline run ...", echo_to_screen=echo_to_screen)
        casa_tools.post_to_log("For processing request: " + pprXmlFile, echo_to_screen=echo_to_screen)
    
        # Check for common error conditions.
        if relativePath == "":
            casa_tools.post_to_log("    Undefined relative data path", echo_to_screen=echo_to_screen)
            casa_tools.post_to_log("Terminating pipeline execution ...", echo_to_screen=echo_to_screen)
            errorfile = utils.write_errorexit_file(workingDir, 'errorexit', 'txt')
            return
        elif len(asdmList) < 1:
            casa_tools.post_to_log("    Empty ASDM list", echo_to_screen=echo_to_screen)
            casa_tools.post_to_log("Terminating pipeline execution ...", echo_to_screen=echo_to_screen)
            errorfile = utils.write_errorexit_file(workingDir, 'errorexit', 'txt')
            return
        elif len(commandsList) < 1:
            casa_tools.post_to_log("    Empty commands list", echo_to_screen=echo_to_screen)
            casa_tools.post_to_log("Terminating pipeline execution ...", echo_to_screen=echo_to_screen)
            errorfile = utils.write_errorexit_file(workingDir, 'errorexit', 'txt')
            return
    
        # List project summary information
        casa_tools.post_to_log("Project summary", echo_to_screen=echo_to_screen)
        for item in info:
            casa_tools.post_to_log("    " + item[1][0] + item[1][1], echo_to_screen=echo_to_screen)
        ds = dict(info)
        context.project_summary = project.ProjectSummary(
            proposal_code=ds['proposal_code'][1],
            proposal_title='unknown',
            piname='unknown',
            observatory=ds['observatory'][1],
            telescope=ds['telescope'][1])
    
        # List project structure information
        casa_tools.post_to_log("Project structure", echo_to_screen=echo_to_screen)
        for item in structure:
            casa_tools.post_to_log("    " + item[1][0] + item[1][1], echo_to_screen=echo_to_screen)
        ds = dict(structure)
        context.project_structure = project.ProjectStructure(
            ous_entity_id=ds['ous_entity_id'][1],
            ous_part_id=ds['ous_part_id'][1],
            ous_title=ds['ous_title'][1],
            ous_type=ds['ous_type'][1],
            ps_entity_id=ds['ps_entity_id'][1],
            ousstatus_entity_id=ds['ousstatus_entity_id'][1],
            ppr_file=pprXmlFile,
            recipe_name=procedureName)
    
        # Create performance parameters object
        context.project_performance_parameters = _getPerformanceParameters(intentsDict)
    
        # Get the session info from the intents dictionary
        if len(intentsDict) > 0:
            sessionsDict = _getSessions(intentsDict)
        else:
            sessionsDict = {}
    
        # Print the relative path
        casa_tools.post_to_log("Directory structure", echo_to_screen=echo_to_screen)
        casa_tools.post_to_log("    Working directory: " + workingDir, echo_to_screen=echo_to_screen)
        casa_tools.post_to_log("    Raw data directory: " + rawDir, echo_to_screen=echo_to_screen)
    
        # Construct the ASDM list
        casa_tools.post_to_log("Number of ASDMs: " + str(len(asdmList)), echo_to_screen=echo_to_screen)
        files = []
        sessions = []
        defsession = 'session_1'
        for asdm in asdmList:
            session = defsession
    
            for key, value in sessionsDict.items():
                if filenamer.sanitize_for_ms(asdm[1]) in value:
                    session = key.lower()
                    break
    
            sessions.append(session)
            files.append(os.path.join(rawDir, asdm[1]))
            casa_tools.post_to_log("    Session: " + session + "  ASDM: " + asdm[1], echo_to_screen=echo_to_screen)
    
        # Paths for all these ASDM should be the same
        #     Add check for this ?
    
        # Beginning execution
        casa_tools.post_to_log("\nStarting procedure execution ...\n", echo_to_screen=echo_to_screen)
        casa_tools.post_to_log("Procedure name: " + procedureName + "\n", echo_to_screen=echo_to_screen)
    
        # Names of import tasks that need special treatment:
        import_tasks = ('h_importdata', 'hifa_importdata', 'hifv_importdata',
                        'hsd_importdata', 'hsdn_importdata')
        restore_tasks = ('h_restoredata', 'hifa_restoredata', 'hifv_restoredata',
                         'hsd_restoredata')
        restore_tasks_no_session = ('hsdn_restoredata',)
    
        # Loop over the commands
        errstr = ''
        foundbp = False
        tracebacks = []
        results = None
        for command in commandsList:
    
            # Get task name and arguments lists.
            pipeline_task_name = command[0]
            task_args = command[1]
            casa_tools.set_log_origin(fromwhere=pipeline_task_name)
    
            # Handle break point if one is set
            if bpset:
                # Found the break point
                #    Set the found flag
                #    Ignore it  or
                #    Break the loop or
                #    Resume execution
                if pipeline_task_name == breakpoint:
                    foundbp = True
                    if bpaction == 'ignore':
                        casa_tools.post_to_log("Ignoring breakpoint " + pipeline_task_name, echo_to_screen=echo_to_screen)
                        continue
                    elif bpaction == 'break':
                        casa_tools.post_to_log("Terminating execution at breakpoint " + pipeline_task_name,
                                               echo_to_screen=echo_to_screen)
                        break
                    elif bpaction == 'resume':
                        casa_tools.post_to_log("Resuming execution after breakpoint " + pipeline_task_name,
                                               echo_to_screen=echo_to_screen)
                        continue
                # Not the break point so check the resume case
                elif not foundbp and bpaction == 'resume':
                    casa_tools.post_to_log("Skipping task " + pipeline_task_name, echo_to_screen=echo_to_screen)
                    continue
    
            # Execute the command
            casa_tools.post_to_log("Executing command ..." + pipeline_task_name, echo_to_screen=echo_to_screen)
            try:
                pipeline_task = cli.get_pipeline_task_with_name(pipeline_task_name)
    
                # List parameters
                for keyword, value in task_args.items():
                    casa_tools.post_to_log("    Parameter: " + keyword + " = " + repr(value), echo_to_screen=echo_to_screen)
    
                # For import/restore tasks, set vis and session explicitly (not inferred from context).
                if pipeline_task_name in import_tasks or pipeline_task_name in restore_tasks:
                    task_args['vis'] = files
                    task_args['session'] = sessions
                elif pipeline_task_name in restore_tasks_no_session:
                    task_args['vis'] = files
    
                results = pipeline_task(**task_args)
                casa_tools.post_to_log('Results ' + str(results), echo_to_screen=echo_to_screen)
    
                if importonly and pipeline_task_name in import_tasks:
                    casa_tools.post_to_log("Terminating execution after running " + pipeline_task_name,
                                           echo_to_screen=echo_to_screen)
                    break
    
            except Exception:
                # Log message if an exception occurred that was not handled by
                # standardtask template (not turned into failed task result).
                casa_tools.post_to_log("Unhandled error in executeppr while running pipeline task {}"
                                       "".format(pipeline_task_name), echo_to_screen=echo_to_screen)
                errstr = traceback.format_exc()
                casa_tools.post_to_log(errstr, echo_to_screen=echo_to_screen)
    
            # Check whether any exceptions were raised either during the task
            # (shown as traceback in task results) or after the task during results
            # acceptance.
            if results:
                tracebacks.extend(utils.get_tracebacks(results))
            if errstr:
                tracebacks.append(errstr)
            # If we have a traceback from an exception, then create local error
            # exit file, and export both error file and weblog to the products
            # directory.
            if len(tracebacks) > 0:
                errorfile = utils.write_errorexit_file(workingDir, 'errorexit', 'txt')
                export_on_exception(context, errorfile)
    
                # Save the context
                cli.h_save()
                casa_tools.post_to_log("Terminating procedure execution ...", echo_to_screen=echo_to_screen)
                casa_tools.set_log_origin(fromwhere='')
    
                previous_tracebacks_as_string = "{}".format("\n".join([tb for tb in tracebacks]))
>               raise exceptions.PipelineException(previous_tracebacks_as_string)
E               pipeline.infrastructure.exceptions.PipelineException: Traceback (most recent call last):
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/executeppr.py", line 270, in executeppr
E                   results = pipeline_task(**task_args)
E                             ^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/h/cli/utils.py", line 27, in wrapped_func
E                   return func(*args, **kwargs)
E                          ^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/hsd/cli/hsd_atmcor.py", line 61, in hsd_atmcor
E                   results = utils.execute_task(context, task_name, all_inputs)
E                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/h/cli/utils.py", line 93, in execute_task
E                   raise exceptions.PipelineException(previous_tracebacks_as_string)
E               pipeline.infrastructure.exceptions.PipelineException: Traceback (most recent call last):
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 659, in execute
E                   return self._handle_multiple_vis(**parameters)
E                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 781, in _handle_multiple_vis
E                   single_result = self.execute(**parameters)
E                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 41, in attach_timestamp_to_results
E                   result = method(self, *args, **kw)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 121, in handle_matplotlibrc
E                   result = method(self, *args, **kwargs)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 89, in capture
E                   result = method(self, *args, **kw)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 62, in finalise_pipeline_result
E                   result = method(self, *args, **kw)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 678, in execute
E                   result = self.prepare(**prepare_parameters)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/hsd/tasks/atmcor/atmcor.py", line 605, in prepare
E                   task_exec_status = self._executor.execute(job)
E                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 89, in capture
E                   result = method(self, *args, **kw)
E                            ^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/basetask.py", line 848, in execute
E                   result = job.execute(**kwargs)
E                            ^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/pipeline/pipeline/infrastructure/jobrequest.py", line 256, in execute
E                   return self.fn(*self.args, **self.kw)
E                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/sdatmcor.py", line 312, in __call__
E                   task_result = _sdatmcor_t( _pc.document['infile'], _pc.document['datacolumn'], _pc.document['outfile'], _pc.document['overwrite'], _pc.document['field'], _pc.document['spw'], _pc.document['scan'], _pc.document['antenna'], _pc.document['correlation'], _pc.document['timerange'], _pc.document['intent'], _pc.document['observation'], _pc.document['feed'], _pc.document['msselect'], _pc.document['outputspw'], _pc.document['gainfactor'], _pc.document['dtem_dh'], _pc.document['h0'], _pc.document['atmtype'], _pc.document['atmdetail'], _pc.document['altitude'], _pc.document['temperature'], _pc.document['pressure'], _pc.document['humidity'], _pc.document['pwv'], _pc.document['dp'], _pc.document['dpm'], _pc.document['layerboundaries'], _pc.document['layertemperature'] )
E                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/private/sdutil.py", line 129, in wrapper
E                   retval = func(*args, **kwargs)
E                            ^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatasks/private/task_sdatmcor.py", line 693, in sdatmcor
E                   sdms.atmcor(config=config, datacolumn=datacolumn, outfile=outfile)
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatools/singledishms.py", line 110, in atmcor
E                   return self._swigobj.atmcor(config, datacolumn, outfile)
E                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E                 File "/lustre/cv/sw/casa/casaci/cvpost128/bamboohome/xml-data/build-dir/PIPESPECS-PIPEMAINCASAMASTER-ML228PY312TEST/casa-build-utils/pipeline/workdir/casa-6.7.3-6-pipeline-2025.1.1.45-py3.12.el8/lib/py/lib/python3.12/site-packages/casatools/__casac__/singledishms.py", line 569, in atmcor
E                   return _singledishms.singledishms_atmcor(self, *args, **kwargs)
E                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E               RuntimeError: Error creating output MS structure

pipeline/infrastructure/executeppr.py:306: PipelineException