From 4b1b1d816104f213768d9fd48637e89785b9e07b Mon Sep 17 00:00:00 2001 From: "Gosse, Renaud" Date: Fri, 29 Apr 2022 11:20:59 +0200 Subject: [PATCH 1/8] Handle the error of a missing blob object --- routers/web/repo/compare.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 7721507baea93..c73fa9df366d6 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -150,6 +150,9 @@ func setCsvCompareContext(ctx *context.Context) { if err == errTooLarge { return CsvDiffResult{nil, err.Error()} } + if err != nil { + return CsvDiffResult{nil, "csv diff error"} + } sections, err := gitdiff.CreateCsvDiff(diffFile, baseReader, headReader) if err != nil { From df9e0f88fca971ab52c6a5f7f2887c4270be776b Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 29 Apr 2022 18:02:31 +0800 Subject: [PATCH 2/8] Show error in logs --- routers/web/repo/compare.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index c73fa9df366d6..1782e0e2f6563 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -151,6 +151,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { + log.Error("CreateCsvDiff error: %v", err) return CsvDiffResult{nil, "csv diff error"} } From 4d9cda0ee10d10a356f3b1e73b9b8970cf546705 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 1 May 2022 23:34:41 +0200 Subject: [PATCH 3/8] as per @zeripath --- routers/web/repo/compare.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 1782e0e2f6563..2ca5d845196cb 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -151,7 +151,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { - log.Error("CreateCsvDiff error: %v", err) + log.Error("CreateCsvDiff error whilst creating reader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) return CsvDiffResult{nil, "csv diff error"} } From 4534ecfc7cb024334d6a6d70547eb921bcb75769 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 2 May 2022 12:04:29 +0800 Subject: [PATCH 4/8] Add missing error check --- routers/web/repo/compare.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 2ca5d845196cb..76131453cc8d3 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -143,6 +143,11 @@ func setCsvCompareContext(ctx *context.Context) { if err == errTooLarge { return CsvDiffResult{nil, err.Error()} } + if err != nil { + log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) + return CsvDiffResult{nil, "csv diff error"} + } + headReader, headBlobCloser, err := csvReaderFromCommit(&markup.RenderContext{Ctx: ctx, Filename: diffFile.Name}, headCommit) if headBlobCloser != nil { defer headBlobCloser.Close() @@ -151,7 +156,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { - log.Error("CreateCsvDiff error whilst creating reader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) + log.Error("CreateCsvDiff error whilst creating headReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) return CsvDiffResult{nil, "csv diff error"} } From 9b8c7c48b24418967a611957a6024b36007141c5 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 2 May 2022 12:05:29 +0800 Subject: [PATCH 5/8] Add missing error check --- routers/web/repo/compare.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 76131453cc8d3..04917dc81b84c 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -144,7 +144,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { - log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) + log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, baseCommit.ID().String, REPONAME, err) return CsvDiffResult{nil, "csv diff error"} } From 261a23a50abc13e1ae4760301cc53d8168f54cfe Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 2 May 2022 12:10:06 +0800 Subject: [PATCH 6/8] Update compare.go --- routers/web/repo/compare.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 04917dc81b84c..f8951048ebf70 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -145,7 +145,7 @@ func setCsvCompareContext(ctx *context.Context) { } if err != nil { log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, baseCommit.ID().String, REPONAME, err) - return CsvDiffResult{nil, "csv diff error"} + return CsvDiffResult{nil, "unable to load file from base commit"} } headReader, headBlobCloser, err := csvReaderFromCommit(&markup.RenderContext{Ctx: ctx, Filename: diffFile.Name}, headCommit) @@ -157,7 +157,7 @@ func setCsvCompareContext(ctx *context.Context) { } if err != nil { log.Error("CreateCsvDiff error whilst creating headReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) - return CsvDiffResult{nil, "csv diff error"} + return CsvDiffResult{nil, "unable to load file from head commit"} } sections, err := gitdiff.CreateCsvDiff(diffFile, baseReader, headReader) From d8812658f2a6264a5a654c012fd6f8c20480d84a Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 2 May 2022 14:15:55 +0800 Subject: [PATCH 7/8] Use formal code --- routers/web/repo/compare.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index f8951048ebf70..aef7cc76a5cf7 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -144,7 +144,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { - log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, baseCommit.ID().String, REPONAME, err) + log.Error("CreateCsvDiff error whilst creating baseReader from file %s in commit %s in %s: %v", diffFile.Name, baseCommit.ID.String(), ctx.Repo.Repository.Name, err) return CsvDiffResult{nil, "unable to load file from base commit"} } @@ -156,7 +156,7 @@ func setCsvCompareContext(ctx *context.Context) { return CsvDiffResult{nil, err.Error()} } if err != nil { - log.Error("CreateCsvDiff error whilst creating headReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID().String, REPONAME, err) + log.Error("CreateCsvDiff error whilst creating headReader from file %s in commit %s in %s: %v", diffFile.Name, headCommit.ID.String(), ctx.Repo.Repository.Name, err) return CsvDiffResult{nil, "unable to load file from head commit"} } @@ -165,7 +165,7 @@ func setCsvCompareContext(ctx *context.Context) { errMessage, err := csv_module.FormatError(err, ctx.Locale) if err != nil { log.Error("RenderCsvDiff failed: %v", err) - return CsvDiffResult{nil, ""} + return CsvDiffResult{nil, "unknown csv diff error"} } return CsvDiffResult{nil, errMessage} } From 4d2be72d0d364b7fe40c0d98c254ac4a50714e24 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Mon, 2 May 2022 14:17:21 +0800 Subject: [PATCH 8/8] Update compare.go --- routers/web/repo/compare.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index aef7cc76a5cf7..d483227ebf29d 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -164,7 +164,7 @@ func setCsvCompareContext(ctx *context.Context) { if err != nil { errMessage, err := csv_module.FormatError(err, ctx.Locale) if err != nil { - log.Error("RenderCsvDiff failed: %v", err) + log.Error("CreateCsvDiff FormatError failed: %v", err) return CsvDiffResult{nil, "unknown csv diff error"} } return CsvDiffResult{nil, errMessage}