Bruce Schuchardt created GEODE-1751:
---------------------------------------

             Summary: Exception handling logic error in MsgStreamerList
                 Key: GEODE-1751
                 URL: https://issues.apache.org/jira/browse/GEODE-1751
             Project: Geode
          Issue Type: Task
          Components: messaging
            Reporter: Bruce Schuchardt


MsgStreamerList has some very questionable code in writeMessage().  Darrel 
added this comment:

{noformat}
    for (MsgStreamer streamer : this.streamers) {
      if (ex != null) {
        streamer.release();
        // TODO: shouldn't we call continue here?
        // It seems wrong to call writeMessage on a streamer we have just 
released.
        // But why do we call release on a streamer when we had an exception on 
one
        // of the previous streamer?
        // release clears the direct bb and returns it to the pool but leaves
        // it has the "buffer". THen we call writeMessage and it will use 
"buffer"
        // that has also been returned to the pool.
        // I think we only have a MsgStreamerList when a DS has a mix of 
versions
        // which usually is just during a rolling upgrade so that might be why 
we
        // haven't noticed this causing a bug.
      }
      try {
        result += streamer.writeMessage();
...
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to