Bug #1582
Socket transport seems to damage transfered byte sequences
Status: | Closed | Start date: | 07/31/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Wienke | % Done: | 100% | |
Category: | Java | |||
Target version: | rsb-0.9 |
Description
I observed several errors in protobuf deserialization, e.g. like this one
WARNING: Error while reading a new notification from the bus connection. Shutting down. Most likely this is actually desired. com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either than the input has been truncated or that an embedded message misreported its own length. at com.google.protobuf.InvalidProtocolBufferException.truncatedMessage(Unknown Source) at com.google.protobuf.CodedInputStream.readRawBytes(Unknown Source) at com.google.protobuf.CodedInputStream.readBytes(Unknown Source) at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(Unknown Source) at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(Unknown Source) at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(Unknown Source) at com.google.protobuf.UnknownFieldSet$Builder.mergeFrom(Unknown Source) at com.google.protobuf.CodedInputStream.readGroup(Unknown Source) at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(Unknown Source) at com.google.protobuf.GeneratedMessage$Builder.parseUnknownField(Unknown Source) at rsb.protocol.NotificationType$Notification$Builder.mergeFrom(NotificationType.java:600) at rsb.protocol.NotificationType$Notification$Builder.mergeFrom(NotificationType.java:357) at com.google.protobuf.AbstractMessage$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessage$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessage$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessage$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(Unknown Source) at com.google.protobuf.AbstractMessage$Builder.mergeFrom(Unknown Source) at rsb.protocol.NotificationType$Notification.parseFrom(NotificationType.java:291) at rsb.transport.socket.BusConnectionBase.readNotification(BusConnectionBase.java:175) at rsb.transport.socket.BusBase$ReceiveThread.run(BusBase.java:110)
This seemed to be related to some remaining half-dead processes in the background.
History
#1 Updated by J. Wienke over 10 years ago
- Description updated (diff)
#2 Updated by J. Wienke over 10 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
This might be fixed now as we have fixed a possible race condition for sending notifications. Here, two sending threads could lead to interleaved sequences of length+data packages.