You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2019/02/14 17:21:14 UTC
[geode] branch develop updated: GEODE-6389 CI Failure:
ConcurrentWANPropagation_1_DUnitTest.testReplicatedSerialPropagation
This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new dd6cde7 GEODE-6389 CI Failure: ConcurrentWANPropagation_1_DUnitTest.testReplicatedSerialPropagation
dd6cde7 is described below
commit dd6cde77787b7922f16c6b42a0b6ce9ce874b025
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Wed Feb 13 16:03:29 2019 -0800
GEODE-6389 CI Failure: ConcurrentWANPropagation_1_DUnitTest.testReplicatedSerialPropagation
I found a place where we were releasing pooled buffers twice. The place
to release the buffer is in asyncClose but we were also doing it just
after calling that method in the run() method if the connection wasn't
thread-owned. Both GEODE-6389 and GEODE-6377 were using
conserve-sockets=true so I think this is the source of the problem.
The GEODE-6389 failure, in particular, could only have come from
improper use of the buffer pool because it occured in a MessageStreamer
and they don't involve multithreaded use of a buffer.
---
.../src/main/java/org/apache/geode/internal/net/SocketCloser.java | 2 +-
.../src/main/java/org/apache/geode/internal/tcp/Connection.java | 4 ----
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/internal/net/SocketCloser.java b/geode-core/src/main/java/org/apache/geode/internal/net/SocketCloser.java
index cfa3991..f083d50 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/net/SocketCloser.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/net/SocketCloser.java
@@ -169,7 +169,7 @@ public class SocketCloser {
*
* @param socket the socket to close
* @param address identifies who the socket is connected to
- * @param extra an optional Runnable with stuff to execute in the async thread
+ * @param extra an optional Runnable with stuff to execute before the socket is closed
*/
public void asyncClose(final Socket socket, final String address, final Runnable extra) {
if (socket == null || socket.isClosed()) {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
index 71b37a3..ae4f675 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/tcp/Connection.java
@@ -1584,10 +1584,6 @@ public class Connection implements Runnable {
}
asyncClose(false);
this.owner.removeAndCloseThreadOwnedSockets();
-
- if (this.isSharedResource()) {
- releaseInputBuffer();
- }
}
// make sure that if the reader thread exits we notify a thread waiting
// for the handshake.