Add additional logging for rename failures (#58458)

To investigate an issue on dotcom.
This commit is contained in:
Erik Seliger 2023-11-21 14:55:00 +01:00 committed by GitHub
parent 5899d6f42b
commit 0f8d37bc1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 1 deletions

View File

@ -11,6 +11,48 @@ go_library(
],
importpath = "github.com/sourcegraph/sourcegraph/internal/fileutil",
visibility = ["//:__subpackages__"],
deps = select({
"@io_bazel_rules_go//go/platform:aix": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:android": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:darwin": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:dragonfly": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:freebsd": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:illumos": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:ios": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:js": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:linux": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:netbsd": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:openbsd": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:plan9": [
"//lib/errors",
],
"@io_bazel_rules_go//go/platform:solaris": [
"//lib/errors",
],
"//conditions:default": [],
}),
)
go_test(

View File

@ -6,6 +6,8 @@ package fileutil
import (
"os"
"path/filepath"
"github.com/sourcegraph/sourcegraph/lib/errors"
)
// RenameAndSync will do an os.Rename followed by fsync to ensure the rename
@ -13,7 +15,7 @@ import (
func RenameAndSync(oldpath, newpath string) error {
err := os.Rename(oldpath, newpath)
if err != nil {
return err
return errors.Wrapf(err, "failed to rename %q to %q", errors.Safe(oldpath), errors.Safe(newpath))
}
oldparent, newparent := filepath.Dir(oldpath), filepath.Dir(newpath)