geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce Schuchardt (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GEODE-1751) Exception handling logic error in MsgStreamerList
Date Wed, 10 Aug 2016 23:24:20 GMT
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)

Mime
View raw message