vearne / grpcreplay

GrpcReplay is an open-source network monitoring tool which can record your grpc traffic and use it for shadowing, load testing, monitoring and detailed analysis.
MIT License
17 stars 4 forks source link

the program auto exit, why? #26

Closed fireblackman closed 4 months ago

fireblackman commented 4 months ago

$ sudo ./grpcr --input-raw="127.0.0.1:6789" --output-stdout --output-grpc="grpc://192.168.3.69:20001"


/ __// \ / \ / __// \ / / / // // // // / / // / / // // , // // /_ / , / __/// ||/_/ \/// ||
2024/07/30 17:18:57 [info] input-raw, [127.0.0.1:6789] 2024/07/30 17:18:57 [info] input-file-directory, [] 2024/07/30 17:18:57 [info] input-file-replay-speed, 1 2024/07/30 17:18:57 [info] input-rocketmq-name-server, [] 2024/07/30 17:18:57 [info] input-rocketmq-topic, test 2024/07/30 17:18:57 [info] output-stdout, true 2024/07/30 17:18:57 [info] output-file-directory, [] 2024/07/30 17:18:57 [info] output-grpc, [grpc://192.168.3.69:20001] 2024/07/30 17:18:57 [info] output-rocketmq-name-server, [] 2024/07/30 17:18:57 [info] output-rocketmq-topic, test 2024/07/30 17:18:57 [info] create new Processer 2024/07/30 17:18:57 [info] ipSet:[::1 fe80::42:28ff:fe02:700b fe80::e8d6:a5ff:fe0f:5d1d fe80::5450:1eff:feca:14e0 127.0.0.1 192.168.40.222 fe80::c02e:3639:c93a:8590 172.17.0.1 fe80::bcaf:a6ff:fe91:9486 fe80::48a7:91ff:fea8:ec2c] 2024/07/30 17:18:57 [info] create grpc output, addr:192.168.3.69:20001 2024/07/30 17:18:57 [info] plugins:##### len(Inputs):1, len(Outputs):2, len(All):3 ##### 2024/07/30 17:18:57 [info] All history connections has exited. 2024/07/30 17:18:57 [info] listener:device:lo, port:6789, filter:tcp and port 6789 2024/07/30 17:19:18 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/07/30 17:19:18 [error] get TCP pkg:127.0.0.1:39792 -> 127.0.0.1:6789, seq:2194564660, tcp flags:[PSH ACK] 2024/07/30 17:19:18 [fatal] protodesc.NewFile, svcAndMethod:/xxxxxx.xxxxxxx.xxxxxx/PushHighFrameVehicleStatus

fireblackman commented 4 months ago

grpc server in docker, port is same. ifconfig in docker
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.5 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:ac:11:00:05 txqueuelen 0 (Ethernet) RX packets 6812 bytes 8602382 (8.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3259 bytes 686989 (670.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 1345098 bytes 189459845 (180.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1345098 bytes 189459845 (180.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

fireblackman commented 4 months ago

image What is the function of this judgment?

fireblackman commented 4 months ago

Looking forward to your reply, thank you!

vearne commented 4 months ago

1)

f. Lengh indicates the size of the payload in the Frame. The payload of the TCP packet should be larger than this value.

2024/07/30 17:19:18 [error] get TCP pkg:127.0.0.1:39792 -> 127.0.0.1:6789, seq:2194564660, tcp flags:[PSH ACK]

This line of error log is caused by an bug in the connection preface processing.I have fix it in tag v0.0.6. If you update the code and rebuild it, this log will no longer appear.The program exit is not caused by this problem

2)

2024/07/30 17:19:18 [fatal] protodesc.NewFile, svcAndMethod:/xxxxxx.xxxxxxx.xxxxxx/PushHighFrameVehicleStatus

The program exited because an error was reported when trying to obtain the definition of /xxxxxx.xxxxxxx.xxxxxx/PushHighFrameVehicleStatus through reflection

If you can provide a demo, I can analyze the problem further. @fireblackman

fireblackman commented 4 months ago

The production project is more complex, not very easy to generate the demo, whether the tcpdump packets can be used for positioning the problem, I can provide

fireblackman commented 4 months ago

image Looks like a parsing imported package failed, but why?

fireblackman commented 4 months ago

Project proto directory and initialization script

vearne commented 4 months ago

I guess it's because the method and input parameters are defined in different proto files. I'll test it later. @fireblackman

vearne commented 4 months ago

I have fixed it. please update code and rebuild bin file and try again. @fireblackman

fireblackman commented 4 months ago

$ sudo ./grpcr --input-raw="127.0.0.1:6789" --output-stdout --output-grpc="grpc://192.168.3.69:20001"


/ __// \ / \ / __// \ / / / // // // // / / // / / // // , // // /_ / , / __/// ||/_/ \/// ||
2024/08/01 16:58:19 [info] input-raw, [127.0.0.1:6789] 2024/08/01 16:58:19 [info] input-file-directory, [] 2024/08/01 16:58:19 [info] input-file-replay-speed, 1 2024/08/01 16:58:19 [info] input-rocketmq-name-server, [] 2024/08/01 16:58:19 [info] input-rocketmq-topic, test 2024/08/01 16:58:19 [info] output-stdout, true 2024/08/01 16:58:19 [info] output-file-directory, [] 2024/08/01 16:58:19 [info] output-grpc, [grpc://192.168.3.69:20001] 2024/08/01 16:58:19 [info] output-rocketmq-name-server, [] 2024/08/01 16:58:19 [info] output-rocketmq-topic, test 2024/08/01 16:58:19 [info] create new Processer 2024/08/01 16:58:19 [info] ipSet:[fe80::e8d6:a5ff:fe0f:5d1d fe80::5450:1eff:feca:14e0 fe80::9844:8ff:fe54:a5e2 fe80::c02e:3639:c93a:8590 127.0.0.1 fe80::42:28ff:fe02:700b fe80::48a7:91ff:fea8:ec2c fe80::409d:14ff:feb9:de05 192.168.40.222 ::1 172.17.0.1 fe80::bcaf:a6ff:fe91:9486] 2024/08/01 16:58:19 [info] create grpc output, addr:192.168.3.69:20001 2024/08/01 16:58:19 [info] plugins:##### len(Inputs):1, len(Outputs):2, len(All):3 ##### 2024/08/01 16:58:19 [info] All history connections has exited. 2024/08/01 16:58:19 [info] listener:device:lo, port:6789, filter:tcp and port 6789 2024/08/01 16:58:35 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/01 16:58:35 [fatal] protodesc.NewFiles, svcAndMethod:/xxxxxx.xxxx.xxxxxxx/PushVehicleStatus, error:proto: could not resolve import "xxxxpilot/error_code.proto": not found

fireblackman commented 4 months ago

Maybe there are some unusual scenarios? image There are many levels of directory. It seems that there is no problem with the first one, but there is still a problem with the subsequent file parsing.

vearne commented 4 months ago

Ok, I'll try to build a more complex demo tomorrow

vearne commented 4 months ago

fix it in v0.0.8. please update code and rebuild bin file and try again. @fireblackman

fireblackman commented 4 months ago

$ sudo ./grpcr --input-raw="127.0.0.1:6789" --output-stdout --output-grpc="grpc://192.168.3.69:20001"


/ __// \ / \ / __// \ / / / // // // // / / // / / // // , // // /_ / , / __/// ||/_/ \/// ||
2024/08/02 16:02:58 [info] input-raw, [127.0.0.1:6789] 2024/08/02 16:02:58 [info] input-file-directory, [] 2024/08/02 16:02:58 [info] input-file-replay-speed, 1 2024/08/02 16:02:58 [info] input-rocketmq-name-server, [] 2024/08/02 16:02:58 [info] input-rocketmq-topic, test 2024/08/02 16:02:58 [info] output-stdout, true 2024/08/02 16:02:58 [info] output-file-directory, [] 2024/08/02 16:02:58 [info] output-grpc, [grpc://192.168.3.69:20001] 2024/08/02 16:02:58 [info] output-rocketmq-name-server, [] 2024/08/02 16:02:58 [info] output-rocketmq-topic, test 2024/08/02 16:02:58 [info] create new Processer 2024/08/02 16:02:58 [info] ipSet:[192.168.11.239 fe80::1808:d264:a187:f27 172.17.0.1 fe80::842f:bdff:fe2c:d3b1 127.0.0.1 ::1 fe80::42:50ff:fe38:493d fe80::782e:b3ff:fed1:9474 fe80::5029:b6ff:fef9:f262 fe80::344a:6cff:feaa:124c] 2024/08/02 16:02:58 [info] create grpc output, addr:192.168.3.69:20001 2024/08/02 16:02:58 [info] plugins:##### len(Inputs):1, len(Outputs):2, len(All):3 ##### 2024/08/02 16:02:58 [info] All history connections has exited. 2024/08/02 16:02:58 [info] listener:device:lo, port:6789, filter:tcp and port 6789 2024/08/02 16:03:14 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/02 16:03:14 [fatal] protodesc.NewFiles, svcAndMethod:/xxxxx.antenna.AntennaServer/PushVehicleStatus, error:proto: file appears multiple times: "xxxxx/geometry.proto"

Look at some other error errors

image

vearne commented 4 months ago

fix it in v0.0.9. please update code and rebuild bin file and try again. @fireblackman

fireblackman commented 4 months ago

resolve is ok, but has another problem. look like send failed. 024/08/02 19:01:46 [info] create Http2Conn, MaxDynamicTableSize:4096 1 9c2f690e-50be-11ef-9ca4-04421a24b909 1722596506613582635 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3996220u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus","request":"{\"highFrameVehicleStatus\":{\"vehicleName\":\"howo8_test\", \"timestampMs\":\"1722596503723\", \"planningTrajectoryOnCameraScreen\":[{\"x\":935.7707370822919, \"y\":661.1819027606092}, {\"x\":947.8241823603645, \"y\":599.9305995053898}, {\"x\":952.2394360421201, \"y\":577.516286352017}, {\"x\":954.5238712177461, \"y\":565.923822189014}], \"taskState\":{\"header\":{\"timestampSec\":1722596503, \"moduleName\":\"planning\", \"sequenceNum\":1, \"pubTimestampSec\":1722596503}, \"taskMode\":\"FAIL\", \"commandId\":-1, \"targetDist\":1000000, \"errorCode\":\"ROUTE_FAIL\", \"commandTimestamp\":\"0\"}, \"auxiliaryLane\":{\"leftPoint\":[{\"x\":-528.4106933209357, \"y\":1080}, {\"x\":432.7471013108524, \"y\":719.8254164699838}, {\"x\":613.576842529405, \"y\":653.5464621630298}, {\"x\":710.3219485706621, \"y\":618.6818189216101}, {\"x\":766.8136120690656, \"y\":598.4816432084923}, {\"x\":846.5159764388881, \"y\":570.154708247289}, {\"x\":880.2100588240829, \"y\":558.2330572677541}], \"midPoint\":[{\"x\":853.7293708588164, \"y\":1080}, {\"x\":910.6617379133294, \"y\":788.7924334894587}, {\"x\":933.8389719645023, \"y\":670.6567212408539}, {\"x\":942.6403026348695, \"y\":625.8755778159164}, {\"x\":947.220050419739, \"y\":602.5795528135692}, {\"x\":953.2602254120447, \"y\":571.8258099665255}, {\"x\":955.7128562221404, \"y\":559.2927525290835}], \"rightPoint\":[{\"x\":2171.522764862415, \"y\":1080}, {\"x\":1442.0855704044757, \"y\":744.0163958466491}, {\"x\":1267.4675786202029, \"y\":665.0135620440459}, {\"x\":1179.6982494393965, \"y\":625.8233061075888}, {\"x\":1129.7651514571933, \"y\":603.6576822068582}, {\"x\":1060.4275080994744, \"y\":573.0211818060529}, {\"x\":1031.3619517048442, \"y\":560.227763231365}]}}}"}

2024/08/02 19:01:46 [error] dst.Write:rpc error: code = Unknown desc = failed to query for service descriptor "xxxxxxx.antenna.AntennaServer": Error in service handler! 2024/08/02 19:01:51 [info] create Http2Conn, MaxDynamicTableSize:4096

vearne commented 4 months ago

192.168.3.69:20001 also needs to turn on reflection @fireblackman

127.0.0.1:6789 -> 192.168.3.69:20001 Perhaps in the future, we can consider letting output-grpc reuse the reflection result of 127.0.0.1:6789

fireblackman commented 4 months ago

2024/08/02 19:05:32 [error] dst.Write:rpc error: code = Unknown desc = failed to query for service descriptor "xxxxxx.antenna.AntennaServer": Error in service handler! 1 22af0c70-50bf-11ef-9ca4-04421a24b909 1722596732264766697 {"headers":{},"method":"","request":""}

panic: runtime error: slice bounds out of range [1:0]

goroutine 50 [running]: github.com/vearne/grpcreplay/plugin.(GRPCOutput).Write(0xc000013a10, 0xc0015ddb30) /home/tester/go_workspace/grpcreplay/plugin/output_grpc.go:67 +0x4d4 github.com/vearne/grpcreplay/biz.(Emitter).CopyMulty(0xc0002f3710, {0x7fef15eb4098, 0xc0003b0000}, {0xc00009b9c0, 0x2, 0xc00012a000?}) /home/tester/go_workspace/grpcreplay/biz/emitter.go:63 +0xf5 github.com/vearne/grpcreplay/biz.(Emitter).Start.func1({0x7fef15eb4098?, 0xc0003b0000?}) /home/tester/go_workspace/grpcreplay/biz/emitter.go:31 +0x73 created by github.com/vearne/grpcreplay/biz.(Emitter).Start in goroutine 28 /home/tester/go_workspace/grpcreplay/biz/emitter.go:29 +0x57

Continuously call the interface, the program will be abnormal

fireblackman commented 4 months ago

2024/08/03 14:04:55 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/03 14:04:55 [error] method:/xxxxxx.antenna.AntennaServer/PushVehicleStatus, proto.Unmarshal:proto: cannot parse invalid wire-format data 2024/08/03 14:04:55 [error] get TCP pkg:127.0.0.1:53322 -> 127.0.0.1:6789, seq:2950422669, tcp flags:[PSH ACK] 1 4e71d4fb-515e-11ef-8d38-04421a24b909 1722665095663515270 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3997683u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus","request":"{}"}

{} 2024/08/03 14:05:00 [info] create Http2Conn, MaxDynamicTableSize:4096

Some interfaces failed to parse the body, causing forwarding to another server to fail!

fireblackman commented 4 months ago

2024/08/03 14:04:55 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/03 14:04:55 [error] method:/xxxxxx.antenna.AntennaServer/PushVehicleStatus, proto.Unmarshal:proto: cannot parse invalid wire-format data 2024/08/03 14:04:55 [error] get TCP pkg:127.0.0.1:53322 -> 127.0.0.1:6789, seq:2950422669, tcp flags:[PSH ACK] 1 4e71d4fb-515e-11ef-8d38-04421a24b909 1722665095663515270 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3997683u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus","request":"{}"}

{} 2024/08/03 14:05:00 [info] create Http2Conn, MaxDynamicTableSize:4096

Some interfaces failed to parse the body, causing forwarding to another server to fail!

vearne commented 4 months ago

2024/08/02 19:05:32 [error] dst.Write:rpc error: code = Unknown desc = failed to query for service descriptor "xxxxxx.antenna.AntennaServer": Error in service handler! 1 22af0c70-50bf-11ef-9ca4-04421a24b909 1722596732264766697 {"headers":{},"method":"","request":""}

panic: runtime error: slice bounds out of range [1:0]

goroutine 50 [running]: github.com/vearne/grpcreplay/plugin.(GRPCOutput).Write(0xc000013a10, 0xc0015ddb30) /home/tester/go_workspace/grpcreplay/plugin/output_grpc.go:67 +0x4d4 github.com/vearne/grpcreplay/biz.(Emitter).CopyMulty(0xc0002f3710, {0x7fef15eb4098, 0xc0003b0000}, {0xc00009b9c0, 0x2, 0xc00012a000?}) /home/tester/go_workspace/grpcreplay/biz/emitter.go:63 +0xf5 github.com/vearne/grpcreplay/biz.(Emitter).Start.func1({0x7fef15eb4098?, 0xc0003b0000?}) /home/tester/go_workspace/grpcreplay/biz/emitter.go:31 +0x73 created by github.com/vearne/grpcreplay/biz.(Emitter).Start in goroutine 28 /home/tester/go_workspace/grpcreplay/biz/emitter.go:29 +0x57

Continuously call the interface, the program will be abnormal

{"headers":{},"method":"","request":""} From the console output, the request parsing is incorrect, but the reason is not clear. In tag v0.1.0, I added some defensive code to prevent the program from crashing.

vearne commented 4 months ago

2024/08/03 14:04:55 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/03 14:04:55 [error] method:/xxxxxx.antenna.AntennaServer/PushVehicleStatus, proto.Unmarshal:proto: cannot parse invalid wire-format data 2024/08/03 14:04:55 [error] get TCP pkg:127.0.0.1:53322 -> 127.0.0.1:6789, seq:2950422669, tcp flags:[PSH ACK] 1 4e71d4fb-515e-11ef-8d38-04421a24b909 1722665095663515270 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3997683u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushVehicleStatus","request":"{}"}

{} 2024/08/03 14:05:00 [info] create Http2Conn, MaxDynamicTableSize:4096

Some interfaces failed to parse the body, causing forwarding to another server to fail!

2024/08/03 14:04:55 [error] method:/xxxxxx.antenna.AntennaServer/PushVehicleStatus, proto.Unmarshal:proto: cannot parse invalid wire-format data From the log, it can be seen that the request body deserialization failed. If possible, please provide the definition of the input parameter of: /xxxxxx.antenna.AntennaServer/PushVehicleStatus so that I can further analyze it. @fireblackman

fireblackman commented 4 months ago

5 hz in sec. the body is follow of PushVehicleStatus: { "status": { "vehicleName": "howo11_test", "position": { "longitude": 0.0, "latitude": 0.0, "utmX": 405681.344526563, "utmY": 3295470.0408920045 }, "speed": 0.0, "sensorStatus": "ERROR", "errorSensors": ["camera_driver", "gnss_driver", "lidar_driver", "vehicle"], "systemReady": false, "timestampNs": "1722823665968757947", "heading": -2.3959458123956896, "sensorInfo": [], "drivingStatus": "AUTO_DRIVE", "fitRoutePoints": [], "soc": 100.0, "noLoad": true, "vehicleOwner": "FABU_AUTO_PILIOT", "totalMileage": 0.0, "currentMileage": 0.0, "localizationDetail": { "header": { "timestampSec": 1.71740451959506E9, "moduleName": "agent_dynamics", "sequenceNum": 312566, "lidarTimestamp": "0", "cameraTimestamp": "0", "radarTimestamp": "0", "version": 1, "pubTimestampSec": 1.7174045195950742E9 }, "velX": 0.0, "velY": 0.0, "velZ": 0.0, "accX": 0.0, "accY": 0.0, "accZ": 0.0, "angularVelX": 0.0, "angularVelY": 0.0, "angularVelZ": 0.0, "heading": -2.3959458123956896, "pitch": 0.0, "roll": 0.0, "utmX": 405681.344526563, "utmY": 3295470.0408920045, "utmZ": 0.0, "navMode": 0.0, "posMode": 0.0, "velMode": 0.0, "attMode": 0.0, "latitudeStd": 0.0, "longitudeStd": 0.0, "heightStd": 0.0, "northVelocityStd": 0.0, "eastVelocityStd": 0.0, "upVelocityStd": 0.0, "rollStd": 0.0, "pitchStd": 0.0, "azimuthStd": 0.0, "level": "NONE", "needVlane": false, "offsetUtmX": 0.0, "offsetUtmY": 0.0, "headingOffset": 0.0, "lat": 0.0, "lon": 0.0, "gpsMeasurementTime": 0.0, "isStable": true, "localizationType": "RTK", "externalSignal": "EMPTY", "baseState": { "x": 405681.31185891666, "y": 3295470.010723495, "z": 0.0, "yaw": -8.679131119575276, "pitch": 0.0, "roll": 0.0, "lonVel": 0.0, "latVel": 0.0, "lonAcc": 0.0, "latAcc": 0.0, "yawRate": 0.0, "pitchRate": 0.0, "rollRate": 0.0, "curvature": -1.0290066808751688E-4 } }, "chassisDetail": { "acuDrivingMode": "COMPLETE_AUTO_DRIVE", "brand": "DONGFENG", "howoV2": { "ebs": { "ebsStatus": 0, "pressureLoop1": 1000000, "pressureLoop2": 1000000, "ebsPedalStatus": 0, "ebsWeakError": 0, "ebsStrongError": 0, "vehicleSpeed": 0.0, "wheelspeedLeftFront": 0.0, "wheelspeedRightFront": 0.0, "wheelspeedLeftRear": 0.0, "wheelspeedRightRear": 0.0, "leftFrontHydraulicPressure": 0.0, "rightFrontHydraulicPressure": 0.0, "leftRearHydraulicPressure": 0.0, "rightRearHydraulicPressure": 0.0 } }, "header": { "timestampSec": 1.717404519582858E9, "moduleName": "", "sequenceNum": 0, "lidarTimestamp": "0", "cameraTimestamp": "0", "radarTimestamp": "0", "version": 1, "pubTimestampSec": 1.717404519582858E9 } }, "containerStatus": { "frontExist": false, "midExist": false, "rearExist": false }, "nodePath": [], "path1": [], "netDelay": 2, "chassis": { "header": { "timestampSec": 1.717404519673446E9, "moduleName": "", "sequenceNum": 0, "lidarTimestamp": "0", "cameraTimestamp": "0", "radarTimestamp": "0", "version": 1, "pubTimestampSec": 1.717404519673446E9 }, "steeringAngleSpeedExecuted": 0.0, "steeringAngleExecuted": -5.512779719921488, "frontAxleSpeed": 0.0, "wheelspeedLeftfront": 0.0, "wheelspeedRightfront": 0.0, "wheelspeedLeftrear": 0.0, "wheelspeedRightrear": 0.0, "vehicleSpeed": 0.0, "motorRpm": 0.0, "motorTorque": "NaN", "chassisErrorMask": 0, "errorCode": "NO_ERROR", "drivingMode": "COMPLETE_AUTO_DRIVE", "gearPosition": "GEAR_NEUTRAL", "leftTurnLamp": "OFF", "rightTurnLamp": "OFF", "throttlePedal": 0.0, "brakePedal": 0.0, "autoDriveRequest": false, "soc": 100.0, "hydraulicPressure": 0.0, "highBeam": "OFF", "lowBeam": "OFF", "failureLevel": "NO_FAILURE", "enterAutoDriveErrorCode": [], "parkingBrakeReleased": false, "emergencyDetail": "", "rainlevel": "NORAIN", "totalMileage": 0.0, "currentMileage": 0.0, "autoDriveEmergency": false, "autoDriveStatusOk": false, "deceleration": 0.0, "signal": { "turnSignal": "TURN_NONE", "highBeam": false, "lowBeam": false, "horn": false, "emergencyLight": false, "clearanceLight": false, "doubleFlashLight": false, "rainWiperSpeed": 0, "rainWiperSwitch": false, "frontFogLight": false, "rearFogLight": false, "frontDoor": 0, "rearDoor": 0 } }, "driverless": true, "behaviorInfoSub": { "sceneInfo": { "sceneType": "PORT_MEISHAN_DOCK", "roadName": "dock", "laneIndex": 5 }, "functionType": "LANE_KEEP", "behaviorType": "NORMAL_LANE_KEEP", "stageType": "PRECISE-PARKING" }, "workMode": "OFFLINE_WORK", "receiveTimestampNs": "0", "canEnterAutoDriveMode": true, "trailerFrontCenter": { "longitude": 0.0, "latitude": 0.0, "utmX": 405681.344526563, "utmY": 3295470.0408920045 }, "vehicleMode": { "businessScene": "port_meishan_driverless", "safeMode": false, "dynamicVesselStatus": true, "bridgeDrivingMode": 0, "airPumpStatus": false, "bridgesDrivingMode": [{ "bridgeNo": 10, "drivingMode": 1 }, { "bridgeNo": 11, "drivingMode": 1 }, { "bridgeNo": 12, "drivingMode": 1 }], "useOnlineRouting": false }, "deviceInfo": { "hostInfo": [], "envMode": "PRO" }, "lightColor": "LIGHT_GREEN", "commandType": "UNKNOWN", "trailerHeading": -8.67903757727091, "fleetId": 0, "candidateRouteStartPoint": [], "trajectoryPoints": [{ "timestamp": 0.0, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 9.899999618530273, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 9.920000076293945, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 9.940000534057617, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 9.960000038146973, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 9.979999542236328, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }, { "timestamp": 10.0, "posX": 405681.31274145405, "posY": 3295470.0097679766, "heading": -2.395857810974121, "trailerAngle": -2.395857810974121, "vel": 0.0 }], "distToPlcDevice": { "craneDist": [{ "craneId": 37, "dist": -11.325037940786938 }], "gantryDist": [], "timestampSec": 1.7174044956927228E9 }, "errorInfoForEnterAutoDriveMode": "", "startupTimestampNs": "1722823665968709996", "vehicleType": "CAR" } }

fireblackman commented 4 months ago

v0.1.0 tag console in terminal. 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 {} 1 ef6ba8ff-52d0-11ef-b74a-04421a24b909 1722824279526016300 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3999963u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus","request":"{\"highFrameVehicleStatus\":{\"vehicleName\":\"howo11_test\",\"timestampMs\":\"1722824278954\",\"planningTrajectoryOnCameraScreen\":[{\"x\":935.7707370822919,\"y\":661.1819027606092},{\"x\":947.8241823603645,\"y\":599.9305995053898},{\"x\":952.2394360421201,\"y\":577.516286352017},{\"x\":954.5238712177461,\"y\":565.923822189014}],\"taskState\":{\"header\":{\"timestampSec\":1722824278,\"moduleName\":\"planning\",\"sequenceNum\":38,\"pubTimestampSec\":1722824278},\"taskMode\":\"FAIL\",\"commandId\":-1,\"targetDist\":1000000,\"errorCode\":\"ROUTE_FAIL\",\"commandTimestamp\":\"0\"},\"auxiliaryLane\":{\"leftPoint\":[{\"x\":-528.4106933209357,\"y\":1080},{\"x\":432.7471013108524,\"y\":719.8254164699838},{\"x\":613.576842529405,\"y\":653.5464621630298},{\"x\":710.3219485706621,\"y\":618.6818189216101},{\"x\":766.8136120690656,\"y\":598.4816432084923},{\"x\":846.5159764388881,\"y\":570.154708247289},{\"x\":880.2100588240829,\"y\":558.2330572677541}],\"midPoint\":[{\"x\":853.7293708588164,\"y\":1080},{\"x\":910.6617379133294,\"y\":788.7924334894587},{\"x\":933.8389719645023,\"y\":670.6567212408539},{\"x\":942.6403026348695,\"y\":625.8755778159164},{\"x\":947.220050419739,\"y\":602.5795528135692},{\"x\":953.2602254120447,\"y\":571.8258099665255},{\"x\":955.7128562221404,\"y\":559.2927525290835}],\"rightPoint\":[{\"x\":2171.522764862415,\"y\":1080},{\"x\":1442.0855704044757,\"y\":744.0163958466491},{\"x\":1267.4675786202029,\"y\":665.0135620440459},{\"x\":1179.6982494393965,\"y\":625.8233061075888},{\"x\":1129.7651514571933,\"y\":603.6576822068582},{\"x\":1060.4275080994744,\"y\":573.0211818060529},{\"x\":1031.3619517048442,\"y\":560.227763231365}]}}}"}

2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 {}

2024/08/05 10:18:00 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:18:00 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:18:00 [error] decoding error: invalid indexed representation index 95 panic: runtime error: index out of range [0] with length 0

goroutine 19 [running]: github.com/vearne/grpcreplay/http2.parseSymbol({0x0?, 0x19639e0?}) /home/tester/go_workspace/grpcreplay/http2/processor.go:389 +0xf7 github.com/vearne/grpcreplay/http2.(PBMessageFinder).FindMethodInput(0xc0002f5860, {0x0, 0x0}) /home/tester/go_workspace/grpcreplay/http2/processor.go:346 +0x1ed github.com/vearne/grpcreplay/http2.(Processor).processFrameData(0xc00009b1c0, 0xc011c28b40) /home/tester/go_workspace/grpcreplay/http2/processor.go:156 +0x439 github.com/vearne/grpcreplay/http2.(Processor).ProcessFrame(0xbdd500?, 0xc0002f5830?) /home/tester/go_workspace/grpcreplay/http2/processor.go:102 +0x45 github.com/vearne/grpcreplay/http2.(Processor).ProcessTCPPkg(0xc00009b1c0) /home/tester/go_workspace/grpcreplay/http2/processor.go:73 +0x518 created by github.com/vearne/grpcreplay/plugin.NewRAWInput in goroutine 1 /home/tester/go_workspace/grpcreplay/plugin/input_raw.go:180 +0x7bd

10 hz in sec. the body of highFrameVehicleStatus in follow: { "highFrameVehicleStatus": { "vehicleName": "howo11_test", "timestampMs": "1722825215941", "planningTrajectoryOnCameraScreen": [{ "x": 935.7707370822919, "y": 661.1819027606092 }, { "x": 947.8241823603645, "y": 599.9305995053898 }, { "x": 952.2394360421201, "y": 577.516286352017 }, { "x": 954.5238712177461, "y": 565.923822189014 }], "taskState": { "header": { "timestampSec": 1.722825215E9, "moduleName": "planning", "sequenceNum": 1, "lidarTimestamp": "0", "cameraTimestamp": "0", "radarTimestamp": "0", "version": 1, "pubTimestampSec": 1.722825215E9 }, "taskMode": "FAIL", "commandId": -1, "blockRegion": [], "targetDist": 1000000.0, "targetUtmX": 0.0, "targetUtmY": 0.0, "targetPrecision": 0.0, "errorCode": "ROUTE_FAIL", "commandTimestamp": "0", "hmiTaskMode": "HMIUNKNOW", "hmiErrorCode": "HMI_UNKNOW_ERROR", "routeTaskId": "", "pathId": "", "cloudPathTaskMode": "CLOUDUNKNOW" }, "auxiliaryLane": { "leftPoint": [{ "x": -528.4106933209357, "y": 1080.0 }, { "x": 432.7471013108524, "y": 719.8254164699838 }, { "x": 613.576842529405, "y": 653.5464621630298 }, { "x": 710.3219485706621, "y": 618.6818189216101 }, { "x": 766.8136120690656, "y": 598.4816432084923 }, { "x": 846.5159764388881, "y": 570.154708247289 }, { "x": 880.2100588240829, "y": 558.2330572677541 }], "midPoint": [{ "x": 853.7293708588164, "y": 1080.0 }, { "x": 910.6617379133294, "y": 788.7924334894587 }, { "x": 933.8389719645023, "y": 670.6567212408539 }, { "x": 942.6403026348695, "y": 625.8755778159164 }, { "x": 947.220050419739, "y": 602.5795528135692 }, { "x": 953.2602254120447, "y": 571.8258099665255 }, { "x": 955.7128562221404, "y": 559.2927525290835 }], "rightPoint": [{ "x": 2171.522764862415, "y": 1080.0 }, { "x": 1442.0855704044757, "y": 744.0163958466491 }, { "x": 1267.4675786202029, "y": 665.0135620440459 }, { "x": 1179.6982494393965, "y": 625.8233061075888 }, { "x": 1129.7651514571933, "y": 603.6576822068582 }, { "x": 1060.4275080994744, "y": 573.0211818060529 }, { "x": 1031.3619517048442, "y": 560.227763231365 }] } } }

vearne commented 4 months ago

v0.1.0 tag console in terminal. 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 {} 1 ef6ba8ff-52d0-11ef-b74a-04421a24b909 1722824279526016300 {"headers":{":authority":"127.0.0.1:6789",":method":"POST",":path":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus",":scheme":"http","content-type":"application/grpc","grpc-accept-encoding":"gzip","grpc-timeout":"3999963u","te":"trailers","user-agent":"grpc-java-netty/1.38.0"},"method":"/xxxxxx.antenna.AntennaServer/PushHighFrameVehicleStatus","request":"{"highFrameVehicleStatus":{"vehicleName":"howo11_test","timestampMs":"1722824278954","planningTrajectoryOnCameraScreen":[{"x":935.7707370822919,"y":661.1819027606092},{"x":947.8241823603645,"y":599.9305995053898},{"x":952.2394360421201,"y":577.516286352017},{"x":954.5238712177461,"y":565.923822189014}],"taskState":{"header":{"timestampSec":1722824278,"moduleName":"planning","sequenceNum":38,"pubTimestampSec":1722824278},"taskMode":"FAIL","commandId":-1,"targetDist":1000000,"errorCode":"ROUTE_FAIL","commandTimestamp":"0"},"auxiliaryLane":{"leftPoint":[{"x":-528.4106933209357,"y":1080},{"x":432.7471013108524,"y":719.8254164699838},{"x":613.576842529405,"y":653.5464621630298},{"x":710.3219485706621,"y":618.6818189216101},{"x":766.8136120690656,"y":598.4816432084923},{"x":846.5159764388881,"y":570.154708247289},{"x":880.2100588240829,"y":558.2330572677541}],"midPoint":[{"x":853.7293708588164,"y":1080},{"x":910.6617379133294,"y":788.7924334894587},{"x":933.8389719645023,"y":670.6567212408539},{"x":942.6403026348695,"y":625.8755778159164},{"x":947.220050419739,"y":602.5795528135692},{"x":953.2602254120447,"y":571.8258099665255},{"x":955.7128562221404,"y":559.2927525290835}],"rightPoint":[{"x":2171.522764862415,"y":1080},{"x":1442.0855704044757,"y":744.0163958466491},{"x":1267.4675786202029,"y":665.0135620440459},{"x":1179.6982494393965,"y":625.8233061075888},{"x":1129.7651514571933,"y":603.6576822068582},{"x":1060.4275080994744,"y":573.0211818060529},{"x":1031.3619517048442,"y":560.227763231365}]}}}"}

2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:17:59 [info] create Http2Conn, MaxDynamicTableSize:4096 {}

2024/08/05 10:18:00 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:18:00 [info] create Http2Conn, MaxDynamicTableSize:4096 2024/08/05 10:18:00 [error] decoding error: invalid indexed representation index 95 panic: runtime error: index out of range [0] with length 0

goroutine 19 [running]: github.com/vearne/grpcreplay/http2.parseSymbol({0x0?, 0x19639e0?}) /home/tester/go_workspace/grpcreplay/http2/processor.go:389 +0xf7 github.com/vearne/grpcreplay/http2.(PBMessageFinder).FindMethodInput(0xc0002f5860, {0x0, 0x0}) /home/tester/go_workspace/grpcreplay/http2/processor.go:346 +0x1ed github.com/vearne/grpcreplay/http2.(Processor).processFrameData(0xc00009b1c0, 0xc011c28b40) /home/tester/go_workspace/grpcreplay/http2/processor.go:156 +0x439 github.com/vearne/grpcreplay/http2.(Processor).ProcessFrame(0xbdd500?, 0xc0002f5830?) /home/tester/go_workspace/grpcreplay/http2/processor.go:102 +0x45 github.com/vearne/grpcreplay/http2.(Processor).ProcessTCPPkg(0xc00009b1c0) /home/tester/go_workspace/grpcreplay/http2/processor.go:73 +0x518 created by github.com/vearne/grpcreplay/plugin.NewRAWInput in goroutine 1 /home/tester/go_workspace/grpcreplay/plugin/input_raw.go:180 +0x7bd

10 hz in sec. the body of highFrameVehicleStatus in follow: { "highFrameVehicleStatus": { "vehicleName": "howo11_test", "timestampMs": "1722825215941", "planningTrajectoryOnCameraScreen": [{ "x": 935.7707370822919, "y": 661.1819027606092 }, { "x": 947.8241823603645, "y": 599.9305995053898 }, { "x": 952.2394360421201, "y": 577.516286352017 }, { "x": 954.5238712177461, "y": 565.923822189014 }], "taskState": { "header": { "timestampSec": 1.722825215E9, "moduleName": "planning", "sequenceNum": 1, "lidarTimestamp": "0", "cameraTimestamp": "0", "radarTimestamp": "0", "version": 1, "pubTimestampSec": 1.722825215E9 }, "taskMode": "FAIL", "commandId": -1, "blockRegion": [], "targetDist": 1000000.0, "targetUtmX": 0.0, "targetUtmY": 0.0, "targetPrecision": 0.0, "errorCode": "ROUTE_FAIL", "commandTimestamp": "0", "hmiTaskMode": "HMIUNKNOW", "hmiErrorCode": "HMI_UNKNOW_ERROR", "routeTaskId": "", "pathId": "", "cloudPathTaskMode": "CLOUDUNKNOW" }, "auxiliaryLane": { "leftPoint": [{ "x": -528.4106933209357, "y": 1080.0 }, { "x": 432.7471013108524, "y": 719.8254164699838 }, { "x": 613.576842529405, "y": 653.5464621630298 }, { "x": 710.3219485706621, "y": 618.6818189216101 }, { "x": 766.8136120690656, "y": 598.4816432084923 }, { "x": 846.5159764388881, "y": 570.154708247289 }, { "x": 880.2100588240829, "y": 558.2330572677541 }], "midPoint": [{ "x": 853.7293708588164, "y": 1080.0 }, { "x": 910.6617379133294, "y": 788.7924334894587 }, { "x": 933.8389719645023, "y": 670.6567212408539 }, { "x": 942.6403026348695, "y": 625.8755778159164 }, { "x": 947.220050419739, "y": 602.5795528135692 }, { "x": 953.2602254120447, "y": 571.8258099665255 }, { "x": 955.7128562221404, "y": 559.2927525290835 }], "rightPoint": [{ "x": 2171.522764862415, "y": 1080.0 }, { "x": 1442.0855704044757, "y": 744.0163958466491 }, { "x": 1267.4675786202029, "y": 665.0135620440459 }, { "x": 1179.6982494393965, "y": 625.8233061075888 }, { "x": 1129.7651514571933, "y": 603.6576822068582 }, { "x": 1060.4275080994744, "y": 573.0211818060529 }, { "x": 1031.3619517048442, "y": 560.227763231365 }] } } }

add some defensive code, use v0.1.1 and try again @fireblackman

fireblackman commented 4 months ago

Does v0.1.1 create a tag? I use the main branch and see no more exception to exit the program

vearne commented 4 months ago

Does v0.1.1 create a tag? I use the main branch and see no more exception to exit the program

Just use the main branch is ok. @fireblackman