-
Notifications
You must be signed in to change notification settings - Fork 232
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
Failed to download compressed mapping from GitHub, even if I can wget
the file.
#1882
Comments
Did you try with |
wget
the file.
It still does not work (and now the message slightly changed, it does not print the url of the file to download anymore):
|
When I add config like the following to my pyproject.toml that the docs suggest...
...and then try to
Looks similar but not exactly the same as the error reported in this issue -- should I open a separate issue? |
Hey! could you please share your pixi.toml or pyproject.toml configuration? |
Sure: [project]
name = "foo"
description = "foo"
version = "0.0.1"
[tool.pixi.project]
channels = [
"https://artifactory.chicagotrading.com/artifactory/api/conda/ctc-curated-condaforge-main",
...
]
platforms = ["linux-64"]
[tool.pixi.dependencies]
# 3rd-party
matplotlib = "*"
pandas = "*"
# 1st-party
...
# The commented out config below is suggested by
# https://pixi.sh/latest/tutorials/python/#whats-in-the-pyprojecttoml:~:text=The%20pixi_py%20package%20itself%20is%20added%20as%20an%20editable%20dependency
# for a good local development workflow, but caused the following error when I tried it:
# error sending request for url (https://conda-mapping.prefix.dev/hash-v0/115b796fddc846bee6f47e3c57d04d12fa93a47a7a8ef639cefdc05203c1bf00)
# ├─▶ client error (Connect)
# ├─▶ dns error: failed to lookup address information: Try again
#
# [tool.pixi.pypi-dependencies]
# foo = { path = ".", editable = true }
#
# Install this package in the test env too so that we can remove "src" from pytest pythonpath config below:
# [tool.pixi.feature.test.pypi-dependencies]
# foo = { path = ".", editable = true }
[tool.pixi.feature.test.dependencies]
pytest = "*"
[tool.pixi.feature.test.tasks]
test = "pytest"
[tool.pixi.environments]
default = { solve-group = "default" }
test = { features = ["test"], solve-group = "default" }
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]
addopts = [
"-vv",
] |
Did you find what was going on? I think I'm hitting the same issue on Ubuntu 22.04, and I can't but suspect it is related to authentication and access to gnome-keyring. |
I did not ever find out what was going on, and ended up switching away from pixi for the use case where I was hitting this issue, so I haven't put more time into it since then. |
Ok, I found out what was happening on my case: I was using the pixi executable from the Releases section here in github, inside of a Rocky8 docker container. That one is built on top of musl. And musl seems to have a known issue with dns resolving: https://stackoverflow.com/questions/65181012/does-alpine-have-known-dns-issue-within-kubernetes#65593511. The stackoverflow post is old (2021!), but it seems the issue is still there in some degree, as I could work around it by using one of the suggested workarounds: direct edition of /etc/host to hardcode some FQDN to their known IPs. It might be a good idea to add a glibc based build to the release assets. |
Hi, I get the same error on RHEL 8.8 and it prevents me from installing any package from pypi, is there any workaround ? |
hey @RomDeffayet ! do you have the same root issue as @ricrogz ( using musl builds?) ? |
No sorry, the same one as @traversaro : I just installed pixi and tried setting up a project
or just:
And similarly as @traversaro, I can wget the file without any issues. |
Same here, pixi 0.41.4, fresh install on Debian hpc login node. Maybe this library you use, rattler, downloads stuff to disk in a way that is incompatible with the less than ideal HPC filesystems? |
Can confirm: the problem came from setting $PIXI_CACHE_DIR to a beegfs filesystem ($PIXI_HOME can point to that fs without any issue) |
@RomDeffayet wow, ok, so we have our cases pinned down to beegfs. There seems to be in HPC a real disconnect between efficient shared storage, which requires minimizing calls to the metadata handling part of the filesystem (opening,closing files) and python environments updating and usage, which requires updating/reading thousands of small files. I am going to try some other storage locations in the cluster. |
Yeah for the mapping we are writing a high number of tiny files to the cache directory. We could think of ways of making that more efficient. We also have the mapping as a single bigger file and we could make that configurable (or ideally automatically discover if we are on a slow / network file system and prefer that). Do you see other solutions? |
@wolfv thanks for the quick reply. Let me split things more explicitly. All of these put some strain in the filesystem:
I don't think HPC users can expect 2 or 3 to be as fast as local storage, but 1 creates an issue micromamba did not have. For a small slice of users that have access to more distributed filesystems fixing #3180 should make all three points less stressing on the filesystem. |
We're working on some improvements in #3318 |
@LunarLanding Would having one sqlite database instead of lots of small files be more performant on these filesystems? |
@wolfv I had a look at the change set, but could not see if they would reduce the large number of files created by the mapping. @baszalmstra with sqlite on NFS, because the database is a single file then it should be more performant since the metadata server only needs to open and close one file, once. However if there is a process writting then it needs to be the only process accessing the db, ie. sqlite built-in locking depends on assumptions that are not valid in NFS. There are two possible solutions:
|
There are a number of different issues in this issue. The original issue from @traversaro seems to be an issue with writing to the http cache. For the other issue regarding musl it might indeed make sense to ship a binary based on glibc. However, I would like to make sure that we ship a binary that links with the lowest compatible glibc possible. Maybe zigbuild can help us out there. I don't directly see a simple way forward to refactor the code to not produce many small files. We'll have to put that on the backlog for now. |
@baszalmstra yes, it is location dependent #1882 (comment) and here is the corresponding issue #3180
Should I create a new issue for the high number of files? Specifically I am talking about the package manager updating and reading the mapping cache, which is not required by micromamba. |
Lets do that to not conflate this issue to much |
Checks
I have checked that this issue has not already been reported.
I have confirmed this bug exists on the latest version of pixi, using
pixi --version
: 0.27.1Reproducible example
I am on a HPC system (of which I do not know all the details, so this is definitely not reproducible) and running a pixi command fails with:
Issue description
I found a bunch of similar (but apparently not directly related) issues, so I tought it was more clear to open a new issue. Do you have any idea on how I could debug the problem more?
Expected behavior
That
pixi run
worked without any download error.The text was updated successfully, but these errors were encountered: