Project

General

Profile

Bug #15241

Updated by Peter Amstutz over 5 years ago

<pre> 
   - class: InitialWorkDirRequirement 
     listing: 
       - entry: $(inputs.geneBankFilesDir) 
         writable: true 
 </pre> 


 <pre> 
     "keep:e4b03abaf2b9912f3823d19bd78f296b+219": [ 
         "keep:e4b03abaf2b9912f3823d19bd78f296b+219",  
         "/var/spool/cwl/e4b03abaf2b9912f3823d19bd78f296b+219",  
         "WritableDirectory",  
         false 
     ],  
 </pre> 

 <pre> 
 Traceback (most recent call last): 
   File "/usr/lib/python2.7/site-packages/arvados_cwl/executor.py", line 700, in arv_executor 
     self.start_run(runnable, runtimeContext) 
   File "/usr/lib/python2.7/site-packages/arvados_cwl/executor.py", line 219, in start_run 
     self.workflow_eval_lock, self.stop_polling) 
   File "/usr/lib/python2.7/site-packages/arvados_cwl/task_queue.py", line 44, in add 
     task() 
   File "/usr/lib/python2.7/site-packages/arvados_cwl/arvcontainer.py", line 152, in run 
     vwd.copy(path, p.target, source_collection=source) 
   File "/usr/lib/python2.7/site-packages/arvados/arvfile.py", line 472, in must_be_writable_wrapper 
     return orig_func(self, *args, **kwargs) 
   File "/usr/lib/python2.7/site-packages/arvados/arvfile.py", line 273, in synchronized_wrapper 
     return orig_func(self, *args, **kwargs) 
   File "/usr/lib/python2.7/site-packages/arvados/collection.py", line 923, in copy 
     target_dir.add(source_obj, target_name, overwrite, False) 
   File "/usr/lib/python2.7/site-packages/arvados/arvfile.py", line 472, in must_be_writable_wrapper 
     return orig_func(self, *args, **kwargs) 
   File "/usr/lib/python2.7/site-packages/arvados/arvfile.py", line 273, in synchronized_wrapper 
     return orig_func(self, *args, **kwargs) 
   File "/usr/lib/python2.7/site-packages/arvados/collection.py", line 849, in add 
     item = source_obj.clone(self, target_name) 
 AttributeError: 'NoneType' object has no attribute 'clone' 
 </pre> 


 The problem is that get_collection() returns @None@ for @path@ when there is no path in the keep: URI.    The None gets passed into vwd.copy() and causes it to crash. 

 It should probably be changed to @path or "."@ so that it refers to the whole collection in that case. 

 Write a test case to confirm the bug & the fix. 

Back