Skip to content

Commit a73e1b6

Browse files
committed
report: rework the composition to use redacted verbose printouts
This commit changes the composition of Sentry reports to include a redacted verbose printout of the error at the beginning of the main Message field. This ensures that error objects with more complex printouts than just safe detail strings get spelled out more clearly in the sentry reports. One example of this is that the tree structure of errors included behind barriers (e.g. that included behind errors.NewAssertionErrorWithWrappedErrf) is preserved in the sentry printout.
1 parent 7d46ef1 commit a73e1b6

File tree

15 files changed

+10509
-4519
lines changed

15 files changed

+10509
-4519
lines changed

fmttests/testdata/format/leaves

Lines changed: 219 additions & 89 deletions
Large diffs are not rendered by default.

fmttests/testdata/format/leaves-via-network

Lines changed: 256 additions & 95 deletions
Large diffs are not rendered by default.

fmttests/testdata/format/opaque

Lines changed: 91 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,19 @@ Error types: (1) *errbase.opaqueLeaf
6969
=====
7070
== Message payload
7171
×
72-
×
73-
--
72+
(1) ×
73+
| ×
74+
|
75+
| (opaque error leaf)
76+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
77+
Error types: (1) *errbase.opaqueLeaf
78+
-- report composition:
7479
*fmttests.errNoFmt
7580
== Extra "error types"
7681
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
7782
== Exception 1 (Module: "error domain: <none>")
7883
Type: "*fmttests.errNoFmt"
79-
Title: "×\n×"
84+
Title: "×"
8085
(NO STACKTRACE)
8186

8287
run
@@ -168,18 +173,27 @@ Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueLeaf
168173
===== Sentry reporting
169174
=====
170175
== Message payload
171-
×
172176
×: ×
177+
(1) ××
178+
×
179+
×
173180
×
174-
--
181+
×
182+
Wraps: (2) ×
183+
| ×
184+
|
185+
| (opaque error leaf)
186+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
187+
Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueLeaf
188+
-- report composition:
175189
*fmttests.errNoFmt
176190
*fmttests.werrFmt
177191
== Extra "error types"
178192
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
179193
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt (*::)
180194
== Exception 1 (Module: "error domain: <none>")
181195
Type: "*fmttests.errNoFmt"
182-
Title: "×\n×: ×\n×"
196+
Title: "×: ×"
183197
(NO STACKTRACE)
184198

185199
run
@@ -283,18 +297,27 @@ Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
283297
===== Sentry reporting
284298
=====
285299
== Message payload
286-
×
287300
×: ×
288-
×
289-
--
301+
(1) ×
302+
| ×
303+
|
304+
| (opaque error wrapper)
305+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
306+
Wraps: (2) ×
307+
| ×
308+
|
309+
| (opaque error leaf)
310+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
311+
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueLeaf
312+
-- report composition:
290313
*fmttests.errNoFmt
291314
*fmttests.werrNoFmt
292315
== Extra "error types"
293316
github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt (*::)
294317
github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
295318
== Exception 1 (Module: "error domain: <none>")
296319
Type: "*fmttests.errNoFmt"
297-
Title: "×\n×: ×\n×"
320+
Title: "×: ×"
298321
(NO STACKTRACE)
299322

300323
run
@@ -417,11 +440,24 @@ Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueWrapper (3) *errbase.opaqu
417440
===== Sentry reporting
418441
=====
419442
== Message payload
443+
×: ×: ×
444+
(1) ××
420445
×
421-
×: ×
422-
×: ×
423446
×
424-
--
447+
×
448+
×
449+
Wraps: (2) ×
450+
| ×
451+
|
452+
| (opaque error wrapper)
453+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
454+
Wraps: (3) ×
455+
| ×
456+
|
457+
| (opaque error leaf)
458+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
459+
Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueWrapper (3) *errbase.opaqueLeaf
460+
-- report composition:
425461
*fmttests.errNoFmt
426462
*fmttests.werrNoFmt
427463
*fmttests.werrFmt
@@ -431,7 +467,7 @@ github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
431467
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt (*::)
432468
== Exception 1 (Module: "error domain: <none>")
433469
Type: "*fmttests.errNoFmt"
434-
Title: "×\n×: ×\n×: ×\n×"
470+
Title: "×: ×: ×"
435471
(NO STACKTRACE)
436472

437473
run
@@ -566,11 +602,24 @@ Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueWrapper (3) *errbase.
566602
===== Sentry reporting
567603
=====
568604
== Message payload
569-
×
570-
×: ×
571-
×: ×
572-
×
573-
--
605+
×: ×: ×
606+
(1) ×
607+
| ×
608+
|
609+
| (opaque error wrapper)
610+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
611+
Wraps: (2) ×
612+
| ×
613+
|
614+
| (opaque error wrapper)
615+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
616+
Wraps: (3) ×
617+
| ×
618+
|
619+
| (opaque error leaf)
620+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
621+
Error types: (1) *errbase.opaqueWrapper (2) *errbase.opaqueWrapper (3) *errbase.opaqueLeaf
622+
-- report composition:
574623
*fmttests.errNoFmt
575624
*fmttests.werrNoFmt
576625
*fmttests.werrNoFmt
@@ -580,7 +629,7 @@ github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
580629
github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
581630
== Exception 1 (Module: "error domain: <none>")
582631
Type: "*fmttests.errNoFmt"
583-
Title: "×\n×: ×\n×: ×\n×"
632+
Title: "×: ×: ×"
584633
(NO STACKTRACE)
585634

586635
run
@@ -734,12 +783,29 @@ Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueWrapper (3) *errbase.opaqu
734783
===== Sentry reporting
735784
=====
736785
== Message payload
786+
×: ×: ×: ×
787+
(1) ××
788+
×
737789
×
738-
×: ×
739-
×: ×
740-
×: ×
741790
×
742-
--
791+
×
792+
Wraps: (2) ×
793+
| ×
794+
|
795+
| (opaque error wrapper)
796+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
797+
Wraps: (3) ×
798+
| ×
799+
|
800+
| (opaque error wrapper)
801+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt
802+
Wraps: (4) ×
803+
| ×
804+
|
805+
| (opaque error leaf)
806+
| type name: github.com/cockroachdb/errors/fmttests/*fmttests.errNoFmt
807+
Error types: (1) *fmttests.werrFmt (2) *errbase.opaqueWrapper (3) *errbase.opaqueWrapper (4) *errbase.opaqueLeaf
808+
-- report composition:
743809
*fmttests.errNoFmt
744810
*fmttests.werrNoFmt
745811
*fmttests.werrNoFmt
@@ -751,5 +817,5 @@ github.com/cockroachdb/errors/fmttests/*fmttests.werrNoFmt (*::)
751817
github.com/cockroachdb/errors/fmttests/*fmttests.werrFmt (*::)
752818
== Exception 1 (Module: "error domain: <none>")
753819
Type: "*fmttests.errNoFmt"
754-
Title: "×\n×: ×\n×: ×\n×: ×\n×"
820+
Title: "×: ×: ×: ×"
755821
(NO STACKTRACE)

0 commit comments

Comments
 (0)