-
Notifications
You must be signed in to change notification settings - Fork 994
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
[bug] Corrupted packages in local cache #17622
Comments
After manually removing all of the entries, running I now get errors like the following, where the indicated directory also does not exist at all., but is now looking for
|
Subsequently, I run into the following issue with a
The information presented (reference without package id, rrev, etc.) makes all instances identical, not even providing a copyable or identifiable handle to potentially use for |
Hi @mrjoel Thanks for your report. The last one, about packages that contain python code.
I'll follow up in a new comment regarding the other points. |
Regarding the other points, the PR #17628 proves that:
The main issue seems to be when the
So there would be some unknowns that would be great to understand better, for example how is it possible for a package in the cache to end without a In any case, I am adding in #17628 checking and protection against those broken packages cases, I understand it can be convenient to be able to remove them with a simple |
I believe that we're using it purely as intended, certainly no subprocess or anything. The Looking further, we do however do something like the following, which seems to be what causes the separately imported file to be generated in
Obviously the manifest shouldn't cover the
Ok, so it sounds like
Looks like #17628 changes to make that happen, a welcome update, thanks.
Yes, with using the wildcard as in the test like |
I'll try to review my changes and see if I can catch what steps led to the situation. Given that it was incremental builds during final remaining transitions to add Conan 2 support, it's likely to have been something ephemeral in an intermediate state which failed. |
yes, that could be related
We did ignore their presence in the past in Conan 1, and know what? It was problematic! 😅 because it happened that a few users wanted to actually package pycache and pyc files as "binaries". So even if not great for other cases, we came to the conclusion that Conan shouldn't try to be smart in that sense, what is in the "package" folder is part of the package, and if anything changes there, then it is a corruption. This is also why we created the
No, only checks the "files" consistency, to prevent against file modification. It doesn't fully cross check the consistency of the DB and the filesystem (there hasn't been a problem there so far either).
Yes, the intent of
yes, exactly, the |
I can fully get behind that motivation. Now that we know the cause we'll look at adding |
|
Describe the bug
Version: 2.11.0
OS: Debian bookworm
Issue
I'm in a state where running
conan cache clean
and subsequentlyconan cache check-integrity
results in error messages like the following.I've been working on doing final migration of our remaining Conan 1 recipes. It's entirely expected that some of my local package builds which encountered errors during the process caused the issue. On inspection, the indicated paths don't even exist. I've manually edited the
cache.sqlite3
to remove the invalid entries from thepackages
table. The check integrity only ever shows a single issue.Expected
Assuming that
check-integrity
is meant to essentially be anfsck
for the cache, I have the following expectations:Perhaps there's some other recommended approach to recover from this situation, but I wasn't able to find one. Blowing away a local Conan cache is less than desirable, particularly when I'm operating in a testing mode with no Conan remote and doing all builds locally.
How to reproduce it
No response
The text was updated successfully, but these errors were encountered: