Skip to content

Commit f13c94d

Browse files
authored
Merge pull request #119 from dhartunian/multierror-sentry
Add multi-cause unwrap into Sentry reporting
2 parents 2fb1006 + f4eaeb8 commit f13c94d

File tree

11 files changed

+3068
-122
lines changed

11 files changed

+3068
-122
lines changed

fmttests/testdata/format/wrap-fmt

Lines changed: 260 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1777,13 +1777,40 @@ Wraps: (3) ×
17771777
×
17781778
Error types: (1) *fmt.wrapErrors (2) *errors.fundamental (3) *fmttests.errFmt
17791779
-- report composition:
1780+
<path>:<lineno>: *errors.fundamental (top exception)
1781+
*fmttests.errFmt
17801782
*fmt.wrapErrors
17811783
== Extra "error types"
1784+
github.com/pkg/errors/*errors.fundamental (*::)
1785+
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
17821786
fmt/*fmt.wrapErrors (*::)
17831787
== Exception 1 (Module: "error domain: <none>")
1784-
Type: "*fmt.wrapErrors"
1785-
Title: "×"
1786-
(NO STACKTRACE)
1788+
Type: "<path>:<lineno> ...funcNN...
1789+
Title: "*errors.fundamental: ×"
1790+
<path>:<lineno>:
1791+
(runtime) goexit()
1792+
<path>:<lineno>:
1793+
(testing) tRunner()
1794+
<path>:<lineno>:
1795+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
1796+
<path>:<lineno>:
1797+
(github.com/cockroachdb/datadriven) Walk()
1798+
<path>:<lineno>:
1799+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
1800+
<path>:<lineno>:
1801+
(github.com/cockroachdb/datadriven) RunTest()
1802+
<path>:<lineno>:
1803+
(github.com/cockroachdb/datadriven) runTestInternal()
1804+
<path>:<lineno>:
1805+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
1806+
<path>:<lineno>:
1807+
(github.com/cockroachdb/datadriven) runDirective()
1808+
<path>:<lineno>:
1809+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
1810+
<path>:<lineno>:
1811+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
1812+
<path>:<lineno>:
1813+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
17871814

17881815
run
17891816
fmt innerone innertwo
@@ -2434,13 +2461,42 @@ Wraps: (4) ×
24342461
×
24352462
Error types: (1) *join.joinError (2) *withstack.withStack (3) *errutil.leafError (4) *fmttests.errFmt
24362463
-- report composition:
2464+
*errutil.leafError: outerthree
2465+
<path>:<lineno>: *withstack.withStack (top exception)
2466+
*fmttests.errFmt
24372467
*join.joinError
24382468
== Extra "error types"
2469+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
2470+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
2471+
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
24392472
github.com/cockroachdb/errors/join/*join.joinError (*::)
24402473
== Exception 1 (Module: "error domain: <none>")
2441-
Type: "*join.joinError"
2442-
Title: "×"
2443-
(NO STACKTRACE)
2474+
Type: "<path>:<lineno> ...funcNN...
2475+
Title: "*errutil.leafError: ×\nvia *withstack.withStack"
2476+
<path>:<lineno>:
2477+
(runtime) goexit()
2478+
<path>:<lineno>:
2479+
(testing) tRunner()
2480+
<path>:<lineno>:
2481+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
2482+
<path>:<lineno>:
2483+
(github.com/cockroachdb/datadriven) Walk()
2484+
<path>:<lineno>:
2485+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
2486+
<path>:<lineno>:
2487+
(github.com/cockroachdb/datadriven) RunTest()
2488+
<path>:<lineno>:
2489+
(github.com/cockroachdb/datadriven) runTestInternal()
2490+
<path>:<lineno>:
2491+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
2492+
<path>:<lineno>:
2493+
(github.com/cockroachdb/datadriven) runDirective()
2494+
<path>:<lineno>:
2495+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
2496+
<path>:<lineno>:
2497+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
2498+
<path>:<lineno>:
2499+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
24442500

24452501
run
24462502
fmt innerone innertwo
@@ -2923,13 +2979,109 @@ Wraps: (7) ×
29232979
×
29242980
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errFmt
29252981
-- report composition:
2982+
*errutil.leafError: included 2
2983+
<path>:<lineno>: *withstack.withStack (top exception)
2984+
*errutil.leafError: included 1
2985+
<path>:<lineno>: *withstack.withStack (1)
29262986
*fmttests.errMultiCause
2987+
*errutil.leafError: outerthree
2988+
<path>:<lineno>: *withstack.withStack (2)
2989+
*fmttests.errFmt
2990+
*fmttests.errMultiCause
2991+
*fmttests.errMultiCause
2992+
(check the extra data payloads)
29272993
== Extra "error types"
2994+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
2995+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
2996+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
2997+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
2998+
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
2999+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
3000+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
3001+
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
3002+
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
29283003
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
29293004
== Exception 1 (Module: "error domain: <none>")
2930-
Type: "*fmttests.errMultiCause"
2931-
Title: "×: ×: included 2: included 1: ×: outerthree: ×"
2932-
(NO STACKTRACE)
3005+
Type: "(2) <path>:<lineno> ...funcNN...
3006+
Title: "*withstack.withStack"
3007+
<path>:<lineno>:
3008+
(runtime) goexit()
3009+
<path>:<lineno>:
3010+
(testing) tRunner()
3011+
<path>:<lineno>:
3012+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3013+
<path>:<lineno>:
3014+
(github.com/cockroachdb/datadriven) Walk()
3015+
<path>:<lineno>:
3016+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3017+
<path>:<lineno>:
3018+
(github.com/cockroachdb/datadriven) RunTest()
3019+
<path>:<lineno>:
3020+
(github.com/cockroachdb/datadriven) runTestInternal()
3021+
<path>:<lineno>:
3022+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3023+
<path>:<lineno>:
3024+
(github.com/cockroachdb/datadriven) runDirective()
3025+
<path>:<lineno>:
3026+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3027+
<path>:<lineno>:
3028+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3029+
<path>:<lineno>:
3030+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
3031+
== Exception 2 (Module: "error domain: <none>")
3032+
Type: "(1) <path>:<lineno> ...funcNN...
3033+
Title: "*withstack.withStack"
3034+
<path>:<lineno>:
3035+
(runtime) goexit()
3036+
<path>:<lineno>:
3037+
(testing) tRunner()
3038+
<path>:<lineno>:
3039+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3040+
<path>:<lineno>:
3041+
(github.com/cockroachdb/datadriven) Walk()
3042+
<path>:<lineno>:
3043+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3044+
<path>:<lineno>:
3045+
(github.com/cockroachdb/datadriven) RunTest()
3046+
<path>:<lineno>:
3047+
(github.com/cockroachdb/datadriven) runTestInternal()
3048+
<path>:<lineno>:
3049+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3050+
<path>:<lineno>:
3051+
(github.com/cockroachdb/datadriven) runDirective()
3052+
<path>:<lineno>:
3053+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3054+
<path>:<lineno>:
3055+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3056+
<path>:<lineno>:
3057+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
3058+
== Exception 3 (Module: "error domain: <none>")
3059+
Type: "<path>:<lineno> ...funcNN...
3060+
Title: "*errutil.leafError: ×: ×: included 2: included 1: ×: outerthree: ×\nvia *withstack.withStack"
3061+
<path>:<lineno>:
3062+
(runtime) goexit()
3063+
<path>:<lineno>:
3064+
(testing) tRunner()
3065+
<path>:<lineno>:
3066+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3067+
<path>:<lineno>:
3068+
(github.com/cockroachdb/datadriven) Walk()
3069+
<path>:<lineno>:
3070+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3071+
<path>:<lineno>:
3072+
(github.com/cockroachdb/datadriven) RunTest()
3073+
<path>:<lineno>:
3074+
(github.com/cockroachdb/datadriven) runTestInternal()
3075+
<path>:<lineno>:
3076+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3077+
<path>:<lineno>:
3078+
(github.com/cockroachdb/datadriven) runDirective()
3079+
<path>:<lineno>:
3080+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3081+
<path>:<lineno>:
3082+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3083+
<path>:<lineno>:
3084+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
29333085

29343086
run
29353087
fmt innerone innertwo
@@ -3243,13 +3395,109 @@ Wraps: (7) ×
32433395
×
32443396
Error types: (1) *fmttests.errMultiCause (2) *fmttests.errMultiCause (3) *withstack.withStack (4) *errutil.leafError (5) *withstack.withStack (6) *errutil.leafError (7) *fmttests.errMultiCause (8) *withstack.withStack (9) *errutil.leafError (10) *fmttests.errFmt
32453397
-- report composition:
3398+
*errutil.leafError: elided 2
3399+
<path>:<lineno>: *withstack.withStack (top exception)
3400+
*errutil.leafError: elided 1
3401+
<path>:<lineno>: *withstack.withStack (1)
3402+
*fmttests.errMultiCause
3403+
*errutil.leafError: outerthree
3404+
<path>:<lineno>: *withstack.withStack (2)
3405+
*fmttests.errFmt
32463406
*fmttests.errMultiCause
3407+
*fmttests.errMultiCause
3408+
(check the extra data payloads)
32473409
== Extra "error types"
3410+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
3411+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
3412+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
3413+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
3414+
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
3415+
github.com/cockroachdb/errors/errutil/*errutil.leafError (*::)
3416+
github.com/cockroachdb/errors/withstack/*withstack.withStack (*::)
3417+
github.com/cockroachdb/errors/fmttests/*fmttests.errFmt (*::)
3418+
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
32483419
github.com/cockroachdb/errors/fmttests/*fmttests.errMultiCause (*::)
32493420
== Exception 1 (Module: "error domain: <none>")
3250-
Type: "*fmttests.errMultiCause"
3251-
Title: "×: ×: ×: outerthree: ×"
3252-
(NO STACKTRACE)
3421+
Type: "(2) <path>:<lineno> ...funcNN...
3422+
Title: "*withstack.withStack"
3423+
<path>:<lineno>:
3424+
(runtime) goexit()
3425+
<path>:<lineno>:
3426+
(testing) tRunner()
3427+
<path>:<lineno>:
3428+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3429+
<path>:<lineno>:
3430+
(github.com/cockroachdb/datadriven) Walk()
3431+
<path>:<lineno>:
3432+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3433+
<path>:<lineno>:
3434+
(github.com/cockroachdb/datadriven) RunTest()
3435+
<path>:<lineno>:
3436+
(github.com/cockroachdb/datadriven) runTestInternal()
3437+
<path>:<lineno>:
3438+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3439+
<path>:<lineno>:
3440+
(github.com/cockroachdb/datadriven) runDirective()
3441+
<path>:<lineno>:
3442+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3443+
<path>:<lineno>:
3444+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3445+
<path>:<lineno>:
3446+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
3447+
== Exception 2 (Module: "error domain: <none>")
3448+
Type: "(1) <path>:<lineno> ...funcNN...
3449+
Title: "*withstack.withStack"
3450+
<path>:<lineno>:
3451+
(runtime) goexit()
3452+
<path>:<lineno>:
3453+
(testing) tRunner()
3454+
<path>:<lineno>:
3455+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3456+
<path>:<lineno>:
3457+
(github.com/cockroachdb/datadriven) Walk()
3458+
<path>:<lineno>:
3459+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3460+
<path>:<lineno>:
3461+
(github.com/cockroachdb/datadriven) RunTest()
3462+
<path>:<lineno>:
3463+
(github.com/cockroachdb/datadriven) runTestInternal()
3464+
<path>:<lineno>:
3465+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3466+
<path>:<lineno>:
3467+
(github.com/cockroachdb/datadriven) runDirective()
3468+
<path>:<lineno>:
3469+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3470+
<path>:<lineno>:
3471+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3472+
<path>:<lineno>:
3473+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
3474+
== Exception 3 (Module: "error domain: <none>")
3475+
Type: "<path>:<lineno> ...funcNN...
3476+
Title: "*errutil.leafError: ×: ×: ×: outerthree: ×\nvia *withstack.withStack"
3477+
<path>:<lineno>:
3478+
(runtime) goexit()
3479+
<path>:<lineno>:
3480+
(testing) tRunner()
3481+
<path>:<lineno>:
3482+
(github.com/cockroachdb/datadriven.Walk)...funcNN...
3483+
<path>:<lineno>:
3484+
(github.com/cockroachdb/datadriven) Walk()
3485+
<path>:<lineno>:
3486+
(github.com/cockroachdb/errors/fmttests.TestDatadriven)...funcNN...
3487+
<path>:<lineno>:
3488+
(github.com/cockroachdb/datadriven) RunTest()
3489+
<path>:<lineno>:
3490+
(github.com/cockroachdb/datadriven) runTestInternal()
3491+
<path>:<lineno>:
3492+
(github.com/cockroachdb/datadriven) runDirectiveOrSubTest()
3493+
<path>:<lineno>:
3494+
(github.com/cockroachdb/datadriven) runDirective()
3495+
<path>:<lineno>:
3496+
(github.com/cockroachdb/datadriven.runDirective)...funcNN...
3497+
<path>:<lineno>:
3498+
(github.com/cockroachdb/errors/fmttests.TestDatadriven.func2) 1()
3499+
<path>:<lineno>:
3500+
(github.com/cockroachdb/errors/fmttests.glob.)...funcNN...
32533501

32543502
run
32553503
fmt innerone innertwo

0 commit comments

Comments
 (0)