##10770: address()
1 messages ยท Page 1 of 1 (latest)
But it's happened a few times in a row...
Heading to a train, will resume when I'm boarded
thank you!
ah ok - maybe it just happens to look like a flake but is real this time ๐ (tests who cried wolf)
also there's an elixir test that apparently fails in main? should we disable that somehow?
...aaand I'm back
~~@versed narwhal @inner mountain @lethal dawn @minor flame sorry to bother you, I have a question about yet another engine implementation detail... I'm trying to attach an originalAddress field to the wrapped object. eg. address("foo").container().originalAddress() returns "foo".
But my implementation breaks the immutability model.. Not sure what I'm doing wrong~~
Oooh maybe I just need to do tr := inst.Self().Clone()
I apologize for pinging you for so many little things, I try to only do it when I feels like a potential "cache hit", ie. saving me hours of research in exchange for a few minutes
--> yup that .Clone() solved it... apologies
The error message there looks similar to a known flake I'm working on, but it looks a little different and if it's consistent might be distinct. I can pull the PR down and see if I can repro it there
and try on my PR w/ the fixes for the flake
Thanks!
Side note, I know it's probably the opposite for you @leaden stirrup , but it feels good to be back on the core a little bit, tending to the garden. Lots of incremental improvements that have an immediate impact on users, whether bugfix or practical feature. And it compounds...
Totally, it also feels good to have that more immediately beneficial work mixed in with all the other stuff we're doing that's much larger in scope and requires quite a bit of sowing before we can reap the results
I think (hope) we're entering a phase of "harvesting" the various building blocks we've been growing here and there, and integrating them back together for a result that is more than the sum of its parts
eg.
- Cloud + parc
- parc + engine
- container-use + engine
etc
For the "session not found" errors during file export, that should be fixed by https://github.com/dagger/dagger/pull/10761. I repro'd a few times but seems rare enough and fix is coming soon, so fine to ignore for this PR.
There's other errors with "secret not found", which is different and a bit more involved. The problem is that address("env://SECRET").asSecret returns an ID for the secret as essentially query{address(value: "env://SECRET"){asSecret}}, whereas the secret that's actually added to the secret store has id query{secret(uri: "env://SECRET")}. The whole secret system is based around IDs and their digests, so the new form was not ending up in the secret store and could thus go missing.
I have a fix, but it's not super ideal. What'd be ideal is if the returned ID from address("env://SECRET").asSecret was actually the exact same as secret("env://SECRET"), because that'd result in the maximal amount of cache hits. But we can't do that because of the originalAddress API. That string "infects" the secret and means we can't dedupe secrets in terms of cache as much as we do with the underlying secret api.
There's actually improvements coming in the persistent cache work that allows objects to have multiple digests which will make all of this a non-issue. But in the meantime, I think this is an acceptable tradeoff for address-based secrets to have slightly less ideal caching.
@dry hatch tl;dr I pushed a fix to your PR for the secrets errors
thank you @leaden stirrup ! I was going to offer to remove the originalAddress altogether, and find another way to fix display in the CLI.. But your fix works so I'll keep it as is ๐
I found one more test fail that was legitimate (small bug in secret cache key extraction). I think this is the light at the end of the tunnel ๐
I'm down to the very very last legit (?) test fail...https://dagger.cloud/dagger/traces/871471958e1abdb81314973e4a5bd354?listen=2fb5c514b5170fc2&listen=cc1d888ec051ce81&listen=e47ca925e7291cde
Error Trace: /app/core/integration/cross_session_test.go:1439
/go/pkg/mod/github.com/dagger/testctx@v0.0.4/testctx.go:295
/go/pkg/mod/github.com/dagger/testctx/oteltest@v0.0.3/log.go:37
/go/pkg/mod/github.com/dagger/testctx/oteltest@v0.0.3/trace.go:83
/go/pkg/mod/github.com/dagger/testctx@v0.0.4/middleware.go:25
/go/pkg/mod/github.com/dagger/testctx@v0.0.4/testctx.go:149
Error: Not equal:
expected: "porywfideyepkr7j82p1idk8m"
actual : "x01bsdwvapxwest803969kppd"
Repro for remaining failing test:
dagger -q -m github.com/shykes/dagger@address-api <<.
test |
specific --run=TestSecret/TestCrossSessionSecretURICaching/dagger_call_custom_cache_key/file
.
#10770 address()
#10770: address()
@leaden stirrup I know your backlog is super long... Just wanted to flag this in case you have an awesome insight, it's literally the only failing test ๐
And I have no idea what it does
This is the failing assert https://github.com/dagger/dagger/blob/main/core/integration/cross_session_test.go#L1439
/cc @leaden stirrup