From c14dd01f08ca1d7a5fccbe5ffdc0b69ed3463962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9A=E7=AB=A0=E6=B5=A9?= Date: Thu, 29 Oct 2026 13:32:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(library):=20=E5=B0=81=E5=AD=98=E8=AF=BB?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=A4=B1=E8=B4=A5=E5=B8=A6=E4=B8=8A=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E8=A1=8C=E4=B8=8E=E5=BA=95=E5=B1=82=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 真实封存卡在 `read library resource` 时没有任何可判断信息:对象缺失、桶写错、 宿主机解析不到端点都会走到同一个字符串。现在错误带资源行 id 与底层原因 (不含凭据),本轮就是用它在候选栈定位到"源对象被上一次 B02 演练删掉后没真正写回"。 --- CHANGELOG.md | 3 +++ internal/releaseadapter/v071/library_archive.go | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5146fc..8e99a7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,9 @@ ### Fixed +- **封存读资源失败只剩一句 `read library resource`**:对象缺失、桶错、端点解析不到 + 都会走到同一个字符串,真实封存直接卡在这里无法判断方向。现在带上资源行 id 与底层 + 原因(`read library resource : `),不含凭据。 - **正式 release-worker 启动失败无法定位**:配置里的目标库指向不存在的主机时, 日志只有一句 `connect release target database`。现在错误里带库端点 (`host:port/db`,去口令)与路由标识,并保留底层原因;原因文本先经 diff --git a/internal/releaseadapter/v071/library_archive.go b/internal/releaseadapter/v071/library_archive.go index e6fa069..750fa48 100644 --- a/internal/releaseadapter/v071/library_archive.go +++ b/internal/releaseadapter/v071/library_archive.go @@ -5,6 +5,7 @@ import ( "context" "encoding/json" "errors" + "fmt" "strings" "time" @@ -86,7 +87,9 @@ func ArchiveLibraryCandidate(ctx context.Context, archive *librarysnapshot.Archi } reader, err := objects.Open(ctx, resource.Provider, resource.PhysicalPath) if err != nil { - return "", errors.New("read library resource") + // 只写"read library resource"会让整条封存停在无信息的失败上:带上行 id + // 与底层原因(不含凭据),才能判断是对象缺失、桶错还是端点解析不到。 + return "", fmt.Errorf("read library resource %s: %w", resource.ID, err) } part, readErr := archive.Put(reader) closeErr := reader.Close()