##10770: address()

1 messages ยท Page 1 of 1 (latest)

versed narwhal
#

pretty sure this is a flake notsureif /cc @leaden stirrup

dry hatch
#

But it's happened a few times in a row...

#

Heading to a train, will resume when I'm boarded

#

thank you!

versed narwhal
#

ah ok - maybe it just happens to look like a flake but is real this time ๐Ÿ˜› (tests who cried wolf)

dry hatch
#

also there's an elixir test that apparently fails in main? should we disable that somehow?

dry hatch
#

...aaand I'm back

dry hatch
#

~~@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

leaden stirrup
#

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

dry hatch
#

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...

leaden stirrup
dry hatch
#

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

leaden stirrup
#

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

dry hatch
#

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 ๐Ÿ™

dry hatch
#
        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"
dry hatch
#

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()

dry hatch
#

@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