[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Resolved (was: Patch Available) Resolution: Fixed I just committed this to trunk and 3.3 branch. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Reed updated ZOOKEEPER-737: Hadoop Flags: [Reviewed] > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Open (was: Patch Available) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch this patch makes all commands to run as threads. Also, this includes refactoring of the command code into seperate classes. I am really looking forward to Netty, this is just getting too hairy in NIOServerCnxn! > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch Updated the patch to use blocking IO for commands so that we dont have any spinning issues with the socket channels. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Open (was: Patch Available) Seems like this could infinite loop in some bad cases: sendbuffersync while(bb.remaining() != 0) { if (sock != null) { sock.write(bb); } } say the client requests, then never reads the response (and the response is very large, so it fills up the tcp buffers and such). > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch addressed pat's comments on the logging and try and finally block. If cancel key fails, the socket will be closed later to make sure there is no resource leak. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Open (was: Patch Available) Mahadev, this looks great, a few issues I noticed: If the pwriter flush/close calls fail for any reason we will not close the socket. In cleanupWriterSocket I think you should have a try/finally around the pwriter conditional block. This will ensure that no matter what happens we will close the socket. What happens if cancel key fails? Is this really a debug level message? What would happen if cancel fails but later the socket is explicitly closed (after command returns)? +if (k != null) { +try { +k.cancel(); +} catch(Exception e) { +LOG.debug("Error cancelling command selection key ", e); +} Are these errors or info messages? Seems like both are LOG.error? (ie we'd really want to know if this happened) LOG.info("Error sending data synchronously ", ie); LOG.info("Error closing a command socket ", e); > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Open (was: Patch Available) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch changed (0x0) for interest ops to be (0), to keep it consistent with how we print interest ops. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Open (was: Patch Available) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Status: Open (was: Patch Available) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patrick Hunt updated ZOOKEEPER-737: --- Attachment: ZOOKEEPER-737.patch This updated patch verifies that we can support the case where the write channel is closed (client perspective) before the server has fully responded. This fails prior to Mahadev's fix being applied. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch, > ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch this patch fixes the issue. The problem was the cons wasnt returning anything if there are only 4 letters commands as connections. This fixes the issue to return stats for that. I will be adding test case shortly. > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch, ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Open (was: Patch Available) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Status: Patch Available (was: Open) > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Assignee: Mahadev konar >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)
[ https://issues.apache.org/jira/browse/ZOOKEEPER-737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mahadev konar updated ZOOKEEPER-737: Attachment: ZOOKEEPER-737.patch this patch fixes the issue. - it removes the selection key from the selector via calling selectionkey.cancel() - sends the output of the stat command via the socket and does not use the selector for sending it - closes the socket appropriately after the server is done sending the response to the client > some 4 letter words may fail with netcat (nc) > - > > Key: ZOOKEEPER-737 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-737 > Project: Zookeeper > Issue Type: Bug > Components: server >Affects Versions: 3.3.0 >Reporter: Patrick Hunt >Priority: Blocker > Fix For: 3.3.1, 3.4.0 > > Attachments: ZOOKEEPER-737.patch > > > nc closes the write channel as soon as it's sent it's information, for > example "echo stat|nc localhost 2181" > in general this is fine, however the server code will close the socket as > soon as it receives notice that nc has > closed it's write channel. if not all the 4 letter word result has been > written back to the client yet, this will cause > some or all of the result to be lost - ie the client will not see the full > result. this was introduced in 3.3.0 as part > of a change to reduce blocking of the selector by long running 4letter words. > here's an example of the logs from the server during this > echo -n stat | nc localhost 2181 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioservercnxn$fact...@251] - > Accepted socket connection from /127.0.0.1:42179 > 2010-04-09 21:55:36,124 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@968] - Processing > stat command from /127.0.0.1:42179 > 2010-04-09 21:55:36,125 - WARN > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@606] - > EndOfStreamException: Unable to read additional data from client sessionid > 0x0, likely client has closed socket > 2010-04-09 21:55:36,125 - INFO > [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:nioserverc...@1286] - Closed > socket connection for client /127.0.0.1:42179 (no session established for > client) > [ph...@gsbl90850 zookeeper-3.3.0]$ 2010-04-09 21:55:36,126 - ERROR > [Thread-15:nioserverc...@422] - Unexpected Exception: > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:59) > at > org.apache.zookeeper.server.NIOServerCnxn.sendBuffer(NIOServerCnxn.java:395) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:907) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) > 2010-04-09 21:55:36,126 - ERROR [Thread-15:nioservercnxn$factor...@82] - > Thread Thread[Thread-15,5,main] died > java.nio.channels.CancelledKeyException > at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55) > at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:64) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.wakeup(NIOServerCnxn.java:927) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.checkFlush(NIOServerCnxn.java:909) > at > org.apache.zookeeper.server.NIOServerCnxn$SendBufferWriter.flush(NIOServerCnxn.java:945) > at java.io.BufferedWriter.flush(BufferedWriter.java:236) > at java.io.PrintWriter.flush(PrintWriter.java:276) > at > org.apache.zookeeper.server.NIOServerCnxn$2.run(NIOServerCnxn.java:1089) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.