[ 
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)

Reply via email to