internal/frontend: handle fetch errors from DB.InsertModule
When an error occurs due to DB.InsertModule, that error is now inserted
into version_map. Otherwise, we'll keep polling version_map for a result
until it times out. This bug only affected local development.
Change-Id: Iad3a2a9435c1830efcdd2c34e5d55c6e89c85886
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/259216
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/frontend/fetch.go b/internal/frontend/fetch.go
index 8ad0958..48ed37f 100644
--- a/internal/frontend/fetch.go
+++ b/internal/frontend/fetch.go
@@ -500,10 +500,12 @@
// Only attempt to insert the module into module_version_states if the
// fetch process was successful.
if err := db.InsertModule(ctx, fr.Module); err != nil {
- return http.StatusInternalServerError, err
+ fr.Status = http.StatusInternalServerError
+ log.Errorf(ctx, "FetchAndUpdateState(%q, %q): db.InsertModule failed: %v", modulePath, requestedVersion, err)
}
log.Infof(ctx, "FetchAndUpdateState(%q, %q): db.InsertModule succeeded", modulePath, requestedVersion)
}
+
var errMsg string
if fr.Error != nil {
errMsg = fr.Error.Error()