You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@seata.apache.org by "everfid-ever (via GitHub)" <gi...@apache.org> on 2026/03/20 09:18:32 UTC
[PR] fix: support RM delete undo log request [incubator-seata-go]
everfid-ever opened a new pull request, #1074:
URL: https://github.com/apache/incubator-seata-go/pull/1074
Fixes https://github.com/apache/incubator-seata-go/issues/1016 Codec error when TC server sends UndoLogDeleteRequest (type 111)
What does this PR do?
This PR fixes a critical codec error that occurs when seata-go clients communicate with Seata TC server v1.8.0+. The TC server periodically sends UndoLogDeleteRequest messages (message type 111) to clean up old undo log records, but seata-go was missing the necessary codec and processor to handle these messages, causing the client to fail after 2-3 minutes of operation.
Problem: When seata-go clients run for approximately 2-3 minutes, they encounter codec errors because the TC server sends TYPE_RM_DELETE_UNDOLOG (type code 111) messages, but seata-go doesn't have a registered codec to decode this message type.
Impact: This causes seata-go clients to fail during normal operation with Seata TC server v1.8.0+, making the client unstable for production use.
What changes in this PR?
Added UndoLogDeleteRequest message structure
File: pkg/protocol/message/request_message.go
Added UndoLogDeleteRequest struct with fields: ResourceId (string), SaveDays (int16), BranchType (BranchType)
Implemented GetTypeCode() method returning MessageTypeRmDeleteUndolog
Implemented codec for UndoLogDeleteRequest
File: pkg/protocol/codec/undolog_delete_req_codec.go
Created UndoLogDeleteRequestCodec with Encode(), Decode(), and GetMessageType() methods
Properly handles serialization/deserialization of all fields including the int16 SaveDays field
Registered codec in codec manager
File: pkg/protocol/codec/codec.go
Registered UndoLogDeleteRequestCodec in the Init() function
Implemented message processor
File: pkg/remoting/processor/client/rm_delete_undolog_processor.go
Created rmDeleteUndoLogProcessor to handle incoming undo log delete requests
Added initDeleteUndoLog() function to register the processor
Currently logs the request (actual undo log deletion logic to be implemented later)
Integrated processor registration
File: pkg/remoting/processor/client/init.go
Added initDeleteUndoLog() call to RegisterProcessor() function
Comprehensive test coverage
Files: undolog_delete_req_codec_test.go, rm_delete_undolog_processor_test.go
Added unit tests for codec encode/decode functionality
Added integration tests for processor
Added edge case tests and benchmarks
Test coverage includes: normal cases, empty values, boundary values, and round-trip encoding/decoding
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] fix: support RM delete undo log request [incubator-seata-go]
Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #1074:
URL: https://github.com/apache/incubator-seata-go/pull/1074#discussion_r2986813198
##########
pkg/protocol/codec/undolog_delete_req_codec.go:
##########
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package codec
+
+import (
+ "seata.apache.org/seata-go/v2/pkg/protocol/branch"
+ "seata.apache.org/seata-go/v2/pkg/protocol/message"
+ "seata.apache.org/seata-go/v2/pkg/util/bytes"
+ "seata.apache.org/seata-go/v2/pkg/util/log"
+)
+
+type UndoLogDeleteRequestCodec struct{}
+
+func (u *UndoLogDeleteRequestCodec) Decode(in []byte) interface{} {
+ data := message.UndoLogDeleteRequest{}
+ buf := bytes.NewByteBuffer(in)
+
+ data.ResourceId = bytes.ReadString16Length(buf)
+ saveDays, err := buf.ReadUint16()
+ if err != nil {
+ log.Errorf("failed to read SaveDays: %v", err)
+ return data
+ }
+ data.SaveDays = int16(saveDays)
+ data.BranchType = branch.BranchType(bytes.ReadByte(buf))
+
Review Comment:
On decode failure (`ReadUint16` error), the codec logs but still returns a non-nil `UndoLogDeleteRequest` with default/partial fields. That can cause downstream processors to run with corrupted data as if decoding succeeded. Consider returning `nil` (so the message is rejected) or otherwise preventing further processing when decoding fails.
##########
pkg/remoting/processor/client/rm_delete_undolog_processor.go:
##########
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package client
+
+import (
+ "context"
+ "fmt"
+
+ "seata.apache.org/seata-go/v2/pkg/protocol/message"
+ "seata.apache.org/seata-go/v2/pkg/remoting/getty"
+ "seata.apache.org/seata-go/v2/pkg/util/log"
+)
+
+func initDeleteUndoLog() {
+ rmDeleteUndoLogProcessor := &rmDeleteUndoLogProcessor{}
+ getty.GetGettyClientHandlerInstance().RegisterProcessor(message.MessageTypeRmDeleteUndolog, rmDeleteUndoLogProcessor)
+}
+
+type rmDeleteUndoLogProcessor struct{}
+
+func (r *rmDeleteUndoLogProcessor) Process(ctx context.Context, rpcMessage message.RpcMessage) error {
+ req, ok := rpcMessage.Body.(message.UndoLogDeleteRequest)
+ if !ok {
+ return fmt.Errorf("invalid message body type: %T", rpcMessage.Body)
Review Comment:
`Process` returns an error when the body type is unexpected, but `gettyClientHandler.OnMessage` ignores the returned error (it doesn't log or propagate it). This means type-mismatch failures will be silent. Please log the error (or handle it in a way that surfaces it) before returning so it isn't lost at runtime.
```suggestion
err := fmt.Errorf("invalid message body type: %T, expected message.UndoLogDeleteRequest", rpcMessage.Body)
log.Errorf("rmDeleteUndoLogProcessor.Process: %v", err)
return err
```
##########
pkg/remoting/processor/client/rm_delete_undolog_processor_test.go:
##########
@@ -0,0 +1,240 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package client
+
+import (
+ "context"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "seata.apache.org/seata-go/v2/pkg/protocol/branch"
+ "seata.apache.org/seata-go/v2/pkg/protocol/message"
+ "seata.apache.org/seata-go/v2/pkg/remoting/getty"
+)
+
+func TestRmDeleteUndoLogProcessor_Process(t *testing.T) {
+ processor := &rmDeleteUndoLogProcessor{}
+
+ tests := []struct {
+ name string
+ rpcMessage message.RpcMessage
+ wantErr bool
+ }{
+ {
+ name: "process normal undo log delete request",
+ rpcMessage: message.RpcMessage{
+ ID: 1,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "jdbc:mysql://localhost:3306/seata",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process undo log delete request with empty resource id",
+ rpcMessage: message.RpcMessage{
+ ID: 2,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "",
+ SaveDays: 10,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process undo log delete request with zero save days",
+ rpcMessage: message.RpcMessage{
+ ID: 3,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource",
+ SaveDays: 0,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process with oneway request type",
+ rpcMessage: message.RpcMessage{
+ ID: 4,
+ Type: message.GettyRequestTypeRequestOneway,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ err := processor.Process(context.Background(), tt.rpcMessage)
+ if tt.wantErr {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ }
+ })
+ }
+}
+
+func TestRmDeleteUndoLogProcessor_ProcessWithContext(t *testing.T) {
+ processor := &rmDeleteUndoLogProcessor{}
+
+ t.Run("background context", func(t *testing.T) {
+ err := processor.Process(context.Background(), message.RpcMessage{
+ ID: 1,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource-1",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ })
+ assert.NoError(t, err)
+ })
+
+ t.Run("canceled context should be handled gracefully", func(t *testing.T) {
+ ctx, cancel := context.WithCancel(context.Background())
+ cancel() // cancel immediately
+ err := processor.Process(ctx, message.RpcMessage{
+ ID: 2,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource-2",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ })
+ assert.NoError(t, err, "current impl does not use ctx; update when deletion logic is added")
+ })
+}
+
+func TestInitDeleteUndoLog(t *testing.T) {
+ getty.GetGettyClientHandlerInstance()
+
+ assert.NotPanics(t, func() {
+ initDeleteUndoLog()
+ }, "initDeleteUndoLog should not panic")
+}
+
+func TestRmDeleteUndoLogProcessor_Integration(t *testing.T) {
+ RegisterProcessor()
+
+ processor := &rmDeleteUndoLogProcessor{}
+
+ err := processor.Process(context.Background(), message.RpcMessage{
+ ID: 100,
+ Type: message.GettyRequestTypeRequestSync,
+ Codec: 1,
+ Body: message.UndoLogDeleteRequest{
Review Comment:
This test hard-codes `Codec: 1`. Using `byte(codec.CodecTypeSeata)` (or the appropriate constant) would make the intent clearer and avoid coupling the test to the numeric value of the enum.
##########
pkg/remoting/processor/client/rm_delete_undolog_processor_test.go:
##########
@@ -0,0 +1,240 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package client
+
+import (
+ "context"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "seata.apache.org/seata-go/v2/pkg/protocol/branch"
+ "seata.apache.org/seata-go/v2/pkg/protocol/message"
+ "seata.apache.org/seata-go/v2/pkg/remoting/getty"
+)
+
+func TestRmDeleteUndoLogProcessor_Process(t *testing.T) {
+ processor := &rmDeleteUndoLogProcessor{}
+
+ tests := []struct {
+ name string
+ rpcMessage message.RpcMessage
+ wantErr bool
+ }{
+ {
+ name: "process normal undo log delete request",
+ rpcMessage: message.RpcMessage{
+ ID: 1,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "jdbc:mysql://localhost:3306/seata",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process undo log delete request with empty resource id",
+ rpcMessage: message.RpcMessage{
+ ID: 2,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "",
+ SaveDays: 10,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process undo log delete request with zero save days",
+ rpcMessage: message.RpcMessage{
+ ID: 3,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource",
+ SaveDays: 0,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ {
+ name: "process with oneway request type",
+ rpcMessage: message.RpcMessage{
+ ID: 4,
+ Type: message.GettyRequestTypeRequestOneway,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ },
+ wantErr: false,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ err := processor.Process(context.Background(), tt.rpcMessage)
+ if tt.wantErr {
+ assert.Error(t, err)
+ } else {
+ assert.NoError(t, err)
+ }
+ })
+ }
+}
+
+func TestRmDeleteUndoLogProcessor_ProcessWithContext(t *testing.T) {
+ processor := &rmDeleteUndoLogProcessor{}
+
+ t.Run("background context", func(t *testing.T) {
+ err := processor.Process(context.Background(), message.RpcMessage{
+ ID: 1,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource-1",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ })
+ assert.NoError(t, err)
+ })
+
+ t.Run("canceled context should be handled gracefully", func(t *testing.T) {
+ ctx, cancel := context.WithCancel(context.Background())
+ cancel() // cancel immediately
+ err := processor.Process(ctx, message.RpcMessage{
+ ID: 2,
+ Type: message.GettyRequestTypeRequestSync,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "test-resource-2",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ })
+ assert.NoError(t, err, "current impl does not use ctx; update when deletion logic is added")
+ })
+}
+
+func TestInitDeleteUndoLog(t *testing.T) {
+ getty.GetGettyClientHandlerInstance()
+
+ assert.NotPanics(t, func() {
+ initDeleteUndoLog()
+ }, "initDeleteUndoLog should not panic")
+}
+
+func TestRmDeleteUndoLogProcessor_Integration(t *testing.T) {
+ RegisterProcessor()
+
+ processor := &rmDeleteUndoLogProcessor{}
+
+ err := processor.Process(context.Background(), message.RpcMessage{
+ ID: 100,
+ Type: message.GettyRequestTypeRequestSync,
+ Codec: 1,
+ Body: message.UndoLogDeleteRequest{
+ ResourceId: "jdbc:mysql://127.0.0.1:3306/seata_test",
+ SaveDays: 7,
+ BranchType: branch.BranchTypeAT,
+ },
+ })
+ assert.NoError(t, err)
+}
Review Comment:
`TestRmDeleteUndoLogProcessor_Integration` doesn't actually exercise the processor registration/dispatch path (it instantiates the processor directly and calls `Process`). Either rename this to reflect it's a unit test, or extend it to validate that a registered processor is invoked via the getty handler when a `MessageTypeRmDeleteUndolog` message is received.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] fix: support RM delete undo log request [incubator-seata-go]
Posted by "flypiggyNo3 (via GitHub)" <gi...@apache.org>.
flypiggyNo3 commented on PR #1074:
URL: https://github.com/apache/incubator-seata-go/pull/1074#issuecomment-4147979013
plz reply comments
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] fix: support RM delete undo log request [incubator-seata-go]
Posted by "AlexStocks (via GitHub)" <gi...@apache.org>.
AlexStocks commented on code in PR #1074:
URL: https://github.com/apache/incubator-seata-go/pull/1074#discussion_r2990518170
##########
pkg/remoting/processor/client/rm_delete_undolog_processor.go:
##########
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package client
+
+import (
+ "context"
+ "fmt"
+
+ "seata.apache.org/seata-go/v2/pkg/protocol/message"
+ "seata.apache.org/seata-go/v2/pkg/remoting/getty"
+ "seata.apache.org/seata-go/v2/pkg/util/log"
+)
+
+func initDeleteUndoLog() {
+ rmDeleteUndoLogProcessor := &rmDeleteUndoLogProcessor{}
+ getty.GetGettyClientHandlerInstance().RegisterProcessor(message.MessageTypeRmDeleteUndolog, rmDeleteUndoLogProcessor)
+}
+
+type rmDeleteUndoLogProcessor struct{}
+
+func (r *rmDeleteUndoLogProcessor) Process(ctx context.Context, rpcMessage message.RpcMessage) error {
+ req, ok := rpcMessage.Body.(message.UndoLogDeleteRequest)
+ if !ok {
+ return fmt.Errorf("invalid message body type: %T", rpcMessage.Body)
+ }
+
+ log.Infof("Received undo log delete request: resourceId=%s, saveDays=%d, branchType=%v",
+ req.ResourceId, req.SaveDays, req.BranchType)
+
+ // TODO: Implement actual undo log deletion logic here
Review Comment:
[P1] PR 标题写的是“support RM delete undo log request”,但这里收到请求后只打日志然后直接 `return nil`,真正的 undo_log 删除逻辑完全没有落地。TC 把请求当成 one-way 发过来后,RM 这边会表现成“处理成功”,实际旧 undo_log 一条都不会删,功能语义和提交标题不一致。建议至少把删除入口接到现有 undo_log 清理实现上;如果这次只打算先接协议,应该显式返回未实现错误并把 PR 范围缩小。
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] fix: support RM delete undo log request [incubator-seata-go]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #1074:
URL: https://github.com/apache/incubator-seata-go/pull/1074#issuecomment-4096789212
## [Codecov](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `84.37500%` with `5 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 57.52%. Comparing base ([`a93f0ae`](https://app.codecov.io/gh/apache/incubator-seata-go/commit/a93f0ae4bdebc1dd62adc74782a3a0db13ca4215?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`2258b3d`](https://app.codecov.io/gh/apache/incubator-seata-go/commit/2258b3d465114de656439a12f5c9452f4eff314f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
| [Files with missing lines](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [pkg/protocol/codec/undolog\_delete\_req\_codec.go](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?src=pr&el=tree&filepath=pkg%2Fprotocol%2Fcodec%2Fundolog_delete_req_codec.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cGtnL3Byb3RvY29sL2NvZGVjL3VuZG9sb2dfZGVsZXRlX3JlcV9jb2RlYy5nbw==) | 85.00% | [2 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...ng/processor/client/rm\_delete\_undolog\_processor.go](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?src=pr&el=tree&filepath=pkg%2Fremoting%2Fprocessor%2Fclient%2Frm_delete_undolog_processor.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-cGtnL3JlbW90aW5nL3Byb2Nlc3Nvci9jbGllbnQvcm1fZGVsZXRlX3VuZG9sb2dfcHJvY2Vzc29yLmdv) | 80.00% | [1 Missing and 1 partial :warning: ](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #1074 +/- ##
==========================================
+ Coverage 56.73% 57.52% +0.78%
==========================================
Files 267 269 +2
Lines 17574 17606 +32
==========================================
+ Hits 9970 10127 +157
+ Misses 6771 6641 -130
- Partials 833 838 +5
```
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/incubator-seata-go/pull/1074?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org
Re: [PR] fix: support RM delete undo log request [incubator-seata-go]
Posted by "everfid-ever (via GitHub)" <gi...@apache.org>.
everfid-ever closed pull request #1074: fix: support RM delete undo log request
URL: https://github.com/apache/incubator-seata-go/pull/1074
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@seata.apache.org
For additional commands, e-mail: notifications-help@seata.apache.org