Release v1.56.5
๐ Fixes
-
gRPC Shutdown Nil Panic โ The force-close fallback in
grpcServer.Shutdown(invoked when the graceful context times out) didn't nil-checkg.server. Apps that never calledRegisterServicepanicked on SIGTERM during the grace period. Added the missing nil-check and a regression test. (#3368) -
MongoDB / ArangoDB Operation Metrics โ
defer sendOperationStats(time.Now(), โฆ)evaluatedtime.Now()at defer registration and then calledtime.Since(time.Now())
internally, so every op reported ~0 ยตs duration. A few sites also placed thedeferafter an early-return, dropping metrics on failing ops. Replaced with aninstrumentOphelper that captures start time synchronously and always fires its cleanup, so durations are accurate and error paths still record histograms. ArangoDBDropCollection/
TruncateCollectionnow also time the actual op rather than just thegetCollection()lookup. (#3102) -
DBResolver Tracing โ
AddDBResolverpreviously dropped tracing silently because no matcher arm existed for it. Tracing is now wired, and a warning is emitted when a datasource implementsUseTracerwithout a matcher entry. (#3102) -
Duck-typed datasource wiring โ
AddMongo,AddArangoDB,AddClickhouse,AddCassandra,AddPubSub, and the rest of theAddXxxfamily now accept the underlying behavior interface directly. The*Providershims inpkg/gofr/container/datasources.goare markedDeprecatedand retained for backwards compatibility โ existing code continues to compile. (#3102)