[ https://issues.apache.org/jira/browse/GEODE-1751?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bruce Schuchardt updated GEODE-1751: ------------------------------------ Issue Type: Bug (was: Task) > Exception handling logic error in MsgStreamerList > ------------------------------------------------- > > Key: GEODE-1751 > URL: https://issues.apache.org/jira/browse/GEODE-1751 > Project: Geode > Issue Type: Bug > 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)