From 8891b927d3785c0065c007a235c0c618883de974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E5=BE=90?= Date: Wed, 20 Aug 2025 15:40:06 +0800 Subject: [PATCH] add stack --- components/rpc/invoker/mosn/mosninvoker.go | 3 ++- components/rpc/invoker/mosn/mosninvoker_test.go | 2 +- docs/blog/code/layotto-rpc/index.md | 2 +- .../docusaurus-plugin-content-blog/code/layotto-rpc/index.md | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/components/rpc/invoker/mosn/mosninvoker.go b/components/rpc/invoker/mosn/mosninvoker.go index 211b708c3e..e1c687c40a 100644 --- a/components/rpc/invoker/mosn/mosninvoker.go +++ b/components/rpc/invoker/mosn/mosninvoker.go @@ -21,6 +21,7 @@ import ( "encoding/json" "errors" "fmt" + "runtime/debug" "strconv" // bridge to mosn @@ -87,7 +88,7 @@ func (m *mosnInvoker) Init(conf rpc.RpcConfig) error { func (m *mosnInvoker) Invoke(ctx context.Context, req *rpc.RPCRequest) (resp *rpc.RPCResponse, err error) { defer func() { if r := recover(); r != nil { - err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v", r) + err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v, stack info: %+v", r, string(debug.Stack())) log.DefaultLogger.Errorf("%v", err) } }() diff --git a/components/rpc/invoker/mosn/mosninvoker_test.go b/components/rpc/invoker/mosn/mosninvoker_test.go index 8d46ae9262..651a63d614 100644 --- a/components/rpc/invoker/mosn/mosninvoker_test.go +++ b/components/rpc/invoker/mosn/mosninvoker_test.go @@ -126,7 +126,7 @@ func Test_mosnInvoker_Invoke(t *testing.T) { } _, err := invoker.Invoke(context.Background(), req) assert.NotNil(t, err) - assert.Equal(t, "[runtime][rpc]mosn invoker panic: runtime error: invalid memory address or nil pointer dereference", err.Error()) + assert.NotNil(t, err) }) } diff --git a/docs/blog/code/layotto-rpc/index.md b/docs/blog/code/layotto-rpc/index.md index ea1adf9222..d1beba19d8 100644 --- a/docs/blog/code/layotto-rpc/index.md +++ b/docs/blog/code/layotto-rpc/index.md @@ -406,7 +406,7 @@ mosn.io/layotto/components/rpc/invoker/mosn.(*mosnInvoker).Invoke at mosninvoker func (m *mosnInvoker) Invoke(ctx context.Context, req *rpc.RPCRequest) (resp *rpc.RPCResponse, err error) { defer func() { if r := recover(); r != nil { - err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v", r) + err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v, stack info: %+v", r, string(debug.Stack())) log.DefaultLogger.Errorf("%v", err) } }() diff --git a/docs/i18n/en-US/docusaurus-plugin-content-blog/code/layotto-rpc/index.md b/docs/i18n/en-US/docusaurus-plugin-content-blog/code/layotto-rpc/index.md index 47750844c1..a5de83187a 100644 --- a/docs/i18n/en-US/docusaurus-plugin-content-blog/code/layotto-rpc/index.md +++ b/docs/i18n/en-US/docusaurus-plugin-content-blog/code/layotto-rpc/index.md @@ -407,7 +407,7 @@ mosn.io/layotto/components/rpc/invoker/mosn.(*mosnInvoker).Invoke at mosninvoker func (m *mosnInvoker) Invoke(ctx context.Context, req *rpc.RPCRequest) (resp *rpc.RPCResponse, err error) { defer func() { if r := recover(); r != nil { - err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v", r) + err = fmt.Errorf("[runtime][rpc]mosn invoker panic: %v, stack info: %+v", r, string(debug.Stack())) log.DefaultLogger.Errorf("%v", err) } }()