DUNE-DAQ / drunc

Dune RUN Control (DRUNC) is the run control for the DUNE experiment
1 stars 1 forks source link

Exceptions from confmodel not propagated through drunc #240

Closed strilov closed 1 month ago

strilov commented 2 months ago

Minor issue: exceptions thrown in dunedaq::confmodel::construct_commandline_parameters_appfwk do not seem to be propagated through drunc, the error message from drunc is a generic RunTimeError.

e.g. I was missing an op mon service from a session, which I believe was resulting in this exception being thrown: https://github.com/DUNE-DAQ/confmodel/blob/develop/include/confmodel/util.hpp#L114, shows up as


(dbt) [st15719@it063642 test]$ drunc-unified-shell ssh-standalone
Starting process manager with configuration file:///home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/data/process_manager/ssh-standalone.json
Using 'file:///home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/data/process_manager/ssh-standalone.json' as the ProcessManager configuration
Starting 'SSHProcessManager'
[11:16:18] INFO     "BroadcastSenderConfHandler": None                                                                                                                                         configuration.py:25
           INFO     "Controller": DummyAuthoriser ready                                                                                                                                     dummy_authoriser.py:13
ProcessManager was started on it063642.users.bris.ac.uk:10054
[11:16:18] INFO     "unified": localhost:10054 is 'process_manager.st15719' (name.session), starting listening...                                                                               shell_utils.py:288
drunc-unified-shell > boot config/timing.data.xml test-session
config/timing.data.xml
[11:16:19] WARNING  "find_configuration": The configuration 'config/timing.data.xml' matches >1 configurations in $DUNEDAQ_SHARED_PATH:                                                        configuration.py:63
                     - /home/st15719/dune/daq_v510/test/sourcecode/timinglibs/config/timing.data.xml                                                                                                              
                     -                                                                                                                                                                                            
                    /cvmfs/dunedaq-development.opensciencegrid.org/nightly/NB_DEV_240909_A9/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-12.1.0/timinglibs-NB_DEV_240909_A9-tkaxxybnyeyi                    
                    pbtxidkqiklihkua2vzh/share/config/timing.data.xml                                                                                                                                             
                    Using the first one                                                                                                                                                                           
           INFO     "_convert_oks_to_boot_request": /home/st15719/dune/daq_v510/test/sourcecode/timinglibs/config/timing.data.xml                                                     process_manager_driver.py:35
RuntimeError: test-session
           WARNING  "click_shell.core": Traceback (most recent call last):                                                                                                                              core.py:50
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/click_shell/core.py", line 34, in invoke_                                                                         
                        command.main(args=shlex.split(arg),                                                                                                                                                       
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/click/core.py", line 1055, in main                                                                                
                        rv = self.invoke(ctx)                                                                                                                                                                     
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke                                                                              
                        return ctx.invoke(self.callback, **ctx.params)                                                                                                                                            
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/click/core.py", line 760, in invoke                                                                               
                        return __callback(*args, **kwargs)                                                                                                                                                        
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/click/decorators.py", line 38, in new_func                                                                        
                        return f(get_current_context().obj, *args, **kwargs)                                                                                                                                      
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/utils/utils.py", line 121, in wrapper                                                                       
                        ret = loop.run_until_complete(main_task)                                                                                                                                                  
                      File                                                                                                                                                                                        
                    "/cvmfs/dunedaq.opensciencegrid.org/spack/externals/ext-v2.1/spack-0.22.0/opt/spack/linux-almalinux9-x86_64/gcc-12.1.0/python-3.10.10-gcsatsf5lmzrhmprzux7uv67w2omc7e3/lib/python3.           
                    10/asyncio/base_events.py", line 649, in run_until_complete                                                                                                                                   
                        return future.result()                                                                                                                                                                    
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/unified_shell/commands.py", line 27, in boot                                                                
                        async for result in results:                                                                                                                                                              
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/process_manager/process_manager_driver.py", line 132, in boot                                               
                        async for br in self._convert_oks_to_boot_request(                                                                                                                                        
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/process_manager/process_manager_driver.py", line 39, in _convert_oks_to_boot_request                        
                        apps = collect_apps(db, session_dal, session_dal.segment)                                                                                                                                 
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/process_manager/oks_parser.py", line 108, in collect_apps                                                   
                        "args": get_cla(db._obj, session.id, app),                                                                                                                                                
                      File "/home/st15719/dune/daq_v510/test/.venv/lib/python3.10/site-packages/drunc/process_manager/configuration.py", line 80, in get_cla                                                      
                        return daq_application_construct_commandline_parameters(db, session_uid, obj.id)                                                                                                          
                    RuntimeError: test-session  
'''
PawelPlesniak commented 1 month ago

Resolved with PR#277