[jira] Updated: (ZOOKEEPER-737) some 4 letter words may fail with netcat (nc)

2010-05-04 Thread Mahadev konar (JIRA)

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

2010-05-03 Thread Benjamin Reed (JIRA)

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

2010-04-30 Thread Mahadev konar (JIRA)

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

2010-04-30 Thread Mahadev konar (JIRA)

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

2010-04-27 Thread Mahadev konar (JIRA)

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

2010-04-27 Thread Mahadev konar (JIRA)

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

2010-04-26 Thread Patrick Hunt (JIRA)

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

2010-04-26 Thread Mahadev konar (JIRA)

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

2010-04-26 Thread Mahadev konar (JIRA)

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

2010-04-26 Thread Patrick Hunt (JIRA)

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

2010-04-22 Thread Patrick Hunt (JIRA)

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

2010-04-22 Thread Patrick Hunt (JIRA)

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

2010-04-20 Thread Mahadev konar (JIRA)

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

2010-04-20 Thread Mahadev konar (JIRA)

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

2010-04-20 Thread Mahadev konar (JIRA)

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