From 28c1d9703ae26bdf34462fee2cc0defee179f48c Mon Sep 17 00:00:00 2001 From: Ankur Shrivastava Date: Thu, 9 Apr 2026 13:19:04 +0800 Subject: [PATCH 1/2] feat: add goleak test coverage, guard InitRollbar on empty token - Add goleak.VerifyTestMain to catch goroutine leaks in tests - Guard InitRollbar with early return when token is empty, preventing rollbarInited=true with no token configured --- go.mod | 1 + goleak_test.go | 11 +++++++++++ notifier/notifier.go | 3 +++ 3 files changed, 15 insertions(+) create mode 100644 goleak_test.go diff --git a/go.mod b/go.mod index 8119a44..473c5a1 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( go.opentelemetry.io/otel v1.43.0 go.opentelemetry.io/otel/sdk v1.43.0 go.opentelemetry.io/otel/trace v1.43.0 + go.uber.org/goleak v1.3.0 google.golang.org/grpc v1.79.3 ) diff --git a/goleak_test.go b/goleak_test.go new file mode 100644 index 0000000..1ec0acd --- /dev/null +++ b/goleak_test.go @@ -0,0 +1,11 @@ +package errors + +import ( + "testing" + + "go.uber.org/goleak" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m) +} diff --git a/notifier/notifier.go b/notifier/notifier.go index 6ddc0c4..8607162 100644 --- a/notifier/notifier.go +++ b/notifier/notifier.go @@ -133,6 +133,9 @@ func InitAirbrake(projectID int64, projectKey string) { // token: rollbar token // env: rollbar environment func InitRollbar(token, env string) { + if token == "" { + return + } rollbar.SetToken(token) rollbar.SetEnvironment(env) rollbar.SetStackTracer(func(err error) ([]runtime.Frame, bool) { From bf9fb9883f53463fb15b8474cbe51a7698167411 Mon Sep 17 00:00:00 2001 From: Ankur Shrivastava Date: Thu, 9 Apr 2026 14:08:29 +0800 Subject: [PATCH 2/2] fix: reset rollbarInited on empty token, bump Go to 1.25.9 Address review: set rollbarInited=false before early return so re-calling InitRollbar("", env) properly disables Rollbar after a previous init. --- go.mod | 2 +- notifier/notifier.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 473c5a1..abca013 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/go-coldbrew/errors -go 1.25.8 +go 1.25.9 require ( github.com/airbrake/gobrake/v5 v5.6.2 diff --git a/notifier/notifier.go b/notifier/notifier.go index 8607162..fa50165 100644 --- a/notifier/notifier.go +++ b/notifier/notifier.go @@ -134,6 +134,7 @@ func InitAirbrake(projectID int64, projectKey string) { // env: rollbar environment func InitRollbar(token, env string) { if token == "" { + rollbarInited = false return } rollbar.SetToken(token)