When device running modbus receives multiple transactions between multiple open connections each transaction should be processed in its entirety.
When a device receives a modbus request while in a specific section of processing a previous transaction, the device may abandon processing the original transaction in favor of the new request. This partially processed transaction will finish and a reply is generated only on next transaction receive where the newly received transaction will become suspended in the same way. This corrupted state persists until the affected connection socket is closed by peer.
D (42951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_open: fd: 1
D (42951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_connect: fd: 1
D (43001) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (43001) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (43001) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x001d, frame: 0x3fcba618, 12
D (43021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001d, start transaction.
D (43031) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001d.
D (43041) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 1
D (43041) mb_port.tcp.slave: 0x3fcb5c14, node #1, socket(#56) [192.168.100.1], receive data ready.
D (43051) mb_port.tcp.slave: 0x3fcb5c14, node #1, socket(#56)(192.168.100.1), received packet TID: 0x0001, frame: 0x3fcba638, 12
D (43071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43081) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43081) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43091) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x001d, 0x3fcb5764.
D (43101) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (43111) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x001d:0x001d, 0x3fcb5764, len: 23,
D (43121) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), sent packet TID: 0x001d, 0x3fcb9774.
D (43131) mb_port.tcp.slave: Remove the message TID:0x001d
I (43141) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (43106297 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (43181) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43181) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43231) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43231) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43281) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43281) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43331) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43331) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43381) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43381) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43431) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43431) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43481) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43481) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43531) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43531) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43581) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43581) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43631) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43631) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43681) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43681) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43731) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43731) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43781) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43781) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43831) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43831) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43881) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43881) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43931) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43931) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (43981) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (43981) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44031) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44031) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44081) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44081) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44131) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (44131) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (44131) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x001e, frame: 0x3fcba618, 12
D (44141) mb_port.tcp.slave: 0x3fcb5c14, node #1, socket(#56)(192.168.100.1), acknowledged packet TID: 0x0001, start transaction.
D (44161) mb_port.tcp.slave: 0x3fcb5c14, node #1, socket(#56)(192.168.100.1), acknowledged packet TID: 0x0001.
D (44171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44181) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44191) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44191) mb_port.tcp.slave: 0x3fcb59d8, node #1, socket(#56)(192.168.100.1), read packet, TID: 0x0001, 0x3fcb5764.
D (44201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 1
D (44211) mb_port.tcp.slave: 0x3fcb5c14, node: #1, socket(#56)[192.168.100.1], send packet TID: 0x0001:0x0001, 0x3fcb5764, len: 23,
D (44221) mb_port.tcp.slave: 0x3fcb5c14, node #1, socket(#56)(192.168.100.1), sent packet TID: 0x0001, 0x3fcb9774.
D (44231) mb_port.tcp.slave: Remove the message TID:0x0001
I (44241) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (44208515 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (44291) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44291) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44341) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44341) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44391) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44391) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44441) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44441) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44491) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44491) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44541) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44541) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44591) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44591) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44641) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44641) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44691) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44691) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44741) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44741) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44791) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (44791) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44841) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
E (44841) mb_port.tcp.slave: 0x3fcb59d8, node #2, socket(#57)(192.168.100.1), communication fail, err= -11
D (44841) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (44951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45001) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45051) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45101) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45151) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45251) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45251) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45301) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45301) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45351) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45351) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45401) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45401) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45451) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45451) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45551) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45551) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45601) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45601) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45651) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45651) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45701) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45701) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45751) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45751) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45851) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45851) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (45951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (45951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46001) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46001) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46051) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46051) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46101) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46101) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46151) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46151) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46251) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46251) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46301) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46301) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46351) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46351) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46401) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46401) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46451) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46451) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46551) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46551) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46601) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46601) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46651) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46651) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46701) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46701) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46751) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46751) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46851) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_open: fd: 2
D (46851) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_connect: fd: 2
D (46901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 2
D (46901) mb_port.tcp.slave: 0x3fcb5c14, node #2, socket(#57) [192.168.100.1], receive data ready.
D (46911) mb_port.tcp.slave: 0x3fcb5c14, node #2, socket(#57)(192.168.100.1), received packet TID: 0x0001, frame: 0x3fcba96c, 12
D (46921) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001e, start transaction.
D (46931) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001e.
D (46941) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (46961) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (46961) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x001e, 0x3fcb5764.
D (46971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (46981) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x001e:0x001e, 0x3fcb5764, len: 23,
D (46991) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), sent packet TID: 0x001e, 0x3fcbb938.
D (47001) mb_port.tcp.slave: Remove the message TID:0x001e
I (47011) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (46978483 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (47061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
D (47611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 3
E (47611) mb_port.tcp.slave: 0x3fcb59d8, node #3, socket(#58)(192.168.100.1), communication fail, err= -11
D (47671) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47821) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (47971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (48021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (48021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x001f, frame: 0x3fcba95c, 12
D (48031) mb_port.tcp.slave: 0x3fcb5c14, node #2, socket(#57)(192.168.100.1), acknowledged packet TID: 0x0001, start transaction.
D (48051) mb_port.tcp.slave: 0x3fcb5c14, node #2, socket(#57)(192.168.100.1), acknowledged packet TID: 0x0001.
D (48061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48061) mb_port.tcp.slave: 0x3fcb59d8, node #2, socket(#57)(192.168.100.1), read packet, TID: 0x0001, 0x3fcb5764.
D (48071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 2
D (48081) mb_port.tcp.slave: 0x3fcb5c14, node: #2, socket(#57)[192.168.100.1], send packet TID: 0x0001:0x0001, 0x3fcb5764, len: 23,
D (48091) mb_port.tcp.slave: 0x3fcb5c14, node #2, socket(#57)(192.168.100.1), sent packet TID: 0x0001, 0x3fcb9774.
D (48101) mb_port.tcp.slave: Remove the message TID:0x0001
I (48111) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (48079751 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (48161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48711) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48761) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48811) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48861) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48911) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (48961) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49011) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49711) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49711) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49761) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49761) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49811) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49811) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49861) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49861) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49911) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49911) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (49961) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (49961) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50011) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50011) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50111) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50261) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50361) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50561) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
D (50611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 1
E (50661) mb_port.tcp.slave: 0x3fcb59d8, node #1, socket(#56)(192.168.100.1), communication fail, err= -11
D (50661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50821) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (50971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51121) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51221) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51271) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51371) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51471) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51521) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51571) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51621) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51671) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51821) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (51971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52121) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52221) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52271) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52371) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52471) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52521) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52571) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52621) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52671) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52821) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (52971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53121) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53221) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53271) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53371) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53471) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53521) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53571) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53621) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53671) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53821) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (53971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (54021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (54021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x0020, frame: 0x3fcba608, 12
D (54031) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001f, start transaction.
D (54051) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x001f.
D (54061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54061) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x0020, 0x3fcb5764.
D (54071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (54081) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x001f:0x001f, 0x3fcb5764, len: 23,
D (54091) mb_port.tcp.slave: Remove the message TID:0x001f
D (54101) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), frame TID:0x0020!=0x001f, slave is busy.
W (54111) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), handling time [ms]: 6062, exceeds slave response time in master.
I (54121) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (54079700 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (54171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54221) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54271) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54371) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54471) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54521) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
D (54571) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_error: fd: 2
E (54571) mb_port.tcp.slave: 0x3fcb59d8, node #2, socket(#57)(192.168.100.1), communication fail, err= -11
D (54831) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (55091) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (55351) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (55611) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (55871) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (56131) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (56391) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (56651) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (56911) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (57171) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (57431) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (57691) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (57951) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (58211) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (58471) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (58731) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (58991) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (59251) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (59511) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (59771) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (60011) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (60011) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (60021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x0021, frame: 0x3fcba95c, 12
D (60031) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0020, start transaction.
D (60041) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0020.
D (60051) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x0021, 0x3fcb5764.
D (60061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (60071) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x0020:0x0020, 0x3fcb5764, len: 23,
D (60081) mb_port.tcp.slave: Remove the message TID:0x0020
D (60081) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), frame TID:0x0021!=0x0020, slave is busy.
W (60091) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), handling time [ms]: 6049, exceeds slave response time in master.
I (60111) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (60066425 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (60371) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (60631) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (60891) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (61151) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (61411) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (61671) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (61931) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (62191) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (62451) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (62711) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (62971) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (63231) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (63491) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (63751) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (64011) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (64271) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (64531) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (64791) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (65051) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (65311) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (65571) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (65831) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (66021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (66021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (66021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x0022, frame: 0x3fcba608, 12
D (66031) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0021, start transaction.
D (66051) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0021.
D (66061) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x0022, 0x3fcb5764.
D (66071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (66071) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x0021:0x0021, 0x3fcb5764, len: 23,
D (66091) mb_port.tcp.slave: Remove the message TID:0x0021
D (66091) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), frame TID:0x0022!=0x0021, slave is busy.
W (66101) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), handling time [ms]: 6064, exceeds slave response time in master.
I (66121) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (66073882 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (66381) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (66641) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (66901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (67161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (67421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (67681) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (67941) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (68201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (68461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (68721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (68981) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (69241) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (69501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (69761) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (70021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (70281) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (70541) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (70801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (71061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (71321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (71581) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (71841) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (72021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (72021) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (72031) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x0023, frame: 0x3fcba95c, 12
D (72041) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0022, start transaction.
D (72051) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0022.
D (72061) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x0023, 0x3fcb5764.
D (72071) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (72081) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x0022:0x0022, 0x3fcb5764, len: 23,
D (72091) mb_port.tcp.slave: Remove the message TID:0x0022
D (72101) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), frame TID:0x0023!=0x0022, slave is busy.
W (72111) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), handling time [ms]: 6062, exceeds slave response time in master.
I (72121) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (72079974 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (72381) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (72641) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (72901) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (73161) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (73421) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (73681) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (73941) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (74201) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (74461) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (74721) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (74981) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (75241) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (75501) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (75761) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (76021) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (76281) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (76541) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (76801) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (77061) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (77321) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (77581) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (77841) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (78041) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_recv_data: fd: 0
D (78041) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55) [192.168.100.1], receive data ready.
D (78051) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), received packet TID: 0x0024, frame: 0x3fcba608, 12
D (78061) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0023, start transaction.
D (78071) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), acknowledged packet TID: 0x0023.
D (78081) mb_port.tcp.slave: 0x3fcb59d8, node #0, socket(#55)(192.168.100.1), read packet, TID: 0x0024, 0x3fcb5764.
D (78091) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_send_data: fd: 0
D (78101) mb_port.tcp.slave: 0x3fcb5c14, node: #0, socket(#55)[192.168.100.1], send packet TID: 0x0023:0x0023, 0x3fcb5764, len: 23,
D (78111) mb_port.tcp.slave: Remove the message TID:0x0023
D (78111) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), frame TID:0x0024!=0x0023, slave is busy.
W (78121) mb_port.tcp.slave: 0x3fcb5c14, node #0, socket(#55)(192.168.100.1), handling time [ms]: 6072, exceeds slave response time in master.
I (78141) SLAVE_TEST: OBJ 0x3fcb4224, HOLDING READ (78095594 us), ADDR:12, TYPE:2, INST_ADDR:0x3fc9f34c, SIZE:7
D (78401) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (78661) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (78921) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (79181) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (79441) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (79701) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (79961) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (80221) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (80481) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
D (80741) mb_port.tcp.slave: loop:0x3fcb5c14 mbs_on_timeout: fd: 0, count: 1
The state modbus slave enters after the occurrence of the bug is effectively such that it always tries to reply to the previous transaction ID when a new transaction is received. A continuously running modbus server polling the device will start timeouting transactions as the reply will be received only after a new transaction is initiated upon a timeout of the original one.
The log I provided is from the modbus example with only mb_port.tcp.slave tag set to debug to be more concise.
In the log fragment above I believe I see a transaction being received on socket 56 in the middle of transaction handling on socket 55. The socket 56 transaction affectively hijacks handling of the transaction from socket 55 which is never processed and enters limbo until next transaction is received. Upon that time the old transaction will be processed but the newly received on becomes stuck and so on... This can be seen in the following log fragment:
Checklist
How often does this bug occurs?
rarely
Expected behavior
When device running modbus receives multiple transactions between multiple open connections each transaction should be processed in its entirety.
Actual behavior (suspected bug)
When a device receives a modbus request while in a specific section of processing a previous transaction, the device may abandon processing the original transaction in favor of the new request. This partially processed transaction will finish and a reply is generated only on next transaction receive where the newly received transaction will become suspended in the same way. This corrupted state persists until the affected connection socket is closed by peer.
Error logs or terminal output
Steps to reproduce the behavior
Project release version
esp_modbus 2.1.2, esp-idf 5.2.5
System architecture
Intel/AMD 64-bit (modern PC, older Mac)
Operating system
Windows
Operating system version
Windows 11
Shell
PowerShell
Additional context
The state modbus slave enters after the occurrence of the bug is effectively such that it always tries to reply to the previous transaction ID when a new transaction is received. A continuously running modbus server polling the device will start timeouting transactions as the reply will be received only after a new transaction is initiated upon a timeout of the original one.
The log I provided is from the modbus example with only mb_port.tcp.slave tag set to debug to be more concise.
Bug presents itself in log section:
In the log fragment above I believe I see a transaction being received on socket 56 in the middle of transaction handling on socket 55. The socket 56 transaction affectively hijacks handling of the transaction from socket 55 which is never processed and enters limbo until next transaction is received. Upon that time the old transaction will be processed but the newly received on becomes stuck and so on... This can be seen in the following log fragment:
I've checked the issue #140 and applied the fix mentioned there, this does not seem to help in this case, though the description is similar enough that maybe both observed behaviors may stem from the same underlying issue.