This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 0451df0d50 log: response PDU bytes on parsing failures (#2359)
0451df0d50 is described below

commit 0451df0d50230cf3c8a5490eb5f9de0cb7bdcaf4
Author: Shaun <[email protected]>
AuthorDate: Fri Nov 21 22:17:22 2025 -0800

    log: response PDU bytes on parsing failures (#2359)
---
 plc4go/internal/modbus/MessageCodec.go | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/plc4go/internal/modbus/MessageCodec.go 
b/plc4go/internal/modbus/MessageCodec.go
index 90c82cbe73..0e88064ebf 100644
--- a/plc4go/internal/modbus/MessageCodec.go
+++ b/plc4go/internal/modbus/MessageCodec.go
@@ -21,13 +21,14 @@ package modbus
 
 import (
        "context"
+       "encoding/base64"
 
        "github.com/pkg/errors"
        "github.com/rs/zerolog"
 
        "github.com/apache/plc4x/plc4go/protocols/modbus/readwrite/model"
        "github.com/apache/plc4x/plc4go/spi"
-       "github.com/apache/plc4x/plc4go/spi/default"
+       _default "github.com/apache/plc4x/plc4go/spi/default"
        "github.com/apache/plc4x/plc4go/spi/options"
        "github.com/apache/plc4x/plc4go/spi/transports"
 )
@@ -120,7 +121,11 @@ func (m *MessageCodec) Receive(ctx context.Context) 
(spi.Message, error) {
                ctxForModel := options.GetLoggerContextForModel(ctx, m.log, 
options.WithPassLoggerToModel(m.passLogToModel))
                tcpAdu, err := 
model.ModbusADUParse[model.ModbusTcpADU](ctxForModel, data, 
model.DriverType_MODBUS_TCP, true)
                if err != nil {
-                       m.log.Warn().Err(err).Msg("error parsing")
+                       dataStr := base64.StdEncoding.EncodeToString(data)
+                       m.log.Warn().Err(err).
+                               Str("data", dataStr). // Max PDU size is 253 
bytes, and catching parse errors for inspection is important
+                               Uint32("packetSize", packetSize).
+                               Msg("error parsing")
                        // TODO: Possibly clean up ...
                        return nil, nil
                }

Reply via email to