copy: include backend context in remote read errors#321
Conversation
|
@Rohithmatham12 thanks, this is closer to the area I was asking about, but I don’t think we should merge it in this form. Propagating an |
9f0ae96 to
89e7501
Compare
|
Thanks for the review. I reworked the branch to avoid the coarse What changed in the latest push:
This should distinguish backend reader failures from target-to-target transport failures after the reader is opened, while keeping the copy transport/retry behavior unchanged. |
|
I don’t think the reader wrapper is the right abstraction here. The goal is to preserve/report remote source context, not to change the reader behavior. Maybe simplify this by carrying explicit remote source context through the existing copy/transport result path and include that context where the error is reported. That should make the patch smaller and easier to reason about, while still satisfying the diagnostic goal. |
89e7501 to
3c16dac
Compare
|
Thanks, that makes sense. I reworked the branch again to remove the reader wrapper abstraction. Latest push changes:
This should be closer to the simpler shape you suggested. |
Summary
core.ReadRespandxs.CoiResfor copy/ETL source reads.core.RemoteSourceError.GetObjReaderfailure at the backend boundary; later copy/transport errors are reported as copy failures with remote-source context.RGETremains only for stats.Why
This reworks the earlier #321 approach based on maintainer feedback. The previous versions either propagated a coarse
RGETboolean or wrapped the reader itself. This version keeps the patch smaller by carrying explicit source context through the existing copy result path and attaching it where errors are reported.Refs #309.
Testing
GOCACHE=/private/tmp/aistore-backend-gocache GOMODCACHE=/private/tmp/aistore-backend-gomodcache go test ./core -run 'TestRemoteSource'GOCACHE=/private/tmp/aistore-backend-gocache GOMODCACHE=/private/tmp/aistore-backend-gomodcache go test ./ais -run 'TestCopyReaderPreservesRemoteSourceContext'GOCACHE=/private/tmp/aistore-backend-gocache GOMODCACHE=/private/tmp/aistore-backend-gomodcache go test ./xact/xs -run '^$'git diff --checkNot fully run locally:
go test ./xact/xsstarts but fails in unrelated local macOS sandbox memory-pressure setup (sys/mem: operation not permitted,extreme memory pressure) before reaching this change.