This is an automated email from the ASF dual-hosted git repository. yuzhou pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/rocketmq-client-go.git
The following commit(s) were added to refs/heads/master by this push: new 8a0459a Add stack info when consuming fail (#1164) 8a0459a is described below commit 8a0459a849645d2074aada5fec5a04ea9f6f21f8 Author: tiger lee <tiger...@apache.org> AuthorDate: Thu Nov 28 10:39:32 2024 +0800 Add stack info when consuming fail (#1164) * fix can't send batch message error * log stack info when consume fail --------- Co-authored-by: tiger lee <francislee...@outlook.com> Co-authored-by: tigerweili <tigerwe...@tencent.com> --- consumer/push_consumer.go | 1 + internal/remote/remote_client.go | 4 +++- internal/utils/errors.go | 6 ++++++ rlog/log.go | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/consumer/push_consumer.go b/consumer/push_consumer.go index 1a3d233..db6a37e 100644 --- a/consumer/push_consumer.go +++ b/consumer/push_consumer.go @@ -1113,6 +1113,7 @@ func (pc *pushConsumer) consumeMessageConcurrently(pq *processQueue, mq *primiti if err := recover(); err != nil { rlog.Error("consumeMessageConcurrently panic", map[string]interface{}{ rlog.LogKeyUnderlayError: err, + rlog.LogKeyStack: utils.GetStackAsString(false), rlog.LogKeyConsumerGroup: pc.consumerGroup, }) } diff --git a/internal/remote/remote_client.go b/internal/remote/remote_client.go index eabfb75..55a2646 100644 --- a/internal/remote/remote_client.go +++ b/internal/remote/remote_client.go @@ -21,6 +21,7 @@ import ( "bytes" "context" "encoding/binary" + "github.com/apache/rocketmq-client-go/v2/internal/utils" "io" "net" "sync" @@ -286,7 +287,8 @@ func (c *remotingClient) createScanner(r io.Reader) *bufio.Scanner { defer func() { if err := recover(); err != nil { rlog.Error("scanner split panic", map[string]interface{}{ - "panic": err, + rlog.LogKeyUnderlayError: err, + rlog.LogKeyStack: utils.GetStackAsString(false), }) } }() diff --git a/internal/utils/errors.go b/internal/utils/errors.go index 0887a37..b7c30c2 100644 --- a/internal/utils/errors.go +++ b/internal/utils/errors.go @@ -19,6 +19,7 @@ package utils import ( "github.com/apache/rocketmq-client-go/v2/rlog" + "runtime" ) func CheckError(action string, err error) { @@ -28,3 +29,8 @@ func CheckError(action string, err error) { }) } } +func GetStackAsString(all bool) string { + buf := make([]byte, 1<<10) + stackSize := runtime.Stack(buf, all) + return string(buf[:stackSize]) +} diff --git a/rlog/log.go b/rlog/log.go index 5c99e2d..253dd6b 100644 --- a/rlog/log.go +++ b/rlog/log.go @@ -44,6 +44,7 @@ const ( LogKeyQueueId = "queueId" LogKeyQueueOffset = "queueOffset" LogKeyMessages = "messages" + LogKeyStack = "stack" ) type Logger interface {