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