Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On windows, the new storage plugin functionality seems to fail to properly match s3 objects between input and output of rules #2473

Closed
johanneskoester opened this issue Oct 8, 2023 · 4 comments · Fixed by #2519
Assignees
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@johanneskoester
Copy link
Contributor

Snakemake version
Snakemake 8.0 (in development)

Describe the bug
On windows, the new storage plugin functionality seems to fail to properly match s3 objects between input and output of rules

Logs

# snakemake.exceptions.MissingInputException: Missing input files for rule all:
# affected files:
#   s3://snakemake-ec6c5e4c267d4a1e890976b57c99ee55/test2.out (storage)
#

Minimal example
This can for example be observed when activating the test case test_storage on windows.

@melund, your help would be greatly appreciated! (at the moment, the test fails in PR #5440, but I will merge that PR ASAP even before this is fixed in order to proceed with the finalization of Snakemake 8.0).

@johanneskoester johanneskoester added the bug Something isn't working label Oct 8, 2023
@johanneskoester johanneskoester added the help wanted Extra attention is needed label Oct 8, 2023
@melund
Copy link
Contributor

melund commented Oct 8, 2023

Yes. Just merge it. I will be happy to help fix the issue on Windows if I can. However, I will not have time to really look into it until next weekend.

@johanneskoester
Copy link
Contributor Author

Thank you so much! PR is merged, the problematic test is

def test_storage(s3_storage):

@melund
Copy link
Contributor

melund commented Oct 13, 2023

@johanneskoester. What do you suspect. Is it snakemake itself or the new storage-plugin that is causing the bug?

@melund
Copy link
Contributor

melund commented Oct 15, 2023

@johanneskoester. I gave it a look while the kids were sleeping. But it took a me a while to get into the code base again. Just getting the test running locally proved difficult.

Turns out that "Git for Windows" have reorganized its internal unix tools so they are no longer on path (Things like "cp", "touch", "cat" etc.) I guess it works in the cloud because the GitHub actions VM comes prepackaged with all the tools MSYS2 tools on path.

I fixed that and got the tests suite running, but for some reason a few tests still fail for me:

FAILED tests/tests.py::test_glpk_solver - AssertionError: expected successful execution
FAILED tests/tests.py::test_output_file_cache - AssertionError: expected successful execution
FAILED tests/tests.py::test_module_complex - AssertionError: expected successful execution
FAILED tests/tests.py::test_module_complex2 - AssertionError: expected successful execution
FAILED tests/tests.py::test_module_with_script - AssertionError: expected successful execution

I will disregard that for now and begin looking at the test_storage test.

However, is there any documentation or discussion on how the new storage plugin works from a user perspective?

johanneskoester added a commit that referenced this issue Nov 21, 2023
… paths (#2519)

Fixes: #2473

### QC
<!-- Make sure that you can tick the boxes below. -->

* [ ] The PR contains a test case for the changes or the changes are
already covered by an existing test case.
* [ ] The documentation (`docs/`) is updated to reflect the changes or
this is not necessary (e.g. if the change does neither modify the
language nor the behavior or functionalities of Snakemake).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
2 participants