wy96f commented on a change in pull request #2845: ARTEMIS-2336 Use zero copy 
to replicate journal/page/large message file (AGAIN)
URL: https://github.com/apache/activemq-artemis/pull/2845#discussion_r327998358
 
 

 ##########
 File path: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/NettyConnection.java
 ##########
 @@ -355,12 +373,24 @@ private boolean canWrite(final int requiredCapacity) {
       return canWrite;
    }
 
-   private Object getFileObject(RandomAccessFile raf, FileChannel fileChannel, 
long offset, int dataSize) {
-      if (channel.pipeline().get(SslHandler.class) == null) {
-         return new NonClosingDefaultFileRegion(fileChannel, offset, dataSize);
+   private Object getFileObject(FileChannel fileChannel, long offset, int 
dataSize) {
+      if (USE_FILE_REGION && channel.pipeline().get(SslHandler.class) == null) 
{
 
 Review comment:
   > I've proceed in the investigation and I see that we are failing here: 
https://github.com/netty/netty/blob/21b7e29ea7c211bb2b889bae3a0c6c5d9f60fb01/handler/src/main/java/io/netty/handler/stream/ChunkedWriteHandler.java#L320
   > 
   > And we won't get notified anymore on 
[ChunkedWriteHandler::channelWritabilityChanged](https://github.com/netty/netty/blob/21b7e29ea7c211bb2b889bae3a0c6c5d9f60fb01/handler/src/main/java/io/netty/handler/stream/ChunkedWriteHandler.java#L144)
   > 
   > It means to me that:
   > 
   > 1. The receiver side has stopped reading data ie effectively the channel 
is not writeable anymore
   > 2. The sender side (on Netty) has some bug while marking progress and/or 
propagate writeability changes
   
   
https://github.com/netty/netty/blob/21b7e29ea7c211bb2b889bae3a0c6c5d9f60fb01/handler/src/main/java/io/netty/handler/stream/ChunkedWriteHandler.java#L320
 would not be called as `doFlush` is running in netty executor and channel is 
still not writable after writing message.
   Should not be 1 bcs `netstat` showed no backlog. I found 
`channelWritabilityChanged` was never called during replication.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to