Skip to content

Sanitize ~ in pathname (we do not use/rely on ~ ATM)#214

Merged
yarikoptic merged 1 commit intomasterfrom
bf-sanitize-tilda
Sep 2, 2025
Merged

Sanitize ~ in pathname (we do not use/rely on ~ ATM)#214
yarikoptic merged 1 commit intomasterfrom
bf-sanitize-tilda

Conversation

@yarikoptic
Copy link
Copy Markdown
Member

Backstory:

-N  - 118/303052: Cron Daemon            Cron <datalad@smaug> chronic /mnt/datasets/datalad/ci/cron_job bids-validator                                                                                                                                                                               -- (end)
2025-09-02T03:05:38-0400 [INFO    ] tinuous: Asset main from deno_tests.yml (Deno build) #433 already downloaded to builds/2025/08/pr-237/deno_tests.yml-433-fb2b6c11-success; skipping                                                                                                                      
2025-09-02T03:05:38-0400 [INFO    ] tinuous: Fetching runs for workflow .github/workflows/docker-build-push.yml (Docker)                                                                                                                                                                                     
2025-09-02T03:05:39-0400 [INFO    ] tinuous: Found run 51                                                                                                                                                                                                                                                    
2025-09-02T03:05:39-0400 [INFO    ] tinuous: Logs for docker-build-push.yml (Docker) #51 already downloaded to builds/2025/08/pr-247/docker-build-push.yml-51-da6cb2e8-success; skipping                                                                                                                     
2025-09-02T03:05:39-0400 [INFO    ] tinuous: Downloading asset bids-standard~bids-validator~SUGQRH.dockerbuild for docker-build-push.yml (Docker) #51 to builds/2025/08/pr-247/docker-build-push.yml-51-da6cb2e8-success                                                                                     
2025-09-02T03:05:40-0400 [ERROR   ] tinuous: Invalid zip file retrieved; waiting and retrying                                                                                                                                                                                                                
Traceback (most recent call last):                                                                                                                                                                                                                                                                           
  File "/mnt/datasets/datalad/ci/tinuous/src/tinuous/base.py", line 199, in download_zipfile                                                                                                                                                                                                                 
    with ZipFile(zippath) as zf:                                                                                                                                                                                                                                                                             
         ^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                                    
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/zipfile/__init__.py", line 1349, in __init__                                                                                                                                                                                                
    self._RealGetContents()                                                                                                                                                                                                                                                                                  
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/zipfile/__init__.py", line 1416, in _RealGetContents                                                                                                                                                                                        
    raise BadZipFile("File is not a zip file")                                                                                                                                                                                                                                                               
zipfile.BadZipFile: File is not a zip file                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                             
During handling of the above exception, another exception occurred:                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                             
Traceback (most recent call last):                                                                                                                                                                                                                                                                           
  File "/home/datalad/miniconda3/envs/tinuous-dev/bin/tinuous", line 8, in <module>                                                                                                                                                                                                                          
    sys.exit(main())                                                                                                                                                                                                                                                                                         
             ^^^^^^                                                                                                                                                                                                                                                                                          
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/core.py", line 1157, in __call__                                                                                                                                                                                        
    return self.main(*args, **kwargs)                                                                                                                                                                                                                                                                        
           ^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                        
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/core.py", line 1078, in main                                                                                                                                                                                            
    rv = self.invoke(ctx)                                                                                                                                                                                                                                                                                    
         ^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                                    
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/core.py", line 1688, in invoke                                                                                                                                                                                          
    return _process_result(sub_ctx.command.invoke(sub_ctx))                                                                                                                                                                                                                                                  
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                   
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/core.py", line 1434, in invoke                                                                                                                                                                                          
    return ctx.invoke(self.callback, **ctx.params)                                                                                                                                                                                                                                                           
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                           
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/core.py", line 783, in invoke                                                                                                                                                                                           
    return __callback(*args, **kwargs)                                                                                                                                                                                                                                                                       
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                       
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/site-packages/click/decorators.py", line 45, in new_func                                                                                                                                                                                    
    return f(get_current_context().obj, *args, **kwargs)                                                                                                                                                                                                                                                     
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                     
  File "/mnt/datasets/datalad/ci/tinuous/src/tinuous/__main__.py", line 133, in fetch                                                                                                                                                                                                                        
    paths = obj.download(Path(path))                                                                                                                                                                                                                                                                         
            ^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                         
  File "/mnt/datasets/datalad/ci/tinuous/src/tinuous/github.py", line 398, in download                                                                                                                                                                                                                       
    self.client.download_zipfile(self.download_url, target_dir)                                                                                                                                                                                                                                              
  File "/mnt/datasets/datalad/ci/tinuous/src/tinuous/base.py", line 202, in download_zipfile                                                                                                                                                                                                                 
    rmtree(target_dir)                                                                                                                                                                                                                                                                                       
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/shutil.py", line 759, in rmtree                                                                                                                                                                                                             
    _rmtree_safe_fd(stack, onexc)                                                                                                                                                                                                                                                                            
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/shutil.py", line 703, in _rmtree_safe_fd                                                                                                                                                                                                    
    onexc(func, path, err)                                                                                                                                                                                                                                                                                   
  File "/home/datalad/miniconda3/envs/tinuous-dev/lib/python3.12/shutil.py", line 669, in _rmtree_safe_fd                                                                                                                                                                                                    
    orig_st = os.lstat(name, dir_fd=dirfd)                                                                                                                                                                                                                                                                   
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                                                                                                                   
FileNotFoundError: [Errno 2] No such file or directory: PosixPath('builds/2025/08/pr-247/docker-build-push.yml-51-da6cb2e8-success/bids-standard~bids-validator~SUGQRH.dockerbuild') 

which happened for

@yarikoptic yarikoptic added patch Increment the patch version when merged release Create a release when this pr is merged labels Sep 2, 2025
@yarikoptic
Copy link
Copy Markdown
Member Author

marked for release since there were none for a while and there were fixes. I will merge if all green.

@codecov
Copy link
Copy Markdown

codecov bot commented Sep 2, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 61.24%. Comparing base (5635a3e) to head (1609da8).
⚠️ Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #214      +/-   ##
==========================================
- Coverage   65.36%   61.24%   -4.13%     
==========================================
  Files          10       10              
  Lines        1383     1383              
  Branches      211      211              
==========================================
- Hits          904      847      -57     
- Misses        397      462      +65     
+ Partials       82       74       -8     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yarikoptic yarikoptic merged commit 7c84a57 into master Sep 2, 2025
23 of 24 checks passed
@yarikoptic yarikoptic deleted the bf-sanitize-tilda branch September 2, 2025 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Increment the patch version when merged release Create a release when this pr is merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant