From dev-return-78191-archive-asf-public=cust-asf.ponee.io@zookeeper.apache.org Wed Feb 6 13:34:20 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 0163818067C for ; Wed, 6 Feb 2019 14:34:19 +0100 (CET) Received: (qmail 35458 invoked by uid 500); 6 Feb 2019 13:34:12 -0000 Mailing-List: contact dev-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list dev@zookeeper.apache.org Received: (qmail 33188 invoked by uid 99); 6 Feb 2019 13:34:11 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Feb 2019 13:34:11 +0000 From: GitBox To: dev@zookeeper.apache.org Subject: [GitHub] normanmaurer commented on a change in pull request #753: ZOOKEEPER-3204: Reconfig tests are constantly failing on 3.5 after applying Java 11 fix Message-ID: <154946005099.25671.9500469099748517804.gitbox@gitbox.apache.org> Date: Wed, 06 Feb 2019 13:34:10 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit normanmaurer commented on a change in pull request #753: ZOOKEEPER-3204: Reconfig tests are constantly failing on 3.5 after applying Java 11 fix URL: https://github.com/apache/zookeeper/pull/753#discussion_r254181930 ########## File path: zookeeper-server/src/test/java/org/apache/zookeeper/server/NettyServerCnxnTest.java ########## @@ -105,6 +116,66 @@ public void testClientResponseStatsUpdate() throws IOException, InterruptedExcep assertThat("Last client response size should be greater than 0 after client request was performed", clientResponseStats.getLastBufferSize(), greaterThan(0)); + + byte[] contents = zk.getData("/a", null, null); + assertArrayEquals("unexpected data", "test".getBytes(), contents); + } + } + + @Test + public void testServerSideThrottling() throws IOException, InterruptedException, KeeperException { + try (ZooKeeper zk = createClient()) { + BufferStats clientResponseStats = serverFactory.getZooKeeperServer().serverStats().getClientResponseStats(); + assertThat("Last client response size should be initialized with INIT_VALUE", + clientResponseStats.getLastBufferSize(), equalTo(BufferStats.INIT_VALUE)); + + zk.create("/a", "test".getBytes(), Ids.OPEN_ACL_UNSAFE, + CreateMode.PERSISTENT); + + assertThat("Last client response size should be greater than 0 after client request was performed", + clientResponseStats.getLastBufferSize(), greaterThan(0)); + + for (final ServerCnxn cnxn : serverFactory.cnxns) { + final NettyServerCnxn nettyCnxn = ((NettyServerCnxn) cnxn); + // Disable receiving data for all open connections ... + nettyCnxn.disableRecv(); + // ... then force a throttled read after 1 second (this puts the read into queuedBuffer) ... + nettyCnxn.getChannel().eventLoop().schedule(new Runnable() { + @Override + public void run() { + nettyCnxn.getChannel().read(); + } + }, 1, TimeUnit.SECONDS); + + // ... and finally disable throttling after 2 seconds. + nettyCnxn.getChannel().eventLoop().schedule(new Runnable() { + @Override + public void run() { + nettyCnxn.enableRecv(); + } + }, 2, TimeUnit.SECONDS); + } + + byte[] contents = zk.getData("/a", null, null); + assertArrayEquals("unexpected data", "test".getBytes(), contents); Review comment: nit: `getBytes(Charset)` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: users@infra.apache.org With regards, Apache Git Services