Do you write messages to one session from multiple threads?
I don't think so. I am using only 1 thread to do multiple write to the same session. Not explicitly using any thread pool. Will confirm and send you more details next week. (Currently on a vacation trip/camping.) Cheers, Hanson On 6/25/06, Trustin Lee <[EMAIL PROTECTED]> wrote:
Hello Hanson, On 6/24/06, Hanson Char <[EMAIL PROTECTED]> wrote: > > I think I found a bug in Mina 0.8.2 that leads to data corruption when > Mina is under high load. Specifically, in Mina 0.8.2, when invoked > from > > IOAdapter$SessionHandlerAdapter.dowrite() > > the > > Queue.isEmpty() > > is not properly synchronized. I also found a get around to this > problem with Java 5. More details here: > > http://hansonchar.blogspot.com/2006/06/bug-patch-mina-082.html > > Any comment? Is this already fixed in later releases ? Thank you for reporting a problem first of all. Do you write messages to one session from multiple threads? I have looked into our code and I found an obvious flaw both in encoding and decoding, in 0.8 and 0.9, when encoding/decoding code is executed at the same time. For encoding, it can happen very easily by user. But decoding problem won't happen because we're using a leader-followers thread pool. Decoding problem can appear if a user uses a different thread model such as a simplistic thread pool model other than L-F thread pool model. A possible solution is to synchronize the execution block using ProtocolEncoderOutput or ProtocolDecoderOutput. Otherwise, we can create a new output instances every time. I cannot decide which side is more efficient easily. Any idea? Trustin -- what we call human nature is actually human habit -- http://gleamynode.net/ -- PGP key fingerprints: * E167 E6AF E73A CBCE EE41 4A29 544D DE48 FE95 4E7E * B693 628E 6047 4F8F CFA4 455E 1C62 A7DC 0255 ECA6
