Project

General

Profile

action #51716

Updated by mkittler almost 4 years ago

### ## Problem 

 As user which is not familiar with the scheduling details of openQA and how to look up the "scheduled products" table it is hard to trace scheduling problems, e.g. to find out why dependencies are not created as expected. Even when knowing such details it is very inconvenient to check scheduling problems for a particular job because there is no link from the test details page to the corresponding scheduled product. The scheduled products table is also cumbersome to work with as it only shows a limited number of entries and has limited search capabilities. 

 ## Steps to reproduce 

 1. Define test suite A with variable PARALLEL_WITH=B  
 2. Define test suite B with variable PARALLEL_WITH=B  
 3. Add add both tests to same job group 
 4. Try  
 3. try to call `/usr/bin/openqa-client "/usr/bin/openqa-client isos post [all required vars DISTRI,VERSION,FLAVOR etc.] TEST=A,B` TEST=A,B" 

 ### Observation 
 Nothing happens. 

 ### ==> nothing will happen  

 Expected 
 An : error message that the scheduling post failed due to cycle dependencies is generated. 

 note:  

 Note: In case you will try to call `/usr/bin/openqa-client "/usr/bin/openqa-client isos post [all required vars DISTRI,VERSION,FLAVOR etc.]` (without `TEST` var; etc.]" ( without TEST var so for the whole iso) iso )    you will get the expected error, e.g.: 

 ``` 
 error : 

     { 
     error_messages => [ 
         
     "There is a cycle in the dependencies of wicked_aggregate_ref at /usr/share/openqa/script/../lib/OpenQA/Schema/Result/ScheduledProducts.pm line 691.\n", 
     ], 
     job_id => 1038, 
     } 


 ## Suggestions 

 1. Add a link to the scheduled product on the job details page. 
 2. Show a warning about scheduling errors directly on the job details page if that does not slow down the loading time of the page too much. 
 3. Improve the scheduled products table. 
     1. At least allow to show a specific scheduled product for 1. (e.g. add a dedicated "details pages" to show a single scheduled product). 
     2. With 1. not so important anymore but still worth considering: Use server-side rendering for the scheduled products table to show more than only a limited number of scheduled products at a time. 

 ## Notes 

 The errors which would be interesting are stored as JSON in the scheduled products table, e.g.: 

 ``` 
 "failed_job_info": [ 
         { 
             "error_messages": [ 
                 "START_AFTER_TEST=create_hdd_gnome@64bit not found - check for dependency typos and dependency cycles" 
             ], 
             "job_id": 4063938 
         }, 
         { 
             "error_messages": [ 
                 "allmodules+allpatterns+registration@svirt-hyperv has no child, check its machine placed or dependency setting typos" 
             ], 
             "job_id": [ 
                 4063960 
             ] 
         }, 
         { 
             "error_messages": [ 
                 "allmodules+allpatterns+registration@svirt-hyperv-uefi has no child, check its machine placed or dependency setting typos" 
             ], 
             "job_id": [ 
                 4063986 
             ] 
         }, 
         { 
             "error_messages": [ 
                 "allmodules+allpatterns+registration@svirt-xen-hvm has no child, check its machine placed or dependency setting typos" 
             ], 
             "job_id": [ 
                 4063961 
             ] 
         }, 
         { 
             "error_messages": [ 
                 "allmodules+allpatterns+registration@svirt-xen-pv has no child, check its machine placed or dependency setting typos" 
             ], 
             "job_id": [ 
                 4063967 
             ] 
         } 
     ] 
 ``` 

Back