Looking at a failure for `tests/python/pants_test/...
# development
b
Looking at a failure for
tests/python/pants_test/init/test_plugin_resolver.py
due to symlinking big files...
Copy code
# Kill the repo source dir and re-resolve. If the PluginResolver truly detects exact
        # requirements it should skip any resolves and load directly from the still intact
        # cache.
        safe_rmtree(repo_dir)
Can someone help me understand what's going on here? The issue is it the second go-around I guess it's re-resolving plugins (which I suppose is a symptom of the bug) and failing to find
jake
Thinking out loud a bit here. I'm seeing
Resolving plugins:
twice in the log. I'm guessing that means the rule graph invalidated that mode. All the inputs to that process should be 1:1 though
Using
logging(level=LogLevel.DEBUG)
I can say for certain that both `Process`es are the same
@witty-crayon-22786 I know you're busy but I got a head-scratcher
w
sounds like it is failing to load from the cache the second time?
is there an error during the cache load perhaps?
if so, it will be logged at debug: https://github.com/pantsbuild/pants/blob/668e9b7d51096f9ec4a12700440bf03506844858/src/rust/engine/process_execution/src/cache.rs#L131-L140 (because it is expected that things disappear from the cache due to GC)
b
out.log
I don't see that line
w
i think you’ll need to tease apart the cache lookup some more… a bit more debug output in there (confirm it actually did the lookup, and with what key, etc)
it’s a bit of a silly test, because it’s effectively just testing process caching at this point (it used to have a dedicated cache)
b
Oh hot take. That could explain the timeouts too
CI doesn't show it failing
w
but yea… i see the process running twice in your log, and AFAIK, that is not what should be happening there (can compare with
main
to confirm, but)
b
I think I have my breadcrumb. The cache key isn't producing a hit. There's probably more missing code in my local store impl
At the very least I suspect we need to implement
get_missing_digests
,
all_digests
,
remove
, and the shrinking. The first two might explain the failure
w
Ah, yea: definitely `get_missing_digests`: that's used in read / write code paths. The latter two are probably only used in GC
b
And here I thought I hadn't used tokio::fs enough 😤
Copy code
14:26:11.87 [INFO] Completed: Run Pytest - tests/python/pants_test/init/test_plugin_resolver.py:tests - succeeded.
Yup
❤️ 1
I really appreciate the assist ❤️