Skip to content

Commit b6b5ea3

Browse files
zepatrikory-bot
authored andcommitted
fix: explicitly recover panics on all servers
GitOrigin-RevId: 4f914909d2e5aabd2b0803273d9d4377c26b5d09
1 parent 64a7317 commit b6b5ea3

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

cmd/courier/watch.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,17 @@ func StartCourier(ctx context.Context, r driver.Registry) error {
5555
func ServeMetrics(ctx context.Context, r driver.Registry, port int) error {
5656
cfg := r.Config().ServeAdmin(ctx)
5757
l := r.Logger()
58-
n := negroni.New()
5958

60-
router := http.NewServeMux()
59+
recovery := negroni.NewRecovery()
60+
recovery.Logger = l
6161

62-
router.Handle(prometheusx.MetricsPrometheusPath, promhttp.Handler())
63-
n.Use(reqlog.NewMiddlewareFromLogger(l, "admin#"+cfg.BaseURL.String()))
62+
n := negroni.New(
63+
recovery,
64+
reqlog.NewMiddlewareFromLogger(l, "admin#"+cfg.BaseURL.String()),
65+
)
6466

67+
router := http.NewServeMux()
68+
router.Handle(prometheusx.MetricsPrometheusPath, promhttp.Handler())
6569
n.UseHandler(router)
6670

6771
var handler http.Handler = n

cmd/daemon/serve.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,13 @@ var httpMetrics = prometheusx.NewHTTPMetrics("kratos", prometheusx.HTTPPrefix, c
5555
func servePublic(ctx context.Context, r *driver.RegistryDefault, cmd *cobra.Command) (func() error, error) {
5656
cfg := r.Config().ServePublic(ctx)
5757
l := r.Logger()
58+
59+
rec := negroni.NewRecovery()
60+
rec.Logger = l
61+
5862
router := httprouterx.NewRouterPublic()
5963
n := negroni.New(
64+
rec,
6065
httprouterx.PopulatePatternNegroni(router),
6166
httpMetrics,
6267
)
@@ -151,8 +156,13 @@ func servePublic(ctx context.Context, r *driver.RegistryDefault, cmd *cobra.Comm
151156
func serveAdmin(ctx context.Context, r *driver.RegistryDefault, cmd *cobra.Command) (func() error, error) {
152157
cfg := r.Config().ServeAdmin(ctx)
153158
l := r.Logger()
159+
160+
rec := negroni.NewRecovery()
161+
rec.Logger = l
162+
154163
router := httprouterx.NewRouterAdminWithPrefix()
155164
n := negroni.New(
165+
rec,
156166
httprouterx.PopulatePatternNegroni(router),
157167
httpMetrics,
158168
)

0 commit comments

Comments
 (0)