Bug #1582

Socket transport seems to damage transfered byte sequences

Added by J. Wienke over 10 years ago. Updated over 10 years ago.

Status:ClosedStart date:07/31/2013
Priority:NormalDue 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.

Also available in: Atom PDF