[geode-benchmarks] annotated tag rel/v1.15.1.RC1 updated (c8199513 -> d298757a)

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to annotated tag rel/v1.15.1.RC1
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


*** WARNING: tag rel/v1.15.1.RC1 was modified! ***

from c8199513 (commit)
  to d298757a (tag)
 tagging c819951364174f78c70868dd97a4a8007d7577b6 (commit)
 replaces rel/v1.15.0
  by Mario Kevo
  on Thu Sep 29 14:05:56 2022 +0200

- Log -
Release candidate 1.15.1.RC1
-BEGIN PGP SIGNATURE-

iQEzBAABCgAdFiEEGjaUoUSIQPw7ETeyyuNH1a4uXJMFAmM1iiQACgkQyuNH1a4u
XJOPTAgAtrpHFDP1PdwKE8CBLbOaS6BPHUrdrpJ/EKKP1XWubrxqw5Rqnk63iIzP
oIR5+DR+48fCAO+nBIC30q/h650O3xtPBKYDbEcn5NIOtf0ecflnmPIFzFIGmo4F
ERalpcrQ6Efb8CSh7lE5e6bAg5/pxMHTmLDXVVa7Qcg3xPHf38O7Yv/2vw+H/NVt
fXZHsVz9XcmANer7b956j36UUrWTeRw/HRt4UYxpBfBpliK2C+/wNWZZAjERtCzg
Potxp4+nqslGu0QR/ZXfu7UpqKW9Ba+iA2pnFCgWcpPEKeGxP93QmAQ9o6jO7M5m
/p03AvtIzRJUPfvP/hsCCJ2cAKRX4w==
=9pBI
-END PGP SIGNATURE-
---


No new revisions were added by this update.

Summary of changes:



[geode-native] annotated tag rel/v1.15.1.RC1 updated (edc8a042c -> f939b172a)

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to annotated tag rel/v1.15.1.RC1
in repository https://gitbox.apache.org/repos/asf/geode-native.git


*** WARNING: tag rel/v1.15.1.RC1 was modified! ***

from edc8a042c (commit)
  to f939b172a (tag)
 tagging edc8a042c8be8f9951a86ad7e5b21b1cb15e840c (commit)
 replaces rel/v1.15.0
  by Mario Kevo
  on Thu Sep 29 14:05:55 2022 +0200

- Log -
Release candidate 1.15.1.RC1
-BEGIN PGP SIGNATURE-

iQEzBAABCgAdFiEEGjaUoUSIQPw7ETeyyuNH1a4uXJMFAmM1iiMACgkQyuNH1a4u
XJNlKgf/Y+g2GDC45f2sj5PldsJYxgthqUzoCeuwWJCpyLwnvBQtFC9AWDnscEoD
TO567UudNF7+WQI5sOQ0tT17kGYRqzuUhheX+jeojbGesHbcON1f4e89jGIEO/YC
9e4pY4ThozOzK6xAzU6TFWhoPwnZ8WNl9ixAx1uy+Zh6O7C0e7NCeNGD4i1+h5dn
XE9dLmC/uX/WQ0gHtggKiLilkUCygQQxEmFU2kWEO7hQRL0zQh6EVEHMcb0L1LN3
+UWtX5EFDGvLB1AxSuImiSgryPTKbzCwcp6n0OH5osdgUKNo0C8J47uPhNc4XcTD
XaO2fSAHfGSF7Jtl8DxwtE0wLY/L8Q==
=zJbB
-END PGP SIGNATURE-
---


No new revisions were added by this update.

Summary of changes:



[geode] annotated tag rel/v1.15.1.RC1 updated (d1910cf1ee -> 4fc009b8dc)

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to annotated tag rel/v1.15.1.RC1
in repository https://gitbox.apache.org/repos/asf/geode.git


*** WARNING: tag rel/v1.15.1.RC1 was modified! ***

from d1910cf1ee (commit)
  to 4fc009b8dc (tag)
 tagging d1910cf1ee18aae749da3553b3537d74b7ef5cae (commit)
 replaces rel/v1.15.0
  by Mario Kevo
  on Thu Sep 29 14:05:54 2022 +0200

- Log -
Release candidate 1.15.1.RC1
-BEGIN PGP SIGNATURE-

iQEzBAABCgAdFiEEGjaUoUSIQPw7ETeyyuNH1a4uXJMFAmM1iiIACgkQyuNH1a4u
XJMACQf/c9ZjDtoREp9BwzA35QBTj525LAHUQWNuU2WbGFcBjI/ExlMC6c5smoGw
/M9Ms77nHRScxDILAms3tnigK7MD9bz/1GjpkMotU14uJjfdljeW/jgFsiuqsN8H
j5pUx9sVJBryKQQkr6Wvm00M4F3TFq03wFuXvAf5xZl8grC7EfnIK5QRoyV6M8ya
LOdtz3nfYQ9V2R7V3L0SLiEI0SIpPHalJpvLARIJjJnnxLPmS3n6WD1UMnMJroe/
ooLLIQHWzFF1bTs+MH6LZoSxbsGtYBT4KBv/tbFHRhfEx6DZOLLS1pbFoId2q7of
OssL4oosMWMeR0eWy3R4kWhwIJcAlQ==
=Jtqb
-END PGP SIGNATURE-
---


No new revisions were added by this update.

Summary of changes:



[geode-examples] branch support/1.15 updated: GEODE-10401: Bump version to 1.15.1

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode-examples.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
 new b45260f  GEODE-10401: Bump version to 1.15.1
b45260f is described below

commit b45260fe9cb14fc4abc36d3343b9b1886e9b5329
Author: Mario Kevo 
AuthorDate: Thu Sep 29 14:22:28 2022 +0200

GEODE-10401: Bump version to 1.15.1

As part of the Geode Release Process, the geode-examples build number
must be rolled forward as work begins on the next release
---
 gradle.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle.properties b/gradle.properties
index e38569a..4565ddc 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 version = 1.15.1-build.0
-geodeVersion = 1.15.1
+geodeVersion = 1.15.+
 
 # release properties, set these on the command line to validate against
 # a release candidate



[geode-examples] annotated tag rel/v1.15.1.RC1 updated (4daf50d -> 611f8b8)

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to annotated tag rel/v1.15.1.RC1
in repository https://gitbox.apache.org/repos/asf/geode-examples.git


*** WARNING: tag rel/v1.15.1.RC1 was modified! ***

from 4daf50d  (commit)
  to 611f8b8  (tag)
 tagging 4daf50dd17c10302d6da240e5cc93bb362a9d4b5 (commit)
 replaces rel/v1.15.0
  by Mario Kevo
  on Thu Sep 29 14:05:55 2022 +0200

- Log -
Release candidate 1.15.1.RC1
-BEGIN PGP SIGNATURE-

iQEzBAABCgAdFiEEGjaUoUSIQPw7ETeyyuNH1a4uXJMFAmM1iiMACgkQyuNH1a4u
XJNPRAgAgqWPg/L4xJ0JnC8snjDvtbTKNN5SPPF4wJjzQSWAu5xYUA4jzFefvehw
fsa1SBs9QhEBhQEkWW3AfhqO8fhn2GdYq8OvNgXMBEkTKuNzHzN82j2f0OepfyZS
0vto8xSHClr3afi/7aEi+vX63T8Jz7Bq63LJsxXH8cOjADqrpAhdyhXx4ilcKuv1
690+Lrixf7yMSr1ffwUKVXC9gUw0I2CoQTQLDIYomMGY/6kkwy1lGIWyMKpNSref
6V3raescC/moKq//dXP7+WWJPjXVi7RbQNeX6vMbEsOMJq2GX3VPT5/bfhv0hXS3
qGUhOeOy+DtaBq0f3kx3/roTaCS5EQ==
=ujtx
-END PGP SIGNATURE-
---


No new revisions were added by this update.

Summary of changes:



[geode-examples] 01/02: GEODE-10401: Bump version to 1.15.1

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode-examples.git

commit 4daf50dd17c10302d6da240e5cc93bb362a9d4b5
Author: Mario Kevo 
AuthorDate: Thu Sep 29 14:00:21 2022 +0200

GEODE-10401: Bump version to 1.15.1

As part of the Geode Release Process, the geode-examples build number
must be rolled forward as work begins on the next release
---
 gradle.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gradle.properties b/gradle.properties
index bf8f18f..c00a9cb 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,8 +14,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-version = 1.15.0-build.0
-geodeVersion = 1.15.+
+version = 1.15.1-build.0
+geodeVersion = 1.15.1
 
 # release properties, set these on the command line to validate against
 # a release candidate



[geode-examples] branch support/1.15 updated (85c181d -> 2cfa6c1)

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode-examples.git


from 85c181d  Revert "GEODE-10089: Set temporary staging repo"
 new 4daf50d  GEODE-10401: Bump version to 1.15.1
 new 2cfa6c1  GEODE-10401: Set temporary staging repo

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gradle.properties | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)



[geode-examples] 02/02: GEODE-10401: Set temporary staging repo

2022-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode-examples.git

commit 2cfa6c121bf453663ad08995a6ccb9d4a71ebd41
Author: Mario Kevo 
AuthorDate: Thu Sep 29 14:22:23 2022 +0200

GEODE-10401: Set temporary staging repo

This serves two purposes: it gives the RC pipeline a way to get the
nexus staging repo id needed for various tests, and it gives the
Jenkins server a valid configuration during the voting period.
---
 gradle.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gradle.properties b/gradle.properties
index c00a9cb..e38569a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -19,8 +19,8 @@ geodeVersion = 1.15.1
 
 # release properties, set these on the command line to validate against
 # a release candidate
-geodeRepositoryUrl =
-geodeReleaseUrl =
+geodeRepositoryUrl = 
https://repository.apache.org/content/repositories/orgapachegeode-1139
+geodeReleaseUrl = https://dist.apache.org/repos/dist/dev/geode/1.15.1.RC1
 
 # dependency versions not found in geode-all-bom
 micrometerVersion = 1.2.1



svn commit: r57083 - in /dev/geode: ./ 1.15.1.RC1/

2022-09-29 Thread mkevo
Author: mkevo
Date: Thu Sep 29 12:22:23 2022
New Revision: 57083

Log:
GEODE-10401: Release Apache Geode 1.15.1.RC1

Publish the source, binary, and checksum artifacts to ASF svn server,
from which they will be picked up and published within 15 minutes to
the URLs on https://geode.apache.org/releases/

Added:
dev/geode/1.15.1.RC1/
dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz   (with props)
dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.asc
dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.sha256
dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz   (with props)
dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.asc
dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.sha256
dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz   (with props)
dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz.asc
dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz.sha256
dev/geode/1.15.1.RC1/apache-geode-examples-1.15.1-src.tgz   (with props)
dev/geode/1.15.1.RC1/apache-geode-examples-1.15.1-src.tgz.asc
dev/geode/1.15.1.RC1/apache-geode-examples-1.15.1-src.tgz.sha256
dev/geode/1.15.1.RC1/apache-geode-native-1.15.1-src.tgz   (with props)
dev/geode/1.15.1.RC1/apache-geode-native-1.15.1-src.tgz.asc
dev/geode/1.15.1.RC1/apache-geode-native-1.15.1-src.tgz.sha256
Modified:
dev/geode/KEYS

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz
==
Binary file - no diff available.

Propchange: dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz
--
svn:mime-type = application/octet-stream

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.asc
==
--- dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.asc (added)
+++ dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.asc Thu Sep 29 12:22:23 
2022
@@ -0,0 +1,11 @@
+-BEGIN PGP SIGNATURE-
+
+iQEzBAABCgAdFiEEGjaUoUSIQPw7ETeyyuNH1a4uXJMFAmM1iiQACgkQyuNH1a4u
+XJOX4wgAgqkvNMUKDZ2DCMChw6DmcRjuM1kZtdFpTlYN0pO5APh3RTUfKWUj0Eq8
+WjKd61gUmZyIczv81IrqNgzlXZx+5gwmOK8E8JPNE948V0qvWIBjA7tUMIJbs21M
+/G9u1wBtoSY627csvM+v4awxy+tYv/JMPxhri3uP5creMHq6tPtyur1hHVR3keYE
+7VVB885aQR1/8L6oU2HiUG34Jb+fSxlFepXRQmbKhC50nm6pB1s2TK4uF3lz1gBG
+vRQS7YqdBp54UtiZWH9aSePyQCDwP468jPWtWTzt4X+nJEGvgSI+0AiX99HvZx+n
+Cz99cbKiPC/j01olisZDuKD21USA1Q==
+=pjLU
+-END PGP SIGNATURE-

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.sha256
==
--- dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.sha256 (added)
+++ dev/geode/1.15.1.RC1/apache-geode-1.15.1-src.tgz.sha256 Thu Sep 29 12:22:23 
2022
@@ -0,0 +1 @@
+f391e421c90ac95463373101c8c06fecc3d10db0f38de413884e03110048 
*apache-geode-1.15.1-src.tgz

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz
==
Binary file - no diff available.

Propchange: dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz
--
svn:mime-type = application/octet-stream

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.asc
==
--- dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.asc (added)
+++ dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.asc Thu Sep 29 12:22:23 2022
@@ -0,0 +1,11 @@
+-BEGIN PGP SIGNATURE-
+Version: BCPG v1.64
+
+iQEcBAABCgAGBQJjNYmmAAoJEMrjR9WuLlyTjSUIAIqTuTdMJ6oVHM2hI5NXYrL8
+fgKy5YM2Tg4OeZuIcEVRpSpqXUjTwc6A4GcpFxXOVa328Czyb3IR9OsCQKLoiHTe
+VNfiNzCYZ1rFKXxJepPvZfgvAbXH51W4hl9csueIOasPMrY1RJ1JL7N5GpCA7kxb
+FN5IRL+bAegPRhPEqJ0Xwx0EMk28gK7HZ9D41sVyL5Mb9yvh6OxLOyfQOZ/P49fP
+glxoA5x2XsY1u/CNpkgTvjbxC1s3kuu7gHQtnBKv5s1tfSVYt8RCoM/s7WPqn4AC
+bbvhuCmLMJsCEPE5E0mSJ92HkVSaSCJvrw6H9QR/iKQqoNINsQbDydmvlmkN9wg=
+=WZ0j
+-END PGP SIGNATURE-

Added: dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.sha256
==
--- dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.sha256 (added)
+++ dev/geode/1.15.1.RC1/apache-geode-1.15.1.tgz.sha256 Thu Sep 29 12:22:23 2022
@@ -0,0 +1 @@
+2668970982d373ef42cff5076e7073b03e82c8e2fcd7757d5799b2506e265d57 
*apache-geode-1.15.1.tgz

Added: dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz
==
Binary file - no diff available.

Propchange: dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz
--
svn:mime-type = application/octet-stream

Added: dev/geode/1.15.1.RC1/apache-geode-benchmarks-1.15.1-src.tgz.asc
==
--- dev/geode/1.15.1.RC1

[geode] branch develop updated: GEODE-10395 remove locks from List if dlock.acquireTryLocks return false (#7846)

2022-09-20 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 4cb75ae484 GEODE-10395 remove locks from List if dlock.acquireTryLocks 
return false (#7846)
4cb75ae484 is described below

commit 4cb75ae4848250606db2f4b14300601755586192
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Tue Sep 20 19:04:08 2022 +0200

GEODE-10395 remove locks from List if dlock.acquireTryLocks return false 
(#7846)
---
 .../internal/cache/locks/TXLockServiceImpl.java| 26 ++--
 .../internal/StartupMessageJUnitTest.java  |  4 +-
 .../cache/locks/TXLockServiceImplTest.java | 71 ++
 3 files changed, 95 insertions(+), 6 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockServiceImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockServiceImpl.java
index f7e7aebe0f..44b9c9f440 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockServiceImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/locks/TXLockServiceImpl.java
@@ -22,6 +22,7 @@ import java.util.Set;
 
 import org.apache.logging.log4j.Logger;
 
+import org.apache.geode.annotations.VisibleForTesting;
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CommitConflictException;
 import org.apache.geode.distributed.internal.InternalDistributedSystem;
@@ -53,7 +54,7 @@ public class TXLockServiceImpl extends TXLockService {
   /**
* List of active txLockIds
*/
-  protected List txLockIdList = new ArrayList();
+  protected final List txLockIdList = new ArrayList<>();
 
   /**
* True if grantor recovery is in progress; used to keep 
release from waiting for
@@ -70,6 +71,14 @@ public class TXLockServiceImpl extends TXLockService {
   /** The distributed system for cancellation checks. */
   private final InternalDistributedSystem system;
 
+  @VisibleForTesting
+  TXLockServiceImpl(InternalDistributedSystem sys, 
StoppableReentrantReadWriteLock recoveryLock,
+  DLockService dlock) {
+system = sys;
+this.recoveryLock = recoveryLock;
+this.dlock = dlock;
+  }
+
   TXLockServiceImpl(String name, InternalDistributedSystem sys) {
 if (sys == null) {
   throw new IllegalStateException(
@@ -129,10 +138,16 @@ public class TXLockServiceImpl extends TXLockService {
   if (gotLocks) { // ...otherwise race can occur between tryLocks and 
readLock
 acquireRecoveryReadLock();
   } else if (keyIfFail[0] != null) {
+synchronized (txLockIdList) {
+  txLockIdList.remove(txLockId);
+}
 throw new CommitConflictException(
 String.format("Concurrent transaction commit detected %s",
 keyIfFail[0]));
   } else {
+synchronized (txLockIdList) {
+  txLockIdList.remove(txLockId);
+}
 throw new CommitConflictException(
 String.format("Failed to request try locks from grantor: %s",
 dlock.getLockGrantorId()));
@@ -225,9 +240,7 @@ public class TXLockServiceImpl extends TXLockService {
 txLockId));
   }
 
-  dlock.releaseTryLocks(txLockId, () -> {
-return recovering;
-  });
+  dlock.releaseTryLocks(txLockId, () -> recovering);
 
   txLockIdList.remove(txLockId);
   releaseRecoveryReadLock();
@@ -277,4 +290,9 @@ public class TXLockServiceImpl extends TXLockService {
 dlock.destroyAndRemove();
   }
 
+  @VisibleForTesting
+  public int getTxLockIdList() {
+return this.txLockIdList.size();
+  }
+
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/distributed/internal/StartupMessageJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/distributed/internal/StartupMessageJUnitTest.java
index d017b96ad9..b51453a3a4 100644
--- 
a/geode-core/src/test/java/org/apache/geode/distributed/internal/StartupMessageJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/distributed/internal/StartupMessageJUnitTest.java
@@ -95,7 +95,7 @@ public class StartupMessageJUnitTest {
 startupMessage.process(distributionManager);
 
 assertThat(
-startupMessage.getProcessorType() == 
OperationExecutors.WAITING_POOL_EXECUTOR);
+
startupMessage.getProcessorType()).isEqualTo(OperationExecutors.WAITING_POOL_EXECUTOR);
   }
 
   @Test
@@ -111,6 +111,6 @@ public class StartupMessageJUnitTest {
 
 assertThat(
 startupResponseMessage
-.getProcessorType() == OperationExecutors.WAITING_POOL_EXECUTOR);
+
.getProcessorType()).isEqualTo(OperationExecutors.WAITING_POOL_EXECUTOR);
   }
 }
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/locks/TXLockServiceImplTest.java
 
b/geode-core/src/test/java

[geode] branch support/1.15 updated (62e60b5062 -> d1910cf1ee)

2022-09-16 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


from 62e60b5062 GEODE-10420: Finish distribute() work if interrupted (#7854)
 new bc47b30c0b GEODE-10412: Clear expired tombstones during region destroy 
(#7838)
 new d1910cf1ee GEODE-10401: Configurable .drf recovery HashMap overflow 
threshold (#7828)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../cache/versions/TombstoneDUnitTest.java | 42 +++
 .../apache/geode/internal/cache/DiskStoreImpl.java | 61 +++--
 .../geode/internal/cache/TombstoneService.java |  6 ++-
 .../OplogEntryIdSetDrfHashSetThresholdTest.java| 62 ++
 .../geode/internal/cache/TombstoneServiceTest.java | 46 +---
 5 files changed, 193 insertions(+), 24 deletions(-)
 create mode 100644 
geode-core/src/test/java/org/apache/geode/internal/cache/OplogEntryIdSetDrfHashSetThresholdTest.java



[geode] 02/02: GEODE-10401: Configurable .drf recovery HashMap overflow threshold (#7828)

2022-09-16 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git

commit d1910cf1ee18aae749da3553b3537d74b7ef5cae
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Wed Jul 27 15:08:53 2022 +0200

GEODE-10401: Configurable .drf recovery HashMap overflow threshold (#7828)

Configurable with the jvm parameter:

gemfire.disk.drfHashMapOverflowThreshold

Default value: 805306368

When configured threshold value is reached, then server will overflow to
the new hashmap during the recovery of .drf files. Warning: If you set
threshold parameter over 805306368, then uneeded delay will happen due
to bug in fastutil dependency.
---
 .../apache/geode/internal/cache/DiskStoreImpl.java | 61 +++--
 .../OplogEntryIdSetDrfHashSetThresholdTest.java| 62 ++
 2 files changed, 107 insertions(+), 16 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index 9dee1c1c77..b544ca065f 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -180,6 +180,13 @@ public class DiskStoreImpl implements DiskStore {
   public static final String RECOVER_VALUES_SYNC_PROPERTY_NAME =
   GeodeGlossary.GEMFIRE_PREFIX + "disk.recoverValuesSync";
 
+  /**
+   * When configured threshold value is reached, then server will overflow to
+   * the new hashmap during the recovery of .drf files
+   */
+  public static final String DRF_HASHMAP_OVERFLOW_THRESHOLD_NAME =
+  GeodeGlossary.GEMFIRE_PREFIX + "disk.drfHashMapOverflowThreshold";
+
   /**
* Allows recovering values for LRU regions. By default values are not 
recovered for LRU regions
* during recovery.
@@ -187,6 +194,10 @@ public class DiskStoreImpl implements DiskStore {
   public static final String RECOVER_LRU_VALUES_PROPERTY_NAME =
   GeodeGlossary.GEMFIRE_PREFIX + "disk.recoverLruValues";
 
+  static final long DRF_HASHMAP_OVERFLOW_THRESHOLD_DEFAULT = 805306368;
+  static final long DRF_HASHMAP_OVERFLOW_THRESHOLD =
+  Long.getLong(DRF_HASHMAP_OVERFLOW_THRESHOLD_NAME, 
DRF_HASHMAP_OVERFLOW_THRESHOLD_DEFAULT);
+
   boolean RECOVER_VALUES = 
getBoolean(DiskStoreImpl.RECOVER_VALUE_PROPERTY_NAME, true);
 
   boolean RECOVER_VALUES_SYNC = 
getBoolean(DiskStoreImpl.RECOVER_VALUES_SYNC_PROPERTY_NAME, false);
@@ -3525,31 +3536,49 @@ public class DiskStoreImpl implements DiskStore {
   }
 
   try {
-if (id > 0 && id <= 0xL) {
-  currentInts.get().add((int) id);
+if (shouldOverflow(id)) {
+  overflowToNewHashMap(id);
 } else {
-  currentLongs.get().add(id);
+  if (id > 0 && id <= 0xL) {
+this.currentInts.get().add((int) id);
+  } else {
+this.currentLongs.get().add(id);
+  }
 }
   } catch (IllegalArgumentException illegalArgumentException) {
 // See GEODE-8029.
-// Too many entries on the accumulated drf files, overflow and 
continue.
+// Too many entries on the accumulated drf files, overflow next 
[Int|Long]OpenHashSet and
+// continue.
+overflowToNewHashMap(id);
+  }
+}
+
+boolean shouldOverflow(final long id) {
+  if (id > 0 && id <= 0xL) {
+return currentInts.get().size() == DRF_HASHMAP_OVERFLOW_THRESHOLD;
+  } else {
+return currentLongs.get().size() == DRF_HASHMAP_OVERFLOW_THRESHOLD;
+  }
+}
+
+void overflowToNewHashMap(final long id) {
+  if (DRF_HASHMAP_OVERFLOW_THRESHOLD == 
DRF_HASHMAP_OVERFLOW_THRESHOLD_DEFAULT) {
 logger.warn(
 "There is a large number of deleted entries within the disk-store, 
please execute an offline compaction.");
+  }
 
-// Overflow to the next [Int|Long]OpenHashSet and continue.
-if (id > 0 && id <= 0xL) {
-  IntOpenHashSet overflownHashSet = new IntOpenHashSet((int) 
INVALID_ID);
-  allInts.add(overflownHashSet);
-  currentInts.set(overflownHashSet);
+  if (id > 0 && id <= 0xL) {
+IntOpenHashSet overflownHashSet = new IntOpenHashSet((int) INVALID_ID);
+allInts.add(overflownHashSet);
+currentInts.set(overflownHashSet);
 
-  currentInts.get().add((int) id);
-} else {
-  LongOpenHashSet overflownHashSet = new LongOpenHashSet((int) 
INVALID_ID);
-  allLongs.add(overflownHashSet);
-  currentLongs.set(overflownHashSet);
+currentInts.ge

[geode] 01/02: GEODE-10412: Clear expired tombstones during region destroy (#7838)

2022-09-16 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git

commit bc47b30c0bb57a9c9437234a8fc8530f1daf14bc
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Mon Aug 29 17:08:26 2022 +0200

GEODE-10412: Clear expired tombstones during region destroy (#7838)

* GEODE-10412: Clear expired tombstones during region destroy

The issue:
During region destroy operation, the expired tombstones aren't cleared
when non-expired ones are available. Later, these expired
tombstones prevent all other regions' tombstones from being cleared
from memory, causing many issues (memory and disk exhaustion).

The solution:
When a region is destroyed, it must clear all the related expired and
non-expired tombstones from memory.

* Add distributed test that reproduce the issue

* Update after review
---
 .../cache/versions/TombstoneDUnitTest.java | 42 
 .../geode/internal/cache/TombstoneService.java |  6 ++-
 .../geode/internal/cache/TombstoneServiceTest.java | 46 ++
 3 files changed, 86 insertions(+), 8 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
index bbcf0ca6ec..d4bd0cc89b 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java
@@ -14,11 +14,13 @@
  */
 package org.apache.geode.internal.cache.versions;
 
+import static org.apache.geode.cache.RegionShortcut.PARTITION_PERSISTENT;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE;
 import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT;
 import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPort;
 import static 
org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.DuringApplyDelta;
 import static 
org.apache.geode.internal.cache.InitialImageOperation.resetAllGIITestHooks;
+import static 
org.apache.geode.internal.cache.TombstoneService.EXPIRED_TOMBSTONE_LIMIT;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
@@ -121,6 +123,35 @@ public class TombstoneDUnitTest implements Serializable {
 });
   }
 
+  @Test
+  public void 
testTombstoneExpiredAndNonExpiredAreClearedAfterRegionIsDestroyed() {
+VM vm0 = VM.getVM(0);
+
+vm0.invoke(() -> {
+  // reduce timeout so that tombstone is immediately marked as expired
+  TombstoneService.REPLICATE_TOMBSTONE_TIMEOUT = 100;
+  createCacheAndRegion(PARTITION_PERSISTENT);
+  region.put("K1", "V1");
+  region.destroy("K1");
+});
+
+vm0.invoke(() -> {
+  waitForScheduledTombstoneCount(0);
+  // increase timeout so that next tombstone doesn't expire
+  TombstoneService.REPLICATE_TOMBSTONE_TIMEOUT = 15;
+  region.put("K1", "V1");
+  region.destroy("K1");
+
+  region.destroyRegion();
+  // force expiry of batch - there is only one expired tombstone at this 
moment
+  EXPIRED_TOMBSTONE_LIMIT = 1;
+});
+
+vm0.invoke(() -> {
+  createCacheAndRegion(PARTITION_PERSISTENT);
+  checkExpiredTombstones(0);
+});
+  }
 
   @Test
   public void 
testWhenAnOutOfRangeTimeStampIsSeenWeExpireItInReplicateTombstoneSweeper() {
@@ -562,6 +593,17 @@ public class TombstoneDUnitTest implements Serializable {
 }
   }
 
+  private void waitForScheduledTombstoneCount(int count) {
+LocalRegion region = (LocalRegion) cache.getRegion(REGION_NAME);
+await().until(() -> ((InternalCache) 
cache).getTombstoneService().getSweeper(region).tombstones
+.size() == count);
+  }
+
+  private void checkExpiredTombstones(int count) {
+await().until(
+() -> ((InternalCache) 
cache).getTombstoneService().getScheduledTombstoneCount() == count);
+  }
+
   private void performGC(int count) throws Exception {
 ((InternalCache) 
cache).getTombstoneService().forceBatchExpirationForTests(count);
   }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/TombstoneService.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/TombstoneService.java
index 242a3ff20b..dc3532a734 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/TombstoneService.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/TombstoneService.java
@@ -926,7 +926,11 @@ public class TombstoneService {
  * @return true if predicate ever returned

[geode] branch support/1.15 updated: GEODE-10415: bump dependencies due to vulnerability scan (#7855)

2022-09-15 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
 new 5364cce7cd GEODE-10415: bump dependencies due to vulnerability scan 
(#7855)
5364cce7cd is described below

commit 5364cce7cdda81d38f8b8275e083d6a870642d51
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Wed Sep 14 20:49:46 2022 +0200

GEODE-10415: bump dependencies due to vulnerability scan (#7855)
---
 .../gradle/plugins/DependencyConstraints.groovy|  4 +-
 .../session/tests/GenericAppServerInstall.java |  2 +-
 .../integrationTest/resources/assembly_content.txt | 43 ++---
 .../resources/gfsh_dependency_classpath.txt| 44 +++---
 .../resources/dependency_classpath.txt | 36 +-
 5 files changed, 65 insertions(+), 64 deletions(-)

diff --git 
a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
 
b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index f8fb6e3aae..89ef3f64ef 100644
--- 
a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ 
b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -41,7 +41,7 @@ class DependencyConstraints {
 deps.put("jgroups.version", "3.6.14.Final")
 deps.put("log4j.version", "2.17.2")
 deps.put("micrometer.version", "1.9.0")
-deps.put("shiro.version", "1.9.0")
+deps.put("shiro.version", "1.9.1")
 deps.put("slf4j-api.version", "1.7.32")
 deps.put("jboss-modules.version", "1.11.0.Final")
 deps.put("jackson.version", "2.13.2")
@@ -61,7 +61,7 @@ class DependencyConstraints {
 
 // The jetty version is also hard-coded in geode-assembly:test
 // at o.a.g.sessions.tests.GenericAppServerInstall.java
-deps.put("jetty.version", "9.4.46.v20220331")
+deps.put("jetty.version", "9.4.47.v20220610")
 
 // These versions are referenced in test.gradle, which is aggressively 
injected into all projects.
 deps.put("junit.version", "4.13.2")
diff --git 
a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
 
b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
index 42bd6e7eec..88d0e5c77b 100644
--- 
a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
+++ 
b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
@@ -34,7 +34,7 @@ import java.util.function.IntSupplier;
  * specific code outside of the {@link GenericAppServerVersion}.
  */
 public class GenericAppServerInstall extends ContainerInstall {
-  private static final String JETTY_VERSION = "9.4.46.v20220331";
+  private static final String JETTY_VERSION = "9.4.47.v20220610";
 
   /**
* Get the version number, download URL, and container name of a generic app 
server using
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt 
b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index 2b41f9c8cb..da0614aa45 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -1007,6 +1007,8 @@ lib/istack-commons-runtime-4.0.1.jar
 lib/jackson-annotations-2.13.2.jar
 lib/jackson-core-2.13.2.jar
 lib/jackson-databind-2.13.2.2.jar
+lib/jackson-datatype-joda-2.13.2.jar
+lib/jackson-datatype-jsr310-2.13.2.jar
 lib/javax.activation-api-1.2.0.jar
 lib/javax.mail-api-1.6.2.jar
 lib/javax.resource-api-1.7.1.jar
@@ -1014,19 +1016,20 @@ lib/javax.servlet-api-3.1.0.jar
 lib/javax.transaction-api-1.3.jar
 lib/jaxb-api-2.3.1.jar
 lib/jaxb-impl-2.3.2.jar
-lib/jetty-http-9.4.46.v20220331.jar
-lib/jetty-io-9.4.46.v20220331.jar
-lib/jetty-security-9.4.46.v20220331.jar
-lib/jetty-server-9.4.46.v20220331.jar
-lib/jetty-servlet-9.4.46.v20220331.jar
-lib/jetty-util-9.4.46.v20220331.jar
-lib/jetty-util-ajax-9.4.46.v20220331.jar
-lib/jetty-webapp-9.4.46.v20220331.jar
-lib/jetty-xml-9.4.46.v20220331.jar
+lib/jetty-http-9.4.47.v20220610.jar
+lib/jetty-io-9.4.47.v20220610.jar
+lib/jetty-security-9.4.47.v20220610.jar
+lib/jetty-server-9.4.47.v20220610.jar
+lib/jetty-servlet-9.4.47.v20220610.jar
+lib/jetty-util-9.4.47.v20220610.jar
+lib/jetty-util-ajax-9.4.47.v20220610.jar
+lib/jetty-webapp-9.4.47.v20220610.jar
+lib/jetty-xml-9

[geode] branch develop updated: GEODE-10415: bump dependencies due to vulnerability scan (#7855)

2022-09-14 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 0b0c6f8d38 GEODE-10415: bump dependencies due to vulnerability scan 
(#7855)
0b0c6f8d38 is described below

commit 0b0c6f8d38f7127949d9fe9d396ec68e5bde45a5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Wed Sep 14 20:49:46 2022 +0200

GEODE-10415: bump dependencies due to vulnerability scan (#7855)
---
 .../gradle/plugins/DependencyConstraints.groovy|  4 +-
 .../session/tests/GenericAppServerInstall.java |  2 +-
 .../integrationTest/resources/assembly_content.txt | 43 ++---
 .../resources/gfsh_dependency_classpath.txt| 44 +++---
 .../resources/dependency_classpath.txt | 36 +-
 5 files changed, 65 insertions(+), 64 deletions(-)

diff --git 
a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
 
b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index 2a3ed01436..649d6dc4ad 100644
--- 
a/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ 
b/build-tools/geode-dependency-management/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -41,7 +41,7 @@ class DependencyConstraints {
 deps.put("jgroups.version", "3.6.14.Final")
 deps.put("log4j.version", "2.17.2")
 deps.put("micrometer.version", "1.9.1")
-deps.put("shiro.version", "1.9.0")
+deps.put("shiro.version", "1.9.1")
 deps.put("slf4j-api.version", "1.7.32")
 deps.put("jboss-modules.version", "1.11.0.Final")
 deps.put("jackson.version", "2.13.3")
@@ -61,7 +61,7 @@ class DependencyConstraints {
 
 // The jetty version is also hard-coded in geode-assembly:test
 // at o.a.g.sessions.tests.GenericAppServerInstall.java
-deps.put("jetty.version", "9.4.46.v20220331")
+deps.put("jetty.version", "9.4.47.v20220610")
 
 // These versions are referenced in test.gradle, which is aggressively 
injected into all projects.
 deps.put("junit.version", "4.13.2")
diff --git 
a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
 
b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
index 42bd6e7eec..88d0e5c77b 100644
--- 
a/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
+++ 
b/geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerInstall.java
@@ -34,7 +34,7 @@ import java.util.function.IntSupplier;
  * specific code outside of the {@link GenericAppServerVersion}.
  */
 public class GenericAppServerInstall extends ContainerInstall {
-  private static final String JETTY_VERSION = "9.4.46.v20220331";
+  private static final String JETTY_VERSION = "9.4.47.v20220610";
 
   /**
* Get the version number, download URL, and container name of a generic app 
server using
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt 
b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index f19575b921..966298fe1a 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -1007,6 +1007,8 @@ lib/istack-commons-runtime-4.0.1.jar
 lib/jackson-annotations-2.13.3.jar
 lib/jackson-core-2.13.3.jar
 lib/jackson-databind-2.13.3.jar
+lib/jackson-datatype-joda-2.13.3.jar
+lib/jackson-datatype-jsr310-2.13.3.jar
 lib/javax.activation-api-1.2.0.jar
 lib/javax.mail-api-1.6.2.jar
 lib/javax.resource-api-1.7.1.jar
@@ -1014,19 +1016,20 @@ lib/javax.servlet-api-3.1.0.jar
 lib/javax.transaction-api-1.3.jar
 lib/jaxb-api-2.3.1.jar
 lib/jaxb-impl-2.3.2.jar
-lib/jetty-http-9.4.46.v20220331.jar
-lib/jetty-io-9.4.46.v20220331.jar
-lib/jetty-security-9.4.46.v20220331.jar
-lib/jetty-server-9.4.46.v20220331.jar
-lib/jetty-servlet-9.4.46.v20220331.jar
-lib/jetty-util-9.4.46.v20220331.jar
-lib/jetty-util-ajax-9.4.46.v20220331.jar
-lib/jetty-webapp-9.4.46.v20220331.jar
-lib/jetty-xml-9.4.46.v20220331.jar
+lib/jetty-http-9.4.47.v20220610.jar
+lib/jetty-io-9.4.47.v20220610.jar
+lib/jetty-security-9.4.47.v20220610.jar
+lib/jetty-server-9.4.47.v20220610.jar
+lib/jetty-servlet-9.4.47.v20220610.jar
+lib/jetty-util-9.4.47.v20220610.jar
+lib/jetty-util-ajax-9.4.47.v20220610.jar
+lib/jetty-webapp-9.4.47.v20220610.jar
+lib/jetty-xml-9.4.47.v20220

[geode] branch support/1.15 updated: GEODE-10422: add Note for parallel recovery disk store (#7858)

2022-09-14 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
 new 3d62f0fff2 GEODE-10422: add Note for parallel recovery disk store 
(#7858)
3d62f0fff2 is described below

commit 3d62f0fff21329a319661780f143bb7683135fe4
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Wed Sep 14 15:45:12 2022 +0200

GEODE-10422: add Note for parallel recovery disk store (#7858)

* GEODE-10422: add Note for parallel recovery disk store

* empty commit to re-launch CI
---
 .../disk_storage/optimize_availability_and_performance.html.md.erb| 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/geode-docs/managing/disk_storage/optimize_availability_and_performance.html.md.erb
 
b/geode-docs/managing/disk_storage/optimize_availability_and_performance.html.md.erb
index f0bfd8b6be..d15b185891 100644
--- 
a/geode-docs/managing/disk_storage/optimize_availability_and_performance.html.md.erb
+++ 
b/geode-docs/managing/disk_storage/optimize_availability_and_performance.html.md.erb
@@ -33,5 +33,7 @@ Optimize availability and performance by following the 
guidelines in this sectio
 ```
 start server --name=server1 --J=-Dgeode.parallelDiskStoreRecovery=false
 ```
-
+**Note:**
+In case using parallel disk store recovery, use different disk stores for the 
PDX and the region.
+Otherwise, it will run in the sequential recovery mode, regardless of the 
above flag.
 



[geode] branch support/1.15 updated: GEODE-10281: Fix WAN data inconsistency (#7665)

2022-09-14 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
 new fdb5e92d93 GEODE-10281: Fix WAN data inconsistency (#7665)
fdb5e92d93 is described below

commit fdb5e92d93095dc26f82e2935cce18e121f70b36
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Thu Jul 7 14:15:38 2022 +0200

GEODE-10281: Fix WAN data inconsistency (#7665)
---
 .../internal/cache/wan/GatewaySenderEventImpl.java |   2 +-
 .../cache/wan/GatewaySenderEventImplTest.java  |  87 --
 ...eplicateRegionWithSerialGwsDistributedTest.java | 333 +
 3 files changed, 393 insertions(+), 29 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
index 494e499168..d18a9a5d68 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
@@ -853,7 +853,7 @@ public class GatewaySenderEventImpl
 // If the message is an update, it may be conflatable. If it is a
 // create, destroy, invalidate or destroy-region, it is not conflatable.
 // Only updates are conflated.
-return isUpdate();
+return isUpdate() && !isConcurrencyConflict();
   }
 
   @Override
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
index cec3e4b5a2..cf1f5d100e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
@@ -33,13 +33,15 @@ import java.io.DataInput;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.stream.Stream;
 
-import junitparams.Parameters;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.CsvSource;
+import org.junit.jupiter.params.provider.MethodSource;
 
 import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.TransactionId;
@@ -61,18 +63,16 @@ import 
org.apache.geode.internal.serialization.VersionedDataInputStream;
 import org.apache.geode.internal.serialization.VersionedDataOutputStream;
 import org.apache.geode.internal.util.BlobHelper;
 import org.apache.geode.test.fake.Fakes;
-import org.apache.geode.test.junit.runners.GeodeParamsRunner;
 
-@RunWith(GeodeParamsRunner.class)
 public class GatewaySenderEventImplTest {
 
   private GemFireCacheImpl cache;
 
-  @Rule
-  public TestName testName = new TestName();
+  private String testName;
 
-  @Before
-  public void setUpGemFire() {
+  @BeforeEach
+  public void setUpGemFire(TestInfo testInfo) {
+testName = testInfo.getDisplayName();
 createCache();
   }
 
@@ -110,8 +110,8 @@ public class GatewaySenderEventImplTest {
 assertThat(gatewaySenderEvent.getTransactionId()).isNotNull();
   }
 
-  @Test
-  @Parameters(method = "getVersionsAndExpectedInvocations")
+  @ParameterizedTest
+  @MethodSource("getVersionsAndExpectedInvocations")
   public void 
testSerializingDataFromCurrentVersionToOldVersion(VersionAndExpectedInvocations 
vaei)
   throws IOException {
 GatewaySenderEventImpl gatewaySenderEvent = 
spy(GatewaySenderEventImpl.class);
@@ -129,8 +129,8 @@ public class GatewaySenderEventImplTest {
 any());
   }
 
-  @Test
-  @Parameters(method = "getVersionsAndExpectedInvocations")
+  @ParameterizedTest
+  @MethodSource("getVersionsAndExpectedInvocations")
   public void testDeserializingDataFromOldVersionToCurrentVersion(
   VersionAndExpectedInvocations vaei)
   throws IOException, ClassNotFoundException {
@@ -151,18 +151,17 @@ public class GatewaySenderEventImplTest {
 any());
   }
 
-  private VersionAndExpectedInvocations[] getVersionsAndExpectedInvocations() {
-return new VersionAndExpectedInvocations[] {
-new VersionAndExpectedInvocations(GEODE_1_8_0, 1, 0, 0),
-new VersionAndExpectedInvocations(GEODE_1_13_0, 1, 1, 0),
-new VersionAndExpectedInvocations(GEODE_1_14_0, 1, 1, 1)
-};
+  private static Stream getVersionsAndExpectedInvocations() {
+return Stream.of(
+Arguments.of(

[geode] branch support/1.15 updated: GEODE-9484: Improve sending message to multy destinations (#7664) (#7853)

2022-09-12 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch support/1.15
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.15 by this push:
 new 7838d5d521 GEODE-9484: Improve sending message to multy destinations 
(#7664) (#7853)
7838d5d521 is described below

commit 7838d5d5210ab3afe243b2045242d7bfd6acc6ed
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Sep 12 10:02:59 2022 +0200

GEODE-9484: Improve sending message to multy destinations (#7664) (#7853)

Co-authored-by: Mario Ivanac <48509724+miva...@users.noreply.github.com>
---
 java => UpdatePropagationDistributedTest.java} | 107 ---
 ...ava => UpdatePropagationPRDistributedTest.java} |   2 +-
 .../geode/internal/tcp/CloseConnectionTest.java|   2 +-
 .../geode/internal/tcp/TCPConduitDUnitTest.java|   2 +-
 .../distributed/internal/direct/DirectChannel.java |  44 +---
 .../org/apache/geode/internal/tcp/Connection.java  |   6 +-
 .../apache/geode/internal/tcp/ConnectionTable.java |  30 --
 .../org/apache/geode/internal/tcp/TCPConduit.java  | 118 ++---
 .../internal/tcp/ConnectionTransmissionTest.java   |   2 +-
 .../apache/geode/internal/tcp/TCPConduitTest.java  |  97 ++---
 10 files changed, 343 insertions(+), 67 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDistributedTest.java
similarity index 78%
rename from 
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
rename to 
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDistributedTest.java
index 0b99a144e5..055780782f 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/UpdatePropagationDistributedTest.java
@@ -20,6 +20,7 @@ import static 
org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPort;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
@@ -50,6 +51,8 @@ import org.apache.geode.cache.server.CacheServer;
 import org.apache.geode.cache.util.CacheListenerAdapter;
 import org.apache.geode.cache30.CacheSerializableRunnable;
 import org.apache.geode.distributed.internal.ServerLocationAndMemberId;
+import 
org.apache.geode.distributed.internal.membership.api.MembershipManagerHelper;
+import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.Host;
 import org.apache.geode.test.dunit.IgnoredException;
 import org.apache.geode.test.dunit.NetworkUtils;
@@ -68,53 +71,89 @@ import org.apache.geode.util.internal.GeodeGlossary;
  * the same across servers
  */
 @Category({ClientSubscriptionTest.class})
-public class UpdatePropagationDUnitTest extends JUnit4CacheTestCase {
+public class UpdatePropagationDistributedTest extends JUnit4CacheTestCase {
 
   private static final String REGION_NAME = 
"UpdatePropagationDUnitTest_region";
 
   private VM server1 = null;
   private VM server2 = null;
+  private VM server3 = null;
   private VM client1 = null;
   private VM client2 = null;
 
   private int PORT1;
   private int PORT2;
+  private int PORT3;
+
+  private final int minNumEntries = 2;
+
+  private String hostnameServer1;
+  private String hostnameServer3;
 
   @Override
   public final void postSetUp() throws Exception {
 disconnectAllFromDS();
 
 final Host host = Host.getHost(0);
-// Server1 VM
+
 server1 = host.getVM(0);
 
-// Server2 VM
 server2 = host.getVM(1);
 
-// Client 1 VM
-client1 = host.getVM(2);
+server3 = host.getVM(2);
 
-// client 2 VM
-client2 = host.getVM(3);
+client1 = host.getVM(3);
 
-PORT1 = server1.invoke(this::createServerCache);
-PORT2 = server2.invoke(this::createServerCache);
+client2 = host.getVM(4);
 
-client1.invoke(
-() -> 
createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT1, 
PORT2));
-client2.invoke(
-() -> 
createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT1, 
PORT2));
+PORT1 = server1.invoke(() -> createServerCache());
+PORT2 = server2.invoke(() -> createServerCache());
+PORT3 = server3.invoke(() -> createServerCache());
+
+hostnameServer1 = Net

[geode] branch develop updated: GEODE-9632: fix for queries with multy operations and indexes (#7824)

2022-07-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 0ecd6f6738 GEODE-9632: fix for queries with multy operations and 
indexes (#7824)
0ecd6f6738 is described below

commit 0ecd6f673801cbdcc9cfeba7da425c83502d66f8
Author: Mario Ivanac <48509724+miva...@users.noreply.github.com>
AuthorDate: Fri Jul 29 09:43:11 2022 +0200

GEODE-9632: fix for queries with multy operations and indexes (#7824)
---
 .../internal/AbstractGroupOrRangeJunction.java |  15 +
 .../cache/query/internal/CompiledJunction.java |  15 +
 .../query/internal/index/MemoryIndexStore.java |  45 +++
 .../query/dunit/QueryWithRangeIndexDUnitTest.java  | 316 +
 4 files changed, 391 insertions(+)

diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
index 31060b0f62..3113e10925 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/AbstractGroupOrRangeJunction.java
@@ -264,6 +264,15 @@ public abstract class AbstractGroupOrRangeJunction extends 
AbstractCompiledValue
 List sortedConditionsList =
 getCondtionsSortedOnIncreasingEstimatedIndexResultSize(context);
 
+Boolean applyLimit = (Boolean) 
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
+
+boolean modifiedApplyLimits = false;
+if (applyLimit != null && applyLimit && sortedConditionsList.size() > 1
+&& _operator == LITERAL_and) {
+  context.cachePut(CAN_APPLY_LIMIT_AT_INDEX, Boolean.FALSE);
+  modifiedApplyLimits = true;
+}
+
 // Sort the operands in increasing order of resultset size
 Iterator i = sortedConditionsList.iterator();
 // SortedSet intersectionSet = new TreeSet(new SelectResultsComparator());
@@ -285,6 +294,12 @@ public abstract class AbstractGroupOrRangeJunction extends 
AbstractCompiledValue
   // RangeJunction or a CompiledComparison. But if the parent Object is a
   // RangeJunction then the Filter is a RangeJunctionEvaluator
   SelectResults filterResults = null;
+
+  if (modifiedApplyLimits && sortedConditionsList.size() == 1) {
+context.cachePut(CAN_APPLY_LIMIT_AT_INDEX, Boolean.TRUE);
+modifiedApplyLimits = false;
+  }
+
   Filter filter = (Filter) i.next();
   boolean isConditioningNeeded = filter.isConditioningNeededForIndex(
   indpndntItr.length == 1 ? indpndntItr[0] : null, context,
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledJunction.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledJunction.java
index 5b23519d76..adc4003bef 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledJunction.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/CompiledJunction.java
@@ -278,6 +278,15 @@ public class CompiledJunction extends 
AbstractCompiledValue implements Negatable
 List sortedConditionsList =
 getCondtionsSortedOnIncreasingEstimatedIndexResultSize(context);
 
+Boolean applyLimit = (Boolean) 
context.cacheGet(CompiledValue.CAN_APPLY_LIMIT_AT_INDEX);
+
+boolean modifiedApplyLimits = false;
+if (applyLimit != null && applyLimit && sortedConditionsList.size() > 1
+&& _operator == LITERAL_and) {
+  context.cachePut(CAN_APPLY_LIMIT_AT_INDEX, Boolean.FALSE);
+  modifiedApplyLimits = true;
+}
+
 // Sort the operands in increasing order of resultset size
 Iterator sortedConditionsItr = sortedConditionsList.iterator();
 while (sortedConditionsItr.hasNext()) {
@@ -293,6 +302,12 @@ public class CompiledJunction extends 
AbstractCompiledValue implements Negatable
   // recursion being ended by evaluating auxIterEvaluate if any. The 
passing
   // of IntermediateResult in filterEvalaute causes AND junction evaluation
   // to be corrupted , if the intermediateResultset contains some value.
+
+  if (modifiedApplyLimits && sortedConditionsList.size() == 1) {
+context.cachePut(CAN_APPLY_LIMIT_AT_INDEX, Boolean.TRUE);
+modifiedApplyLimits = false;
+  }
+
   SelectResults filterResults =
   ((Filter) sortedConditionsItr.next()).filterEvaluate(context, null);
   if (_operator == LITERAL_and) {
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MemoryIndexStore.java
 
b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/MemoryIndexStore.java
index 736de22a2d..8c536368af 100644
--- 
a/geode-core/src/main/java/org/apa

[geode] branch develop updated: GEODE-9101: fix VisibleNode attribute (#7829)

2022-07-28 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 e2f7fe053d GEODE-9101: fix VisibleNode attribute (#7829)
e2f7fe053d is described below

commit e2f7fe053ddc3de175f2b0342012b31b38aa46e5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Thu Jul 28 11:55:03 2022 +0200

GEODE-9101: fix VisibleNode attribute (#7829)
---
 .../DistributionStatsNodesDistributedTest.java | 18 +-
 .../geode/management/CacheManagementDUnitTest.java | 12 
 .../internal/ClusterDistributionManager.java   |  5 +++--
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionStatsNodesDistributedTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionStatsNodesDistributedTest.java
index 3828e46c85..c11677378b 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionStatsNodesDistributedTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/distributed/internal/DistributionStatsNodesDistributedTest.java
@@ -46,8 +46,8 @@ public class DistributionStatsNodesDistributedTest {
 
   @Test
   public void testNodesStatistic() {
-// Verify DistributionStats nodes is 1
-server.invoke(() -> verifyNodesStatistic(1));
+// Verify DistributionStats nodes is 2
+server.invoke(() -> verifyNodesStatistic(2));
   }
 
   @Test
@@ -56,12 +56,12 @@ public class DistributionStatsNodesDistributedTest {
 
 DistributionManager distributionManager = 
internalCache.getDistributionManager();
 DistributionStats distributionStats = (DistributionStats) 
distributionManager.getStats();
-assertThat(distributionStats.getNodes()).isEqualTo(2);
+assertThat(distributionStats.getNodes()).isEqualTo(3);
 
 server.invoke(() -> 
ClusterStartupRule.getCache().getDistributionManager().getDistribution()
 .disconnect(false));
 
-assertThat(distributionStats.getNodes()).isEqualTo(1);
+assertThat(distributionStats.getNodes()).isEqualTo(2);
   }
 
   @Test
@@ -71,12 +71,12 @@ public class DistributionStatsNodesDistributedTest {
 
 DistributionManager distributionManager = 
internalCache.getDistributionManager();
 DistributionStats distributionStats = (DistributionStats) 
distributionManager.getStats();
-assertThat(distributionStats.getNodes()).isEqualTo(2);
+assertThat(distributionStats.getNodes()).isEqualTo(3);
 
 server.stop();
 cluster.startServerVM(1, s -> s.withConnectionToLocator(locatorPort));
 
-assertThat(distributionStats.getNodes()).isEqualTo(2);
+assertThat(distributionStats.getNodes()).isEqualTo(3);
   }
 
   @Test
@@ -86,14 +86,14 @@ public class DistributionStatsNodesDistributedTest {
 
 DistributionManager distributionManager = 
internalCache.getDistributionManager();
 DistributionStats distributionStats = (DistributionStats) 
distributionManager.getStats();
-assertThat(distributionStats.getNodes()).isEqualTo(2);
+assertThat(distributionStats.getNodes()).isEqualTo(3);
 
 VM server2VM = VM.getVM(2);
 server2VM.invoke(() -> {
   InternalCache internalCache3 = createCache(locatorPort);
   DistributionManager distributionManager3 = 
internalCache3.getDistributionManager();
   DistributionStats distributionStats3 = (DistributionStats) 
distributionManager3.getStats();
-  assertThat(distributionStats3.getNodes()).isEqualTo(3);
+  assertThat(distributionStats3.getNodes()).isEqualTo(4);
 });
 
 // Verify DistributionStats nodes is updated
@@ -101,7 +101,7 @@ public class DistributionStatsNodesDistributedTest {
   InternalCache internalCache2 = ClusterStartupRule.getCache();
   DistributionManager distributionManager2 = 
internalCache2.getDistributionManager();
   DistributionStats distributionStats2 = (DistributionStats) 
distributionManager2.getStats();
-  assertThat(distributionStats2.getNodes()).isEqualTo(3);
+  assertThat(distributionStats2.getNodes()).isEqualTo(4);
 });
   }
 
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
index 9d6b9a6fc7..2485fe1106 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/management/CacheManagementDUnitTest.java
@@ -304,6 +304,18 @@ public class CacheManagementDUnitTest implements 
Serializable {
 });
   }
 
+  @Test
+  public void testVisibleNodes() {
+this.managementTestRule.createMe

[geode] branch develop updated: GEODE-10055: fix AbstractLauncher to print info and debug with stdout (#7368)

2022-07-12 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 a88c8b55c5 GEODE-10055: fix AbstractLauncher to print info and debug 
with stdout (#7368)
a88c8b55c5 is described below

commit a88c8b55c52f31539cf2e940c2d444b97a69e92f
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Tue Jul 12 09:24:13 2022 +0200

GEODE-10055: fix AbstractLauncher to print info and debug with stdout 
(#7368)

* GEODE-10055: fix AbstractLauncher to print info and debug with stdout 
instead of stderr
---
 .../apache/geode/distributed/AbstractLauncher.java  | 21 +++--
 .../apache/geode/distributed/LocatorLauncher.java   |  4 ++--
 .../apache/geode/distributed/ServerLauncher.java|  5 +++--
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/AbstractLauncher.java 
b/geode-core/src/main/java/org/apache/geode/distributed/AbstractLauncher.java
index 2fb828a186..9712e76485 100644
--- 
a/geode-core/src/main/java/org/apache/geode/distributed/AbstractLauncher.java
+++ 
b/geode-core/src/main/java/org/apache/geode/distributed/AbstractLauncher.java
@@ -356,13 +356,14 @@ public abstract class AbstractLauncher> implements Runna
   }
 
   /**
-   * Prints the specified debug message to standard err, replacing any 
placeholder values with the
+   * Prints the specified debug message to standard output, replacing any 
placeholder values with
+   * the
* specified arguments on output, if debugging has been enabled.
*
-   * @param message the String value written to standard err.
+   * @param message the String value written to standard output.
* @param args an Object array containing arguments to replace the 
placeholder values in the
*message.
-   * @see java.lang.System#err
+   * @see java.lang.System#out
* @see #isDebugging()
* @see #debug(Throwable)
* @see #info(Object, Object...)
@@ -370,9 +371,9 @@ public abstract class AbstractLauncher> implements Runna
   protected void debug(final String message, final Object... args) {
 if (isDebugging()) {
   if (args != null && args.length > 0) {
-System.err.printf(message, args);
+System.out.printf(message, args);
   } else {
-System.err.print(message);
+System.out.print(message);
   }
 }
   }
@@ -392,20 +393,20 @@ public abstract class AbstractLauncher> implements Runna
   }
 
   /**
-   * Prints the specified informational message to standard err, replacing any 
placeholder values
+   * Prints the specified informational message to standard out, replacing any 
placeholder values
* with the specified arguments on output.
*
-   * @param message the String value written to standard err.
+   * @param message the String value written to standard out.
* @param args an Object array containing arguments to replace the 
placeholder values in the
*message.
-   * @see java.lang.System#err
+   * @see java.lang.System#out
* @see #debug(String, Object...)
*/
   protected void info(final Object message, final Object... args) {
 if (args != null && args.length > 0) {
-  System.err.printf(message.toString(), args);
+  System.out.printf("%s %s", message, args);
 } else {
-  System.err.print(message);
+  System.out.print(message);
 }
   }
 
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java 
b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
index 8130939dc9..68a22cf882 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
@@ -623,7 +623,7 @@ public class LocatorLauncher extends 
AbstractLauncher {
   }
 
   /**
-   * Displays help for the specified Locator launcher command to standard err. 
If the Locator
+   * Displays help for the specified Locator launcher command to standard 
output. If the Locator
* launcher command is unspecified, then usage information is displayed 
instead.
*
* @param command the Locator launcher command in which to display help 
information.
@@ -648,7 +648,7 @@ public class LocatorLauncher extends 
AbstractLauncher {
 
   /**
* Displays usage information on the proper invocation of the 
LocatorLauncher from the
-   * command-line to standard err.
+   * command-line to standard output.
*
* @see #help(org.apache.geode.distributed.LocatorLauncher.Command)
*/
diff --git 
a/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java 
b/geode-core/src/main/java/org/apache/geode/distributed/ServerLauncher.java
index 718f558966..257ad60953 100755
--- a/geode-core/src/main/java/o

[geode] branch develop updated: GEODE-10281: Fix WAN data inconsistency (#7665)

2022-07-07 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 ac00f3c7e1 GEODE-10281: Fix WAN data inconsistency (#7665)
ac00f3c7e1 is described below

commit ac00f3c7e13ab7c4b5ed59af48381da97f6d1c0b
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Thu Jul 7 14:15:38 2022 +0200

GEODE-10281: Fix WAN data inconsistency (#7665)
---
 .../internal/cache/wan/GatewaySenderEventImpl.java |   2 +-
 .../cache/wan/GatewaySenderEventImplTest.java  |  87 --
 ...eplicateRegionWithSerialGwsDistributedTest.java | 333 +
 3 files changed, 393 insertions(+), 29 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
index 494e499168..d18a9a5d68 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImpl.java
@@ -853,7 +853,7 @@ public class GatewaySenderEventImpl
 // If the message is an update, it may be conflatable. If it is a
 // create, destroy, invalidate or destroy-region, it is not conflatable.
 // Only updates are conflated.
-return isUpdate();
+return isUpdate() && !isConcurrencyConflict();
   }
 
   @Override
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
index cec3e4b5a2..cf1f5d100e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/GatewaySenderEventImplTest.java
@@ -33,13 +33,15 @@ import java.io.DataInput;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.stream.Stream;
 
-import junitparams.Parameters;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.CsvSource;
+import org.junit.jupiter.params.provider.MethodSource;
 
 import org.apache.geode.cache.Operation;
 import org.apache.geode.cache.TransactionId;
@@ -61,18 +63,16 @@ import 
org.apache.geode.internal.serialization.VersionedDataInputStream;
 import org.apache.geode.internal.serialization.VersionedDataOutputStream;
 import org.apache.geode.internal.util.BlobHelper;
 import org.apache.geode.test.fake.Fakes;
-import org.apache.geode.test.junit.runners.GeodeParamsRunner;
 
-@RunWith(GeodeParamsRunner.class)
 public class GatewaySenderEventImplTest {
 
   private GemFireCacheImpl cache;
 
-  @Rule
-  public TestName testName = new TestName();
+  private String testName;
 
-  @Before
-  public void setUpGemFire() {
+  @BeforeEach
+  public void setUpGemFire(TestInfo testInfo) {
+testName = testInfo.getDisplayName();
 createCache();
   }
 
@@ -110,8 +110,8 @@ public class GatewaySenderEventImplTest {
 assertThat(gatewaySenderEvent.getTransactionId()).isNotNull();
   }
 
-  @Test
-  @Parameters(method = "getVersionsAndExpectedInvocations")
+  @ParameterizedTest
+  @MethodSource("getVersionsAndExpectedInvocations")
   public void 
testSerializingDataFromCurrentVersionToOldVersion(VersionAndExpectedInvocations 
vaei)
   throws IOException {
 GatewaySenderEventImpl gatewaySenderEvent = 
spy(GatewaySenderEventImpl.class);
@@ -129,8 +129,8 @@ public class GatewaySenderEventImplTest {
 any());
   }
 
-  @Test
-  @Parameters(method = "getVersionsAndExpectedInvocations")
+  @ParameterizedTest
+  @MethodSource("getVersionsAndExpectedInvocations")
   public void testDeserializingDataFromOldVersionToCurrentVersion(
   VersionAndExpectedInvocations vaei)
   throws IOException, ClassNotFoundException {
@@ -151,18 +151,17 @@ public class GatewaySenderEventImplTest {
 any());
   }
 
-  private VersionAndExpectedInvocations[] getVersionsAndExpectedInvocations() {
-return new VersionAndExpectedInvocations[] {
-new VersionAndExpectedInvocations(GEODE_1_8_0, 1, 0, 0),
-new VersionAndExpectedInvocations(GEODE_1_13_0, 1, 1, 0),
-new VersionAndExpectedInvocations(GEODE_1_14_0, 1, 1, 1)
-};
+  private static Stream getVersionsAndExpectedInvocations() {
+return Stream.of(
+Arguments.of(new VersionAndExpectedInv

[geode] branch develop updated: GEODE-10267: fix creating gw sender with non-existent disk store (#7643)

2022-06-13 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 d7ff22cd18 GEODE-10267: fix creating gw sender with non-existent disk 
store (#7643)
d7ff22cd18 is described below

commit d7ff22cd18bb3e08a73035e950e6e5523ff99bec
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Jun 13 09:53:44 2022 +0200

GEODE-10267: fix creating gw sender with non-existent disk store (#7643)

* GEODE-10267: fix creating gw sender with non-existent disk store
---
 .../geode/cache/CacheXml70GatewayDUnitTest.java|  5 +++
 .../geode/cache/CacheXml80GatewayDUnitTest.java|  3 ++
 ...CreateDestroyGatewaySenderCommandDUnitTest.java | 40 +
 .../cache/wan/misc/WANConfigurationJUnitTest.java  | 41 +++---
 .../wan/internal/GatewaySenderFactoryImpl.java |  8 -
 5 files changed, 92 insertions(+), 5 deletions(-)

diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
index c9e8b92190..0489224a39 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml70GatewayDUnitTest.java
@@ -125,6 +125,8 @@ public class CacheXml70GatewayDUnitTest extends 
CacheXmlTestCase {
   public void testParallelGatewaySender() throws Exception {
 getSystem();
 CacheCreation cache = new CacheCreation();
+DiskStoreFactory dsf = cache.createDiskStoreFactory();
+dsf.create("LNSender");
 
 GatewaySenderFactory gatewaySenderFactory = 
cache.createGatewaySenderFactory();
 gatewaySenderFactory.setParallel(true);
@@ -163,6 +165,9 @@ public class CacheXml70GatewayDUnitTest extends 
CacheXmlTestCase {
   public void testSerialGatewaySender() throws Exception {
 getSystem();
 CacheCreation cache = new CacheCreation();
+DiskStoreFactory dsf = cache.createDiskStoreFactory();
+dsf.create("LNSender");
+
 GatewaySenderFactory gatewaySenderFactory = 
cache.createGatewaySenderFactory();
 gatewaySenderFactory.setParallel(false);
 gatewaySenderFactory.setManualStart(true);
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
index e49787f1a3..4ba5c8904e 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/cache/CacheXml80GatewayDUnitTest.java
@@ -105,6 +105,8 @@ public class CacheXml80GatewayDUnitTest extends 
CacheXmlTestCase {
   public void testGatewaySenderWithSubstitutionFilter() throws Exception {
 getSystem();
 CacheCreation cache = new CacheCreation();
+DiskStoreFactory dsf = cache.createDiskStoreFactory();
+dsf.create(DiskStoreFactory.DEFAULT_DISK_STORE_NAME);
 
 // Create a GatewaySender with GatewayEventSubstitutionFilter.
 // Don't start the sender to avoid 'Locators must be configured before 
starting gateway-sender'
@@ -113,6 +115,7 @@ public class CacheXml80GatewayDUnitTest extends 
CacheXmlTestCase {
 GatewaySenderFactory factory = cache.createGatewaySenderFactory();
 factory.setManualStart(true);
 factory.setGatewayEventSubstitutionFilter(new 
MyGatewayEventSubstitutionFilter());
+factory.setDiskStoreName(DiskStoreFactory.DEFAULT_DISK_STORE_NAME);
 GatewaySender sender = factory.create(id, 2);
 
 // Verify the GatewayEventSubstitutionFilter is set on the GatewaySender.
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
index 3575552dfa..49fbea480a 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/wancommand/CreateDestroyGatewaySenderCommandDUnitTest.java
@@ -19,6 +19,7 @@ import static 
org.apache.geode.distributed.ConfigurationProperties.REMOTE_LOCATO
 import static 
org.apache.geode.internal.cache.wan.wancommand.WANCommandUtils.verifySenderAttributes;
 import static 
org.apache.geode.internal.cache.wan.wancommand.WANCommandUtils.verifySenderDoesNotExist;
 import static 
org.apache.geode.internal.cache.wan.wancommand.WANCommandUtils.verifySenderState;
+import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
 import static org.assertj.core

[geode] branch develop updated: GEODE-7875: fix create index gfsh command on partitioned region (#7629)

2022-06-09 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 9f2ba7b9d6 GEODE-7875:  fix create index gfsh command on partitioned 
region (#7629)
9f2ba7b9d6 is described below

commit 9f2ba7b9d6976adcf28383c566c9f80af67219e3
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Thu Jun 9 11:14:13 2022 +0200

GEODE-7875:  fix create index gfsh command on partitioned region (#7629)

* GEODE-7875:  fix create index gfsh command on partitioned region
---
 .../commands/IndexCommandsIntegrationTestBase.java |  6 ++--
 .../cli/commands/CreateIndexCommandDUnitTest.java  | 37 +++---
 .../internal/cli/commands/CreateIndexCommand.java  |  5 ++-
 .../cli/functions/CreateIndexFunction.java |  6 ++--
 4 files changed, 42 insertions(+), 12 deletions(-)

diff --git 
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommandsIntegrationTestBase.java
 
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommandsIntegrationTestBase.java
index 1359dc4189..d9f2a472fd 100644
--- 
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommandsIntegrationTestBase.java
+++ 
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/IndexCommandsIntegrationTestBase.java
@@ -136,7 +136,9 @@ public class IndexCommandsIntegrationTestBase {
 csb.addOption(CliStrings.CREATE_INDEX__REGION, SEPARATOR + regionName);
 csb.addOption(CliStrings.CREATE_INDEX__TYPE, "hash");
 
-gfsh.executeAndAssertThat(csb.toString()).statusIsError();
+gfsh.executeAndAssertThat(csb.toString())
+.statusIsSuccess()
+.containsOutput("Index \"indexA\" already exists.  Create failed due 
to duplicate name.");
   }
 
   @Test
@@ -170,7 +172,7 @@ public class IndexCommandsIntegrationTestBase {
 createSimpleIndexA();
 gfsh.executeAndAssertThat(
 "create index --name=indexA --expression=key --region=" + SEPARATOR + 
"regionA")
-.statusIsError()
+.statusIsSuccess()
 .containsOutput("Index \"indexA\" already exists.  Create failed due 
to duplicate name");
   }
 
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateIndexCommandDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateIndexCommandDUnitTest.java
index 75c8db4e41..1790cb36bd 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateIndexCommandDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/CreateIndexCommandDUnitTest.java
@@ -48,13 +48,14 @@ public class CreateIndexCommandDUnitTest {
   @ClassRule
   public static GfshCommandRule gfsh = new GfshCommandRule();
 
-  private static MemberVM locator, server1, server2;
+  private static MemberVM locator;
+  private static MemberVM server1;
 
   @BeforeClass
   public static void beforeClass() throws Exception {
 locator = cluster.startLocatorVM(0);
 server1 = cluster.startServerVM(1, locator.getPort());
-server2 = cluster.startServerVM(2, "group2", locator.getPort());
+cluster.startServerVM(2, "group2", locator.getPort());
 gfsh.connectAndVerify(locator);
 
 // create a region on server-2 in group 2
@@ -71,7 +72,7 @@ public class CreateIndexCommandDUnitTest {
   }
 
   @Test
-  public void createIndexOnSubRegion() throws Exception {
+  public void createIndexOnSubRegion() {
 gfsh.executeAndAssertThat(
 "create region --name=regionB" + SEPARATOR + "child --group=group2 
--type=REPLICATE")
 .statusIsSuccess();
@@ -107,7 +108,7 @@ public class CreateIndexCommandDUnitTest {
   @Test
   // index can't be created on region name with ".".
   // GEODE-7523
-  public void createIndexOnRegionNameWithDot() throws Exception {
+  public void createIndexOnRegionNameWithDot() {
 gfsh.executeAndAssertThat("create region --name=A.B --type=REPLICATE")
 .statusIsSuccess();
 gfsh.executeAndAssertThat("create index --name=indexWithDot --region=A.B 
--expression=id")
@@ -124,7 +125,7 @@ public class CreateIndexCommandDUnitTest {
   }
 
   @Test
-  public void regionNotExistInThatMember() throws Exception {
+  public void regionNotExistInThatMember() {
 gfsh.executeAndAssertThat(
 "create index --name=myIndex --expression=id --region=" + SEPARATOR
 + "regionB --member=server-1")
@@ -210,4 +211,30 @@ public class CreateIndexCommandDUnitTest {
 commandAssert.hasInfoSection().hasOutput()
 .contains(&

[geode] branch develop updated: GEODE-9854: Orphaned .drf file causing memory leak (#7234)

2022-04-04 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 143ffb48ea GEODE-9854: Orphaned .drf file causing memory leak (#7234)
143ffb48ea is described below

commit 143ffb48ea2a28b19e4d184a68cb6484c9e0feb8
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Mon Apr 4 08:51:38 2022 +0200

GEODE-9854: Orphaned .drf file causing memory leak (#7234)

* GEODE-9854: Orphaned .drf file causing memory leak

Issue:
An OpLog files are compacted, but the .drf file is left because it contains 
deletes of
entries in previous .crfs. The .crf file is deleted, but the orphaned .drf 
is not until all
previous .crf files (.crfs with smaller id) are deleted.

The problem is that compacted Oplog object representing orphaned .drf file 
holds
a structure in memory (Oplog.regionMap) that contains information that is 
not useful
after the compaction and it takes certain amount of memory. Besides, there 
is a special
case when creating .krf files that, depending on the execution order,
could make the problem more severe (it could leave pendingKrfTags structure
on the regionMap and this could take up a significant amount of memory). 
This
pendingKrfTags HashMap is actually empty, but consumes memory because it 
was used
previously and the size of the HashMap was not reduced after it is cleared.
This special case usually happens when new Oplog is rolled out and previous 
Oplog
is immediately marked as eligible for compaction. Compaction and .krf 
creation start at
the similar time and compactor cancels creation of .krf file.
The pendingKrfTags structure is usually cleared when .krf file is created, 
but since
compaction canceled creation of .krf, the pendingKrfTags structure remain 
in memory
until Oplog representing orphaned .drf file is deleted.

Solution:
Clear the regionMap data structure of the Oplog when it is compacted 
(currently it is
deleted when the Oplog is destroyed).

Co-authored-by: Alberto Gomez 
---
 ...ObjectThatAreNoLongerNeededIntegrationTest.java | 449 +
 .../org/apache/geode/internal/cache/Oplog.java |  69 +++-
 2 files changed, 498 insertions(+), 20 deletions(-)

diff --git 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearsObjectThatAreNoLongerNeededIntegrationTest.java
 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearsObjectThatAreNoLongerNeededIntegrationTest.java
new file mode 100644
index 00..ed1e06687c
--- /dev/null
+++ 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearsObjectThatAreNoLongerNeededIntegrationTest.java
@@ -0,0 +1,449 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geode.internal.cache;
+
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Properties;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.rules.TestName;
+
+import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.DataPolicy;
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionFactory;
+import org.apache.geode.cache.RegionShortcut;
+
+/**
+ * Verifies that the unnecessary memory is cleared when operational log is 
compacted.
+ */
+public class 
DiskRegionCompactorClearsObjectThatAreNoLongerNeededIntegrationTest {
+
+  private final Properties config = new Properties();
+  private Cache cache;
+
+  private File[] diskDirs;
+  private int[] diskDirSizes;
+
+  private String regionName;
+  private String diskStoreName;
+
+  @Rule
+  public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+

[geode] branch develop updated (07a1aac -> f4d173b)

2022-03-22 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 07a1aac  GEODE-10145: Organize Dockerfile to work around alpine compat 
issues (#7466)
 add f4d173b  GEODE-10123: Improve "create region" checks (#7443)

No new revisions were added by this update.

Summary of changes:
 .../cli/commands/CreateRegionCommandDUnitTest.java | 10 +--
 .../commands/CreateRegionSecurityDUnitTest.java|  2 +-
 .../internal/cli/commands/CreateRegionCommand.java | 86 ++
 3 files changed, 92 insertions(+), 6 deletions(-)


[geode] branch develop updated (6579b01 -> 4b5b30e)

2022-01-25 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 6579b01  GEODE-8616: Refactoring the test to remove deprecated APIs 
(#7301)
 add 4b5b30e  GEODE-9969: Fix unescaping the region name with underscore 
(#7282)

No new revisions were added by this update.

Summary of changes:
 ...gDiskStoreAfterServerRestartAcceptanceTest.java | 161 +
 .../internal/cache/PartitionedRegionHelper.java|   2 +
 .../cache/PartitionedRegionHelperJUnitTest.java|  42 --
 3 files changed, 189 insertions(+), 16 deletions(-)
 create mode 100644 
geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/persistence/MissingDiskStoreAfterServerRestartAcceptanceTest.java


[geode] branch develop updated: GEODE-9881: Oplog not compacted after recovery (#7193)

2022-01-11 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 c0fbe30  GEODE-9881: Oplog not compacted after recovery (#7193)
c0fbe30 is described below

commit c0fbe309ded8e1b53b048ff80a1892eb6a1285ff
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Tue Jan 11 12:27:42 2022 +0100

GEODE-9881: Oplog not compacted after recovery (#7193)

* GEODE-9881: Oplog not compacted after recovery
---
 ...ctorClearOplogAfterRecoveryIntegrationTest.java | 182 +
 .../geode/internal/offheap/OffHeapRegionBase.java  |   5 +-
 .../org/apache/geode/internal/cache/Oplog.java |   2 +-
 3 files changed, 187 insertions(+), 2 deletions(-)

diff --git 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearOplogAfterRecoveryIntegrationTest.java
 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearOplogAfterRecoveryIntegrationTest.java
new file mode 100644
index 000..18357a7
--- /dev/null
+++ 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearOplogAfterRecoveryIntegrationTest.java
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geode.internal.cache;
+
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.junit.rules.TestName;
+
+import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.DataPolicy;
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionFactory;
+import org.apache.geode.cache.RegionShortcut;
+
+/**
+ * Verifies that automatic compaction works after cache recovered from oplogs
+ */
+public class DiskRegionCompactorClearOplogAfterRecoveryIntegrationTest {
+
+  private final Properties config = new Properties();
+  private Cache cache;
+
+  private File[] diskDirs;
+  private int[] diskDirSizes;
+
+  private String regionName;
+  private String diskStoreName;
+
+  @Rule
+  public TemporaryFolder temporaryFolder = new TemporaryFolder();
+
+  @Rule
+  public TestName testName = new TestName();
+
+  private static final int ENTRY_RANGE = 350;
+
+  @Before
+  public void setUp() throws Exception {
+String uniqueName = getClass().getSimpleName() + "_" + 
testName.getMethodName();
+regionName = uniqueName + "_region";
+diskStoreName = uniqueName + "_diskStore";
+
+cache = new CacheFactory(config).create();
+
+diskDirs = new File[1];
+diskDirs[0] = createDirectory(temporaryFolder.getRoot(), 
testName.getMethodName());
+diskDirSizes = new int[1];
+Arrays.fill(diskDirSizes, Integer.MAX_VALUE);
+
+DiskStoreImpl.SET_IGNORE_PREALLOCATE = true;
+TombstoneService.EXPIRED_TOMBSTONE_LIMIT = 1;
+TombstoneService.REPLICATE_TOMBSTONE_TIMEOUT = 1;
+  }
+
+  @After
+  public void tearDown() throws Exception {
+try {
+  cache.close();
+} finally {
+  DiskStoreImpl.SET_IGNORE_PREALLOCATE = false;
+}
+  }
+
+  /**
+   * Verifies that compaction works as expected after region is recovered
+   **/
+  @Test
+  public void testThatCompactionWorksAfterRegionIsClosedAndThenRecovered()
+  throws InterruptedException {
+
+createDiskStore(30, 1);
+Region region = createRegion();
+DiskStoreImpl diskStore = ((InternalRegion) region).getDiskStore();
+
+// Create several oplog files (.crf and .drf) by executing put operations 
in defined range
+executePutOperations(region);
+await().untilAsserted(() -> 
assertThat(getCurrentNumberOfOplogs(diskStore)).isEqualTo(5));
+
+Set oplogIds = getAllOplogIds(di

[geode] branch develop updated (0e787a6 -> 87b1007)

2022-01-04 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 0e787a6  GEODE-9887: Fix for deadlock during server shutdown (#7194)
 add 87b1007  Revert "GEODE-9854: Orphaned .drf file causing memory leak 
(#7145)" (#7209)

No new revisions were added by this update.

Summary of changes:
 ...ObjectThatAreNoLongerNeededIntegrationTest.java | 407 -
 .../org/apache/geode/internal/cache/Oplog.java |  70 +---
 2 files changed, 20 insertions(+), 457 deletions(-)
 delete mode 100644 
geode-core/src/integrationTest/java/org/apache/geode/internal/cache/DiskRegionCompactorClearsObjectThatAreNoLongerNeededIntegrationTest.java


[geode] branch develop updated (d974f15 -> 0e787a6)

2022-01-04 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from d974f15  GEODE-8644: CME will send additional UPDATE_VERSION event via 
serial … (#7204)
 add 0e787a6  GEODE-9887: Fix for deadlock during server shutdown (#7194)

No new revisions were added by this update.

Summary of changes:
 .../GatewaySenderEventRemoteDispatcher.java|  8 +++
 ...atewaySenderEventRemoteDispatcherJUnitTest.java | 68 ++
 2 files changed, 76 insertions(+)


[geode] branch develop updated: GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to override CompiledValue.RESULT_LIMIT (#7010)

2021-11-14 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 67359dc  GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to 
override CompiledValue.RESULT_LIMIT (#7010)
67359dc is described below

commit 67359dcd3eb0f0ea00ea751f7770ecb3b1750386
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Nov 15 08:08:09 2021 +0100

GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to override 
CompiledValue.RESULT_LIMIT (#7010)

* GEODE-9632: fix output for the range query with wildcard character
---
 .../query/functional/LimitClauseJUnitTest.java |  20 +-
 .../NonDistinctOrderByReplicatedJUnitTest.java |   2 +-
 .../functional/OrderByReplicatedJUnitTest.java |   2 +-
 .../internal/AbstractGroupOrRangeJunction.java |   4 -
 .../geode/cache/query/internal/QueryUtils.java |   5 +
 .../query/internal/index/CompactRangeIndex.java|   9 +
 .../cache/query/internal/index/HashIndex.java  |   4 +
 .../cache/query/internal/index/IndexManager.java   |   2 +
 .../query/internal/index/PrimaryKeyIndex.java  |   8 +
 .../cache/query/internal/index/RangeIndex.java |   4 +
 .../query/dunit/QueryWithRangeIndexDUnitTest.java  | 206 +
 11 files changed, 250 insertions(+), 16 deletions(-)

diff --git 
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
 
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
index 6dc3392..688069a 100644
--- 
a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
+++ 
b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/functional/LimitClauseJUnitTest.java
@@ -673,7 +673,7 @@ public class LimitClauseJUnitTest {
   assertEquals(5, result.size());
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -710,7 +710,7 @@ public class LimitClauseJUnitTest {
   assertEquals(5, result.size());
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -754,7 +754,7 @@ public class LimitClauseJUnitTest {
   assertEquals(5, result.size());
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -799,7 +799,7 @@ public class LimitClauseJUnitTest {
   assertEquals(5, result.size());
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -837,7 +837,7 @@ public class LimitClauseJUnitTest {
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
   assertTrue(wrapper.getCollectionType().getElementType() instanceof 
StructType);
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -919,7 +919,7 @@ public class LimitClauseJUnitTest {
   assertEquals(5, result.size());
   SelectResults wrapper = (SelectResults) result;
   assertEquals(5, wrapper.asSet().size());
-  assertTrue(observer.limitAppliedAtIndex);
+  assertFalse(observer.limitAppliedAtIndex);
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -1051,7 +1051,7 @@ public class LimitClauseJUnitTest {
   SelectResults wrapper = (SelectResults) result;
   assertEquals(10, wrapper.asSet().size());
   assertFalse(observer.limitAppliedAtIndex && 
observer.indexName.equals("idIndex"));
-  assertTrue(observer.limitAppliedAtIndex && 
observer.indexName.equals("statusIndex"));
+  assertFalse(observer.limitAppliedAtIndex && 
observer.indexName.equals("statusIndex"));
 } catch (Exception e) {
   CacheUtils.getLogger().error(e);
   fail(e.toString());
@@ -1130,7 +1130,7 @@ public class LimitClauseJUn

[geode] branch develop updated: GEODE-8876: Statistics not collecting correct value for gets when tra… (#6199)

2021-10-04 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 5dde7d7  GEODE-8876: Statistics not collecting correct value for gets 
when tra… (#6199)
5dde7d7 is described below

commit 5dde7d765c252ef20cfb16981b18e68903e32165
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Mon Oct 4 09:45:40 2021 +0200

GEODE-8876: Statistics not collecting correct value for gets when tra… 
(#6199)

* GEODE-8876: Statistics not collecting correct value for gets when 
transaction is used
---
 .../geode/management/CachePerfStatsDUnitTest.java  | 298 +
 .../management/PartitionedRegionStatsTest.java |  76 --
 .../org/apache/geode/cache/ProxyJUnitTest.java |   3 +-
 .../apache/geode/internal/cache/BucketRegion.java  |  10 +
 .../geode/internal/cache/CachePerfStats.java   |   4 +
 .../apache/geode/internal/cache/LocalRegion.java   |   4 +
 .../geode/internal/cache/PartitionedRegion.java|   8 +-
 .../apache/geode/internal/cache/RegionStats.java   |   2 +
 .../cache/SearchLoadAndWriteProcessor.java |   6 +
 9 files changed, 330 insertions(+), 81 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/management/CachePerfStatsDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/management/CachePerfStatsDUnitTest.java
new file mode 100644
index 000..0e34cc1
--- /dev/null
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/management/CachePerfStatsDUnitTest.java
@@ -0,0 +1,298 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.management;
+
+import static org.apache.geode.test.dunit.VM.getHostName;
+import static org.apache.geode.test.dunit.VM.getVM;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.Serializable;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.geode.cache.CacheTransactionManager;
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.PartitionAttributesFactory;
+import org.apache.geode.cache.Region;
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.cache.client.ClientRegionFactory;
+import org.apache.geode.cache.client.ClientRegionShortcut;
+import org.apache.geode.cache.client.PoolFactory;
+import org.apache.geode.cache.client.PoolManager;
+import org.apache.geode.cache.client.internal.PoolImpl;
+import org.apache.geode.cache.server.CacheServer;
+import org.apache.geode.distributed.internal.ServerLocation;
+import org.apache.geode.internal.cache.CachePerfStats;
+import org.apache.geode.internal.cache.DistributedRegion;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.PartitionedRegionDataStore;
+import org.apache.geode.internal.cache.TXManagerImpl;
+import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.rules.CacheRule;
+import org.apache.geode.test.dunit.rules.ClientCacheRule;
+import org.apache.geode.test.dunit.rules.DistributedRule;
+import org.apache.geode.test.junit.rules.serializable.SerializableTestName;
+
+public class CachePerfStatsDUnitTest implements Serializable {
+
+  private static final int NON_EXISTENT_KEY = 1234;
+
+  private String hostName;
+  private String uniqueName;
+  private String regionNamePartitioned;
+  private String regionNameReplicated;
+  private VM server1;
+  private VM server2;
+  private int port1;
+
+  @Rule
+  public DistributedRule distributedRule = new DistributedRule();
+
+  @Rule
+  public CacheRule cacheRule = new CacheRule();
+
+  @Rule
+  public ClientCacheRule clientCacheRule = new ClientCacheRule();
+
+  @Rule
+  public SerializableTestName testName = new SerializableTestName();
+
+  @Before
+  public void setUp() {
+server1 = getVM(0);
+server2 = getVM(1);
+hostName = getHostName();
+uniqueName = getClass().getSimpleName() + "_" + testName.getMethodName();
+  

[geode] branch develop updated: GEODE-7309: uplift lucene to 7.1.0 (#6351)

2021-09-23 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 6862935  GEODE-7309: uplift lucene to 7.1.0 (#6351)
6862935 is described below

commit 68629356f561a932f5dfbace70b01d9971a42473
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Thu Sep 23 07:52:26 2021 +0200

GEODE-7309: uplift lucene to 7.1.0 (#6351)

* GEODE-7309: uplift lucene to 7.1.0
---
 .../src/test/resources/expected-pom.xml| 15 +---
 .../gradle/plugins/DependencyConstraints.groovy|  3 +-
 .../integrationTest/resources/assembly_content.txt | 10 ++---
 .../resources/dependency_classpath.txt | 10 ++---
 .../geode/internal/cache/GemFireCacheImpl.java |  8 
 .../apache/geode/internal/cache/InternalCache.java |  3 ++
 .../cache/InternalCacheForClientAccess.java|  6 +++
 .../internal/cache/xmlcache/CacheCreation.java |  6 +++
 .../tools_modules/lucene_integration.html.md.erb   |  1 +
 geode-lucene/build.gradle  |  1 +
 .../repository/IndexRepositoryImplJUnitTest.java   |  2 +-
 .../lucene/internal/IndexRepositoryFactory.java|  8 
 .../cache/lucene/internal/LuceneEventListener.java |  6 +++
 .../cache/lucene/internal/LuceneIndexStats.java|  2 +-
 .../internal/repository/IndexRepositoryImpl.java   | 32 +++-
 .../internal/IndexRepositoryFactoryTest.java   | 10 +
 .../internal/LuceneServiceImplJUnitTest.java   |  3 +-
 .../LuceneSearchWithRollingUpgradeDUnit.java   | 30 ++-
 .../LuceneSearchWithRollingUpgradeTestBase.java| 44 +-
 ...ultAfterTwoLocatorsWithTwoServersAreRolled.java | 27 +
 ...tResultsAfterClientAndServersAreRolledOver.java | 33 +++-
 ...ntAndServersAreRolledOverAllBucketsCreated.java | 12 +++---
 ...ccessfulWhenAllServersRollToCurrentVersion.java |  4 +-
 23 files changed, 204 insertions(+), 72 deletions(-)

diff --git a/boms/geode-all-bom/src/test/resources/expected-pom.xml 
b/boms/geode-all-bom/src/test/resources/expected-pom.xml
index d1da6d6..0553d63 100644
--- a/boms/geode-all-bom/src/test/resources/expected-pom.xml
+++ b/boms/geode-all-bom/src/test/resources/expected-pom.xml
@@ -555,27 +555,32 @@
   
 org.apache.lucene
 lucene-analyzers-common
-6.6.6
+7.1.0
   
   
 org.apache.lucene
 lucene-analyzers-phonetic
-6.6.6
+7.1.0
   
   
 org.apache.lucene
 lucene-core
-6.6.6
+7.1.0
   
   
 org.apache.lucene
 lucene-queryparser
-6.6.6
+7.1.0
   
   
 org.apache.lucene
 lucene-test-framework
-6.6.6
+7.1.0
+  
+  
+org.apache.lucene
+lucene-backward-codecs
+7.1.0
   
   
 org.hamcrest
diff --git 
a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
 
b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
index 5be3bd7..cd4583e 100644
--- 
a/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
+++ 
b/buildSrc/src/main/groovy/org/apache/geode/gradle/plugins/DependencyConstraints.groovy
@@ -209,12 +209,13 @@ class DependencyConstraints implements Plugin {
   entry('log4j-slf4j-impl')
 }
 
-dependencySet(group: 'org.apache.lucene', version: '6.6.6') {
+dependencySet(group: 'org.apache.lucene', version: '7.1.0') {
   entry('lucene-analyzers-common')
   entry('lucene-analyzers-phonetic')
   entry('lucene-core')
   entry('lucene-queryparser')
   entry('lucene-test-framework')
+  entry('lucene-backward-codecs')
 }
 
 dependencySet(group: 'org.hamcrest', version: '2.2') {
diff --git a/geode-assembly/src/integrationTest/resources/assembly_content.txt 
b/geode-assembly/src/integrationTest/resources/assembly_content.txt
index 1467ae7..4df96de 100644
--- a/geode-assembly/src/integrationTest/resources/assembly_content.txt
+++ b/geode-assembly/src/integrationTest/resources/assembly_content.txt
@@ -1036,11 +1036,11 @@ lib/log4j-core-2.14.1.jar
 lib/log4j-jcl-2.14.1.jar
 lib/log4j-jul-2.14.1.jar
 lib/log4j-slf4j-impl-2.14.1.jar
-lib/lucene-analyzers-common-6.6.6.jar
-lib/lucene-analyzers-phonetic-6.6.6.jar
-lib/lucene-core-6.6.6.jar
-lib/lucene-queries-6.6.6.jar
-lib/lucene-queryparser-6.6.6.jar
+lib/lucene-analyzers-common-7.1.0.jar
+lib/lucene-analyzers-phonetic-7.1.0.jar
+lib/lucene-core-7.1.0.jar
+lib/lucene-queries-7.1.0.jar
+lib/lucene-queryparser-7.1.0.jar
 lib/micrometer-core-1.7.3.jar
 lib/mx4j-3.0.2.jar
 lib/mx4j-remote-3.0.2.jar
diff --git 
a/geode-assembly/src/integrationTest/resources/dependency_classpath.txt 
b/geode-assembly/src/integrationTest/res

[geode] branch develop updated (8aeec39 -> 88860d0)

2021-08-12 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 8aeec39  GEODE-9338: Remove strong guarantees for Radish PUBLISH 
command (#6704)
 add 88860d0  GEODE-9409: wait for PdxRegistry before executing create 
region (#6743)

No new revisions were added by this update.

Summary of changes:
 .../cli/functions/RegionCreateFunction.java| 16 ++-
 .../functions/RegionCreateFunctionJUnitTest.java   | 56 +-
 2 files changed, 70 insertions(+), 2 deletions(-)


[geode] branch develop updated (6702402 -> 9dfff0c)

2021-05-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 6702402  GEODE-9288: DeployedJarTest fails because JavaCompiler fails 
to delete temp dir (#6501)
 add 9dfff0c  GEODE-9281: fix printing results for the query when multiple 
indexes … (#6485)

No new revisions were added by this update.

Summary of changes:
 .../geode/cache/query/internal/QueryUtils.java |  8 +++
 .../query/internal/index/MemoryIndexStore.java |  2 +-
 .../query/dunit/QueryWithIndexesDUnitTest.java | 83 ++
 3 files changed, 92 insertions(+), 1 deletion(-)
 create mode 100644 
geode-cq/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryWithIndexesDUnitTest.java


[geode] branch develop updated: GEODE-9174: fix displaying the result of a gfsh query containing a UUID (#6365)

2021-04-28 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 465173c  GEODE-9174: fix displaying the result of a gfsh query 
containing a UUID (#6365)
465173c is described below

commit 465173cf7de037239f08b27921066fd84e8cc1f9
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Wed Apr 28 08:17:02 2021 +0200

GEODE-9174: fix displaying the result of a gfsh query containing a UUID 
(#6365)
---
 .../cli/commands/QueryCommandDUnitTestBase.java| 23 ++
 .../internal/cli/domain/DataCommandResult.java |  3 +++
 2 files changed, 26 insertions(+)

diff --git 
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/QueryCommandDUnitTestBase.java
 
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/QueryCommandDUnitTestBase.java
index 4ece413..52f27f2 100644
--- 
a/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/QueryCommandDUnitTestBase.java
+++ 
b/geode-dunit/src/main/java/org/apache/geode/management/internal/cli/commands/QueryCommandDUnitTestBase.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Random;
+import java.util.UUID;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -176,6 +177,21 @@ public class QueryCommandDUnitTestBase {
   }
 
   @Test
+  public void testSimpleQueryWithUUID() {
+server1.invoke(() -> 
prepareDataForRegionWithUUID(DATA_PAR_REGION_NAME_PATH));
+String uuidKey = String.valueOf(new UUID(1, 1));
+String query = "query --query=\"select key from " + 
DATA_PAR_REGION_NAME_PATH
++ ".entries\"";
+String query1 = "query --query=\"select key,value from " + 
DATA_PAR_REGION_NAME_PATH
++ ".entries\"";
+
+gfsh.executeAndAssertThat(query).statusIsSuccess()
+.containsOutput(uuidKey);
+gfsh.executeAndAssertThat(query1).statusIsSuccess()
+.containsOutput(uuidKey, "value");
+  }
+
+  @Test
   public void testQueryEvictedDataDeserializable() {
 server1.invoke(() -> 
setupReplicatedRegionWithEviction(DATA_REGION_WITH_EVICTION_NAME));
 
locator.waitUntilRegionIsReadyOnExactlyThisManyServers(DATA_REGION_WITH_EVICTION_NAME_PATH,
 1);
@@ -220,6 +236,13 @@ public class QueryCommandDUnitTestBase {
 dataRegion.put(2, "value%");
   }
 
+  private static void prepareDataForRegionWithUUID(String regionPath) {
+InternalCache cache = ClusterStartupRule.getCache();
+Region dataRegion = cache.getRegion(regionPath);
+
+dataRegion.put(new UUID(1, 1), "value");
+  }
+
   private static void prepareNotDeserializableDataForRegion(String regionPath) 
{
 InternalCache cache = ClusterStartupRule.getCache();
 Region dataRegion = cache.getRegion(regionPath);
diff --git 
a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
 
b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
index 3f00a95..6bd5fcd 100644
--- 
a/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
+++ 
b/geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/domain/DataCommandResult.java
@@ -19,6 +19,7 @@ import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -687,6 +688,8 @@ public class DataCommandResult implements Serializable {
 resolvePdxToColumns(columnData, (PdxInstance) value);
   } else if (value instanceof Struct) {
 resolveStructToColumns(columnData, (StructImpl) value);
+  } else if (value instanceof UUID) {
+columnData.put("Result", valueToJson(value));
   } else {
 ObjectMapper mapper = new ObjectMapper();
 JsonNode node = mapper.valueToTree(value);


[geode] branch develop updated: GEODE-8918: fix replication in multisite systems (#6008)

2021-03-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 73a2120  GEODE-8918: fix replication in multisite systems (#6008)
73a2120 is described below

commit 73a2120d9c6bca1cd62580414429a40022fe64ca
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Mar 29 08:28:31 2021 +0200

GEODE-8918: fix replication in multisite systems (#6008)

* GEODE-8918: fix replication in multisite systems
---
 .../geode/internal/cache/AbstractRegion.java   |  8 ++-
 .../geode/internal/cache/AbstractRegionTest.java   | 39 
 .../ParallelGatewaySenderOperationsDUnitTest.java  | 73 ++
 3 files changed, 118 insertions(+), 2 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
index 8e919fc..3f09662 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java
@@ -741,8 +741,8 @@ public abstract class AbstractRegion implements 
InternalRegion, AttributesMutato
 // This is for all regions except pdx Region
 if (!isPdxTypesRegion) {
   // Make sure we are distributing to only those senders whose id
-  // is available on this region
-  if (allGatewaySenderIds.contains(sender.getId())) {
+  // is available on this region and whose state is running
+  if (hasRunningGatewaySender(allGatewaySenders, sender)) {
 allRemoteDSIds.add(sender.getRemoteDSId());
   }
 } else { // this else is for PDX region
@@ -1897,6 +1897,10 @@ public abstract class AbstractRegion implements 
InternalRegion, AttributesMutato
 PoolImpl find(String poolName);
   }
 
+  static boolean hasRunningGatewaySender(Set senders, 
GatewaySender sender) {
+return senders.contains(sender) && sender.isRunning();
+  }
+
   @VisibleForTesting
   ConcurrentHashMap getEntryExpiryTasks() {
 return entryExpiryTasks;
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionTest.java
index 42b5b0b..48c5037 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/AbstractRegionTest.java
@@ -18,8 +18,12 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.Collections;
+import java.util.Set;
+
 import org.junit.Test;
 
+import org.apache.geode.cache.wan.GatewaySender;
 
 public class AbstractRegionTest {
 
@@ -34,4 +38,39 @@ public class AbstractRegionTest {
 assertThat(mockAbstractRegion.isAllEvents()).isTrue();
 assertThat(mockAbstractRegion.cacheTimeMillis()).isEqualTo(millis);
   }
+
+  @Test
+  public void hasRunningGatewaySender_returnsFalse_ifSendersIsEmpty() {
+GatewaySender sender = mock(GatewaySender.class);
+
+boolean value = 
AbstractRegion.hasRunningGatewaySender(Collections.emptySet(), sender);
+
+assertThat(value).isFalse();
+  }
+
+  @Test
+  public void hasRunningGatewaySender_returnsFalse_ifSenderIsStopped() {
+GatewaySender mockSender = mock(GatewaySender.class);
+Set senders = (Set) mock(Set.class);
+
+when(senders.contains(mockSender)).thenReturn(true);
+when(mockSender.isRunning()).thenReturn(false);
+
+boolean value = AbstractRegion.hasRunningGatewaySender(senders, 
mockSender);
+
+assertThat(value).isFalse();
+  }
+
+  @Test
+  public void hasRunningGatewaySender_returnsTrue_ifSenderIsRunning() {
+GatewaySender mockSender = mock(GatewaySender.class);
+Set senders = (Set) mock(Set.class);
+
+when(senders.contains(mockSender)).thenReturn(true);
+when(mockSender.isRunning()).thenReturn(true);
+
+boolean value = AbstractRegion.hasRunningGatewaySender(senders, 
mockSender);
+
+assertThat(value).isTrue();
+  }
 }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
index 2842e84..3a8a6a1 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
@@ -800,6 +800,79 @@ public class ParallelGatewaySenderOperationsDUnitTest 
extends WANTestBase {
 

[geode] branch develop updated: GEODE-8955: using marshal instead of toString method (#6045)

2021-03-28 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 516bdc9  GEODE-8955: using marshal instead of toString method (#6045)
516bdc9 is described below

commit 516bdc9322e1068c14e901879a7fb4afeac9b181
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Mar 29 07:35:37 2021 +0200

GEODE-8955: using marshal instead of toString method (#6045)
---
 .../geode/cache/client/internal/locator/wan/LocatorHelper.java  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorHelper.java
 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorHelper.java
index ffbed71..6f4f070 100644
--- 
a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorHelper.java
+++ 
b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorHelper.java
@@ -125,11 +125,11 @@ public class LocatorHelper {
 (ConcurrentHashMap>) 
locatorListener.getAllServerLocatorsInfo();
 
 Set locatorsSet = new CopyOnWriteHashSet();
-locatorsSet.add(locator.toString());
+locatorsSet.add(locator.marshal());
 Set existingValue = 
allServerLocatorsInfo.putIfAbsent(distributedSystemId, locatorsSet);
 if (existingValue != null) {
-  if (!existingValue.contains(locator.toString())) {
-existingValue.add(locator.toString());
+  if (!existingValue.contains(locator.marshal())) {
+existingValue.add(locator.marshal());
   }
 }
   }


[geode] branch develop updated (15bbd42 -> a45dbf9)

2021-03-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 15bbd42  GEODE-9034: Make mandatory options to appear first when 
creating gate… (#6136)
 add a45dbf9  GEODE-8962: add an option to escape dollar($) character in 
the query (#6044)

No new revisions were added by this update.

Summary of changes:
 .../geode/cache/query/internal/CompiledLike.java   | 24 ++
 .../cli/commands/QueryCommandDUnitTestBase.java| 20 ++
 2 files changed, 44 insertions(+)


[geode] branch develop updated (bba1935 -> b46a0a2)

2021-01-25 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from bba1935  GEODE-8865: Create additional dunit and integration tests for 
Redis HMGET (#5945)
 add b46a0a2  GEODE-8846: Fix for transaction commit failure (#5927)

No new revisions were added by this update.

Summary of changes:
 .../ClientServerTransactionDistributedTest.java| 174 +
 .../apache/geode/internal/cache/TXManagerImpl.java |  37 ++---
 .../geode/internal/cache/TXManagerImplTest.java|  20 +++
 3 files changed, 211 insertions(+), 20 deletions(-)
 create mode 100644 
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/ClientServerTransactionDistributedTest.java



[geode] branch develop updated: GEODE-8202: Two-step serial gw sender threads start (#5900)

2021-01-18 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 3927ba9  GEODE-8202: Two-step serial gw sender threads start (#5900)
3927ba9 is described below

commit 3927ba9eeed5bee7e7639f926b48409c4b6dd3a7
Author: Alberto Bustamante Reyes 
AuthorDate: Mon Jan 18 13:57:31 2021 +0100

GEODE-8202: Two-step serial gw sender threads start (#5900)

* GEODE-8202: Two-step serial gw sender threads start
---
 ...iversWithSamePortAndHostnameForSendersTest.java | 127 +++-
 .../geode-list-gateway-receivers-server1.gfsh  |  20 ++
 .../geode-list-gateway-receivers-server2.gfsh  |  20 ++
 .../codeAnalysis/sanctionedDataSerializables.txt   |   8 +-
 .../geode/cache/configuration/CacheConfig.java |  23 +++
 .../org/apache/geode/cache/wan/GatewaySender.java  |  10 +
 .../geode/cache/wan/GatewaySenderFactory.java  |  13 ++
 .../internal/cache/wan/AbstractGatewaySender.java  |  18 ++
 .../wan/AbstractGatewaySenderEventProcessor.java   |   8 +
 .../internal/cache/wan/GatewaySenderAdvisor.java   |  27 ++-
 .../cache/wan/GatewaySenderAttributes.java |   6 +
 ...oncurrentSerialGatewaySenderEventProcessor.java |  57 --
 .../geode/internal/cache/xmlcache/CacheXml.java|   5 +-
 .../internal/cache/xmlcache/CacheXmlGenerator.java |  10 +
 .../internal/cache/xmlcache/CacheXmlParser.java|  11 ++
 .../geode/management/internal/i18n/CliStrings.java |   4 +
 .../geode.apache.org/schema/cache/cache-1.0.xsd|   1 +
 .../gfsh/command-pages/create.html.md.erb  |   5 +
 .../cli/commands/CreateGatewaySenderCommand.java   |  27 ++-
 .../cli/functions/GatewaySenderCreateFunction.java |   7 +
 .../cli/functions/GatewaySenderFunctionArgs.java   |   6 +
 .../sanctioned-geode-gfsh-serializables.txt|   2 +-
 .../commands/CreateGatewaySenderCommandTest.java   |  68 ++-
 ...CreateDestroyGatewaySenderCommandDUnitTest.java |   2 +-
 .../wan/GatewaySenderEventRemoteDispatcher.java|  93 +++--
 .../cache/wan/GatewaySenderFactoryImpl.java|  10 +-
 .../RemoteSerialGatewaySenderEventProcessor.java   |   2 +-
 .../cache/wan/serial/SerialGatewaySenderImpl.java  |   1 +
 ...atewaySenderEventRemoteDispatcherJUnitTest.java | 214 -
 29 files changed, 751 insertions(+), 54 deletions(-)

diff --git 
a/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
 
b/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
index 6be6066..7247362 100644
--- 
a/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
+++ 
b/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
@@ -22,13 +22,17 @@ import static 
org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static 
org.apache.geode.distributed.ConfigurationProperties.REMOTE_LOCATORS;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
+import java.io.IOException;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 import java.util.StringTokenizer;
+import java.util.Vector;
 
 import com.palantir.docker.compose.DockerComposeRule;
 import org.junit.BeforeClass;
@@ -71,14 +75,8 @@ import org.apache.geode.test.junit.categories.WanTest;
  * traffic directed to the 2324 port to the receivers in a round robin fashion.
  *
  * - Another site consisting of a 1-server, 1-locator Geode cluster.
- * The server hosts a partition region (region-wan) and has a parallel gateway 
receiver
+ * The server hosts a partition region (region-wan) and has a gateway receiver
  * to send events to the remote site.
- *
- * The aim of the tests is verify that when several gateway receivers in a 
remote site
- * share the same port and hostname-for-senders, the pings sent from the 
gateway senders
- * reach the right gateway receiver and not just any of the receivers. Failure 
to do this
- * may result in the closing of connections by a gateway receiver for not 
having
- * received the ping in time.
  */
 @Category({WanTest.class})
 public class SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest {
@@ -122,6 +120,13 @@ public class 
SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest {
 super();
   }
 
+  /**
+   * The aim of this test is verify that when several gateway receivers in a 
remote site
+   * share the same port and hostname-for-senders, the pings sent from the 
gateway senders
+   * reach the right

[geode] branch develop updated (10374d8 -> 564facd)

2021-01-15 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 10374d8  GEODE-8822: Clear statistics when clean queue option is used 
(#5889)
 add 564facd  GEODE-8835: Increment connection count if create successfully 
(#5907)

No new revisions were added by this update.

Summary of changes:
 .../pooling/ConnectionManagerImplTest.java | 31 ++
 .../internal/pooling/ConnectionManagerImpl.java|  7 +++--
 2 files changed, 36 insertions(+), 2 deletions(-)



[geode] branch develop updated: GEODE-8765: Fix NullPointerException when group-transaction-events an… (#5829)

2020-12-14 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 4c00984  GEODE-8765: Fix NullPointerException when 
group-transaction-events an… (#5829)
4c00984 is described below

commit 4c00984eb3c32972b4b03fdbe2b6397decdc177f
Author: Alberto Gomez 
AuthorDate: Mon Dec 14 10:56:31 2020 +0100

GEODE-8765: Fix NullPointerException when group-transaction-events an… 
(#5829)

* GEODE-8765: Fix NullPointerException when group-transaction-events and 
events in and not in transactions are sent.
---
 .../wan/parallel/ParallelGatewaySenderQueue.java   |  60 +---
 .../cache/wan/serial/SerialGatewaySenderQueue.java |  58 
 .../internal/cache/BucketRegionQueueJUnitTest.java |  41 +++---
 .../parallel/ParallelWANPropagationDUnitTest.java  | 137 --
 ...lWANPropagation_PartitionedRegionDUnitTest.java | 160 ++---
 5 files changed, 351 insertions(+), 105 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
index 18c1624..2100d54 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
@@ -1260,7 +1260,6 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 addPeekedEvents(batch, batchSize == BATCH_BASED_ON_TIME_ONLY ? 
DEFAULT_BATCH_SIZE : batchSize);
 
 int bId;
-Map incompleteTransactionsInBatch = new 
HashMap<>();
 while (batchSize == BATCH_BASED_ON_TIME_ONLY || batch.size() < batchSize) {
   if (areLocalBucketQueueRegionsPresent() && ((bId = 
getRandomPrimaryBucket(prQ)) != -1)) {
 GatewaySenderEventImpl object = (GatewaySenderEventImpl) 
peekAhead(prQ, bId);
@@ -1280,13 +1279,6 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 logger.debug("The gatewayEventImpl in peek is {}", object);
   }
   batch.add(object);
-  if (object.getTransactionId() != null) {
-if (object.isLastEventInTransaction()) {
-  incompleteTransactionsInBatch.remove(object.getTransactionId());
-} else {
-  incompleteTransactionsInBatch.put(object.getTransactionId(), 
bId);
-}
-  }
   peekedEvents.add(object);
 
 } else {
@@ -1316,7 +1308,7 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 }
 
 if (batch.size() > 0) {
-  peekEventsFromIncompleteTransactions(batch, 
incompleteTransactionsInBatch, prQ);
+  peekEventsFromIncompleteTransactions(batch, prQ);
 }
 
 if (isDebugEnabled) {
@@ -1351,12 +1343,14 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
   }
 
   private void 
peekEventsFromIncompleteTransactions(List batch,
-  Map incompleteTransactionIdsInBatch, 
PartitionedRegion prQ) {
+  PartitionedRegion prQ) {
 if (!mustGroupTransactionEvents()) {
   return;
 }
 
-if (areAllTransactionsCompleteInBatch(incompleteTransactionIdsInBatch)) {
+Map incompleteTransactionIdsInBatch =
+getIncompleteTransactionsInBatch(batch);
+if (incompleteTransactionIdsInBatch.size() == 0) {
   return;
 }
 
@@ -1389,8 +1383,19 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 }
   }
 
-  private boolean areAllTransactionsCompleteInBatch(Map 
incompleteTransactions) {
-return (incompleteTransactions.size() == 0);
+  private Map getIncompleteTransactionsInBatch(
+  List batch) {
+Map incompleteTransactionsInBatch = new 
HashMap<>();
+for (GatewaySenderEventImpl event : batch) {
+  if (event.getTransactionId() != null) {
+if (event.isLastEventInTransaction()) {
+  incompleteTransactionsInBatch.remove(event.getTransactionId());
+} else {
+  incompleteTransactionsInBatch.put(event.getTransactionId(), 
event.getBucketId());
+}
+  }
+}
+return incompleteTransactionsInBatch;
   }
 
   @VisibleForTesting
@@ -1472,19 +1477,18 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 for (int i = 0; i < batchSize || incompleteTransactionsInBatch.size() != 
0; i++) {
   GatewaySenderEventImpl event = this.peekedEventsProcessing.remove();
   batch.add(event);
-  if (event.getTransactionId() != null) {
-if (event.isLastEventInTransaction()) {
-  incompleteTransactionsInBatch.remove(event.getTransactionId());
-} else {
-  incompleteTransactionsInBatch.add(event.getTransactionId())

[geode] branch develop updated: GEODE-8329: Fix for durable CQ reqistration recovery (#5360)

2020-12-07 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 38139fb  GEODE-8329: Fix for durable CQ reqistration recovery (#5360)
38139fb is described below

commit 38139fbb00cbea872348d3554f9589bd7c5bfdde
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Mon Dec 7 12:35:49 2020 +0100

GEODE-8329: Fix for durable CQ reqistration recovery (#5360)

* GEODE-8329: Fix for durable CQ reqistration recovery

This change solves the issue when the client without configured HA is
wrongly re-registering durable CQs as non durable during the server
failover.

* Fix for stressTest

* empty commit to re-launch CI
---
 .../cache/client/internal/QueueManagerImpl.java|   3 +-
 .../tier/sockets/DurableClientCQDUnitTest.java | 139 +
 .../cache/tier/sockets/DurableClientTestBase.java  |  52 ++--
 3 files changed, 183 insertions(+), 11 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
index 212d2de..145817c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueueManagerImpl.java
@@ -1112,7 +1112,8 @@ public class QueueManagerImpl implements QueueManager {
 .set(((DefaultQueryService) 
this.pool.getQueryService()).getUserAttributes(name));
   }
   try {
-if (((CqStateImpl) cqi.getState()).getState() != CqStateImpl.INIT) {
+if (((CqStateImpl) cqi.getState()).getState() != CqStateImpl.INIT
+&& cqi.isDurable() == isDurable) {
   cqi.createOn(recoveredConnection, isDurable);
 }
   } finally {
diff --git 
a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQDUnitTest.java
 
b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQDUnitTest.java
index 4b24be9..cc171eb 100644
--- 
a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQDUnitTest.java
+++ 
b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQDUnitTest.java
@@ -18,6 +18,7 @@ package org.apache.geode.internal.cache.tier.sockets;
 import static org.apache.geode.cache.Region.SEPARATOR;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.NetworkUtils.getServerHostName;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -51,10 +52,13 @@ import org.apache.geode.distributed.internal.ServerLocation;
 import org.apache.geode.distributed.internal.ServerLocationAndMemberId;
 import org.apache.geode.internal.cache.ClientServerObserverAdapter;
 import org.apache.geode.internal.cache.ClientServerObserverHolder;
+import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.AsyncInvocation;
 import org.apache.geode.test.dunit.IgnoredException;
+import org.apache.geode.test.dunit.NetworkUtils;
 import org.apache.geode.test.dunit.SerializableRunnableIF;
 import org.apache.geode.test.dunit.VM;
+import org.apache.geode.test.dunit.WaitCriterion;
 import org.apache.geode.test.junit.categories.ClientSubscriptionTest;
 
 @Category({ClientSubscriptionTest.class})
@@ -145,6 +149,107 @@ public class DurableClientCQDUnitTest extends 
DurableClientTestBase {
   }
 
   /**
+   * Test that durable CQ is correctly re-registered to new server after the 
failover and
+   * that the durable client functionality works as expected.
+   * Steps:
+   * 1. Start two servers
+   * 2. Start durable client without HA and register durable CQs
+   * 3. Shutdown the server that is hosting CQs subscription queue (primary 
server)
+   * 4. Wait for the durable client to perform the failover to the another 
server
+   * 5. Shutdown the durable client with keepAlive flag set to true
+   * 6. Provision remaining server with the data that should fulfil CQ 
condition and fill the queue
+   * 7. Start the durable client again and check that it receives correct 
events from queue
+   */
+  @Test
+  public void testDurableCQServerFailoverWithoutHAConfigured()
+  throws Exception {
+String greaterThan5Query = "select * from " + SEPARATOR + regionName + " p 
where p.ID > 5";
+String allQuery = "select * from " + SEPARATOR + regionName + " p where 
p.ID > -1";
+String lessThan5Query = "select * from " + SEP

[geode] branch develop updated: GEODE-8687: Fix for handling of PdxSerializationException on client (#5730)

2020-12-02 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 2e7e456  GEODE-8687: Fix for handling of PdxSerializationException on 
client (#5730)
2e7e456 is described below

commit 2e7e45699b74812038dc516aaf7c14621951090b
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Thu Dec 3 08:23:54 2020 +0100

GEODE-8687: Fix for handling of PdxSerializationException on client (#5730)

* GEODE-8687: Improve handling of seralization error

* Improves handling of PdxSerializationException on client at the reception
of events from subscription queue

* Faulty behavior: At the reception of event for which
PdxSerializationException is thrown the client would always shutdown
CacheClientUpdater, destroy subscription queue connection
and try to perform failover to other server in cluster

* Behaviour with this fix: At the reception of event that provoke
PdxSerializationException client will only log the exception

* DurableClientCQAutoSerializer test updated

* Empty commit to trigger test

* Updates after review
---
 .../cache/tier/sockets/CacheClientUpdater.java |   3 +-
 .../DurableClientCQAutoSerializerDUnitTest.java| 289 +
 .../tier/sockets/TestAutoSerializerCqListener.java |  57 
 .../tier/sockets/TestAutoSerializerObject1.java| 110 
 .../tier/sockets/TestAutoSerializerObject2.java| 109 
 5 files changed, 567 insertions(+), 1 deletion(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
index 9690503..cedd92d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/CacheClientUpdater.java
@@ -87,6 +87,7 @@ import org.apache.geode.internal.serialization.KnownVersion;
 import org.apache.geode.internal.statistics.StatisticsTypeFactoryImpl;
 import org.apache.geode.logging.internal.executors.LoggingThread;
 import org.apache.geode.logging.internal.log4j.api.LogService;
+import org.apache.geode.pdx.PdxSerializationException;
 import org.apache.geode.security.AuthenticationFailedException;
 import org.apache.geode.security.AuthenticationRequiredException;
 import org.apache.geode.security.GemFireSecurityException;
@@ -1793,7 +1794,7 @@ public class CacheClientUpdater extends LoggingThread 
implements ClientUpdater,
 // This is a debugging method so ignore all exceptions like 
ClassNotFoundException
 try (ByteArrayDataInput dis = new ByteArrayDataInput(serializedBytes)) {
   deserializedObject = DataSerializer.readObject(dis);
-} catch (ClassNotFoundException | IOException ignore) {
+} catch (ClassNotFoundException | IOException | PdxSerializationException 
e) {
 }
 return deserializedObject;
   }
diff --git 
a/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQAutoSerializerDUnitTest.java
 
b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQAutoSerializerDUnitTest.java
new file mode 100644
index 000..85b7919
--- /dev/null
+++ 
b/geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientCQAutoSerializerDUnitTest.java
@@ -0,0 +1,289 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.tier.sockets;
+
+import static org.apache.geode.cache.Region.SEPARATOR;
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.Serializable;
+import java.util.Map;
+import java.util.Objects;
+
+import com.google.common.collect.ImmutableMap;
+import org.junit.Befo

[geode] branch develop updated: GEODE-8656: Fix ping only sent to one gateway receiver when several r… (#5670)

2020-11-23 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 c92a91e  GEODE-8656: Fix ping only sent to one gateway receiver when 
several r… (#5670)
c92a91e is described below

commit c92a91eae587800c9d24c973e536cdfe8da6f38a
Author: Alberto Gomez 
AuthorDate: Tue Nov 24 07:37:20 2020 +0100

GEODE-8656: Fix ping only sent to one gateway receiver when several r… 
(#5670)

* GEODE-8656: Fix ping only sent to one gateway receiver when several 
receivers share the same hostname-for-senders

When serveral receivers have the same hostname-for-senders only one of them 
received
pings.
The reason was that the structure holding the endpoints was a Map whose key 
was
the server location. As all the endpoints for the remote gateway senders 
shared
the same server location, only one received the ping.

The structure holding endpoints in the endpoint manager has been updated to 
use
as key a ServerLocationAndMemberId class instead of ServerLocation.
---
 ...iversWithSamePortAndHostnameForSendersTest.java | 258 +
 .../org/apache/geode/cache/wan/docker-compose.yml  |  73 ++
 .../org/apache/geode/cache/wan/haproxy.cfg |  39 
 .../org/apache/geode/cache/wan/scripts/forever |  20 ++
 .../cache/wan/scripts/geode-starter-create.gfsh|  21 ++
 .../cache/wan/scripts/geode-starter-locator.gfsh   |  19 ++
 .../cache/wan/scripts/geode-starter-server1.gfsh   |  19 ++
 .../cache/wan/scripts/geode-starter-server2.gfsh   |  19 ++
 .../internal/AutoConnectionSourceDUnitTest.java|   8 +-
 .../tier/sockets/UpdatePropagationDUnitTest.java   |   7 +-
 .../cache/client/internal/ConnectionImpl.java  |   7 +-
 .../geode/cache/client/internal/Endpoint.java  |  28 ++-
 .../cache/client/internal/EndpointManager.java |   5 +-
 .../cache/client/internal/EndpointManagerImpl.java |  28 ++-
 .../cache/client/internal/LiveServerPinger.java|   1 +
 .../cache/client/internal/OpExecutorImpl.java  |   5 +-
 .../apache/geode/cache/client/internal/PingOp.java |   4 +
 .../geode/cache/client/internal/PoolImpl.java  |  15 +-
 .../geode/internal/cache/GemFireCacheImpl.java |  10 +-
 .../cache/tier/InternalClientMembership.java   |   5 +-
 .../client/internal/OpExecutorImplJUnitTest.java   |   5 +-
 .../internal/ServerLocationAndMemberIdTest.java|  47 
 .../tier/sockets/DurableClientCQDUnitTest.java |   9 +-
 .../geode/internal/cache/wan/WANTestBase.java  |  18 --
 ...SenderEventRemoteDispatcherIntegrationTest.java |  14 +-
 .../wan/GatewaySenderEventRemoteDispatcher.java|   5 +-
 26 files changed, 623 insertions(+), 66 deletions(-)

diff --git 
a/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
 
b/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
new file mode 100644
index 000..6be6066
--- /dev/null
+++ 
b/geode-assembly/src/acceptanceTest/java/org/apache/geode/cache/wan/SeveralGatewayReceiversWithSamePortAndHostnameForSendersTest.java
@@ -0,0 +1,258 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.cache.wan;
+
+import static 
com.palantir.docker.compose.execution.DockerComposeExecArgument.arguments;
+import static 
com.palantir.docker.compose.execution.DockerComposeExecOption.options;
+import static org.apache.geode.cache.Region.SEPARATOR;
+import static 
org.apache.geode.distributed.ConfigurationProperties.DISTRIBUTED_SYSTEM_ID;
+import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
+import static 
org.apache.geode.distributed.ConfigurationProperties.REMOTE_LOCATORS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.String

[geode] branch develop updated: GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueu… (#5653)

2020-11-18 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 475dce8  GEODE-8643: Fix IllegalArgumentException in 
ParallelGatewaySenderQueu… (#5653)
475dce8 is described below

commit 475dce8424b4523a814968a2e8c96f1b6c9000b3
Author: Alberto Gomez 
AuthorDate: Thu Nov 19 08:53:23 2020 +0100

GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueu… 
(#5653)

* GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueue 
for negative sleep value

* GEODE-8643: Small corrections after review
---
 .../wan/parallel/ParallelGatewaySenderQueue.java |  8 ++--
 .../ParallelGatewaySenderQueueJUnitTest.java | 20 
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
index 2788bb2..18c1624 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
@@ -1307,7 +1307,7 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 // Sleep a bit before trying again.
 long currentTime = System.currentTimeMillis();
 try {
-  Thread.sleep(getTimeToSleep(end - currentTime));
+  Thread.sleep(calculateTimeToSleep(end - currentTime));
 } catch (InterruptedException e) {
   Thread.currentThread().interrupt();
   break;
@@ -1393,7 +1393,11 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 return (incompleteTransactions.size() == 0);
   }
 
-  private long getTimeToSleep(long timeToWait) {
+  @VisibleForTesting
+  static long calculateTimeToSleep(long timeToWait) {
+if (timeToWait <= 0) {
+  return 0;
+}
 // Get the minimum of 50 and 5% of the time to wait (which by default is 
1000 ms)
 long timeToSleep = Math.min(50L, ((long) (timeToWait * 0.05)));
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
index 48035e5..1f4d81e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
@@ -456,6 +456,26 @@ public class ParallelGatewaySenderQueueJUnitTest {
 assertEquals(3, peekedAfter.size());
   }
 
+  @Test
+  public void testCalculateTimeToSleepNegativeInputReturnsZero() {
+assertEquals(0L, ParallelGatewaySenderQueue.calculateTimeToSleep(-3));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepZeroInputReturnsZero() {
+assertEquals(0L, ParallelGatewaySenderQueue.calculateTimeToSleep(0));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepInputGreaterThanOneThousand() {
+assertEquals(50L, ParallelGatewaySenderQueue.calculateTimeToSleep(1002));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepInputSmallerThanOneThousand() {
+assertEquals(2L, ParallelGatewaySenderQueue.calculateTimeToSleep(40));
+  }
+
   private GatewaySenderEventImpl createGatewaySenderEventImpl(int 
transactionId,
   boolean isLastEventInTransaction) {
 GatewaySenderEventImpl event = mock(GatewaySenderEventImpl.class);



[geode] branch develop updated: GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueu… (#5653)

2020-11-18 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 475dce8  GEODE-8643: Fix IllegalArgumentException in 
ParallelGatewaySenderQueu… (#5653)
475dce8 is described below

commit 475dce8424b4523a814968a2e8c96f1b6c9000b3
Author: Alberto Gomez 
AuthorDate: Thu Nov 19 08:53:23 2020 +0100

GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueu… 
(#5653)

* GEODE-8643: Fix IllegalArgumentException in ParallelGatewaySenderQueue 
for negative sleep value

* GEODE-8643: Small corrections after review
---
 .../wan/parallel/ParallelGatewaySenderQueue.java |  8 ++--
 .../ParallelGatewaySenderQueueJUnitTest.java | 20 
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
index 2788bb2..18c1624 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java
@@ -1307,7 +1307,7 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 // Sleep a bit before trying again.
 long currentTime = System.currentTimeMillis();
 try {
-  Thread.sleep(getTimeToSleep(end - currentTime));
+  Thread.sleep(calculateTimeToSleep(end - currentTime));
 } catch (InterruptedException e) {
   Thread.currentThread().interrupt();
   break;
@@ -1393,7 +1393,11 @@ public class ParallelGatewaySenderQueue implements 
RegionQueue {
 return (incompleteTransactions.size() == 0);
   }
 
-  private long getTimeToSleep(long timeToWait) {
+  @VisibleForTesting
+  static long calculateTimeToSleep(long timeToWait) {
+if (timeToWait <= 0) {
+  return 0;
+}
 // Get the minimum of 50 and 5% of the time to wait (which by default is 
1000 ms)
 long timeToSleep = Math.min(50L, ((long) (timeToWait * 0.05)));
 
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
index 48035e5..1f4d81e 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueueJUnitTest.java
@@ -456,6 +456,26 @@ public class ParallelGatewaySenderQueueJUnitTest {
 assertEquals(3, peekedAfter.size());
   }
 
+  @Test
+  public void testCalculateTimeToSleepNegativeInputReturnsZero() {
+assertEquals(0L, ParallelGatewaySenderQueue.calculateTimeToSleep(-3));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepZeroInputReturnsZero() {
+assertEquals(0L, ParallelGatewaySenderQueue.calculateTimeToSleep(0));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepInputGreaterThanOneThousand() {
+assertEquals(50L, ParallelGatewaySenderQueue.calculateTimeToSleep(1002));
+  }
+
+  @Test
+  public void testCalculateTimeToSleepInputSmallerThanOneThousand() {
+assertEquals(2L, ParallelGatewaySenderQueue.calculateTimeToSleep(40));
+  }
+
   private GatewaySenderEventImpl createGatewaySenderEventImpl(int 
transactionId,
   boolean isLastEventInTransaction) {
 GatewaySenderEventImpl event = mock(GatewaySenderEventImpl.class);



[geode] branch develop updated (399b875 -> f3d806f)

2020-11-16 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 399b875  GEODE-8706: getConnection should get readLock to sync with 
destroyCon… (#5750)
 add f3d806f  GEODE-8293: fix activeCQCount has negative value after 
close/stop cq for PR (#5620)

No new revisions were added by this update.

Summary of changes:
 .../GetClientPartitionAttributesCommand66.java |   2 +-
 .../geode/cache/query/cq/CQMetricsDUnitTest.java   | 175 +
 .../cache/query/cq/internal/ServerCQImpl.java  |  19 +--
 geode-docs/reference/statistics_list.html.md.erb   |   6 +-
 4 files changed, 189 insertions(+), 13 deletions(-)
 create mode 100644 
geode-cq/src/distributedTest/java/org/apache/geode/cache/query/cq/CQMetricsDUnitTest.java



[geode-native] branch develop updated: GEODE-8613: Removing exclusive access to creation/closing of pool connections (#676)

2020-10-21 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
 new 1f2fc24  GEODE-8613: Removing exclusive access to creation/closing of 
pool connections (#676)
1f2fc24 is described below

commit 1f2fc24b43a1ac70f74c289eb2e72fa14c9f44a9
Author: Alberto Gomez 
AuthorDate: Wed Oct 21 18:04:36 2020 +0200

GEODE-8613: Removing exclusive access to creation/closing of pool 
connections (#676)
---
 cppcache/src/ThinClientPoolDM.cpp | 8 
 1 file changed, 8 deletions(-)

diff --git a/cppcache/src/ThinClientPoolDM.cpp 
b/cppcache/src/ThinClientPoolDM.cpp
index f4ff158..dcc816b 100644
--- a/cppcache/src/ThinClientPoolDM.cpp
+++ b/cppcache/src/ThinClientPoolDM.cpp
@@ -510,7 +510,6 @@ void 
ThinClientPoolDM::restoreMinConnections(std::atomic& isRunning) {
   int restored = 0;
 
   if (m_poolSize < min) {
-std::lock_guard lock(mutex_);
 while (m_poolSize < min && limit-- && isRunning) {
   TcrConnection* conn = nullptr;
   bool maxConnLimit = false;
@@ -1631,7 +1630,6 @@ GfErrType 
ThinClientPoolDM::getConnectionToAnEndPoint(std::string epNameStr,
 GfErrType ThinClientPoolDM::createPoolConnectionToAEndPoint(
 TcrConnection*& conn, TcrEndpoint* theEP, bool& maxConnLimit,
 bool appThreadrequest) {
-  std::lock_guard lock(mutex_);
   GfErrType error = GF_NOERR;
   conn = nullptr;
   int min = 0;
@@ -1694,7 +1692,6 @@ void ThinClientPoolDM::reducePoolSize(int num) {
 GfErrType ThinClientPoolDM::createPoolConnection(
 TcrConnection*& conn, std::set& excludeServers,
 bool& maxConnLimit, const TcrConnection* currentserver) {
-  std::lock_guard lock(mutex_);
   GfErrType error = GF_NOERR;
   int max = m_attrs->getMaxConnections();
   if (max == -1) {
@@ -1860,7 +1857,6 @@ GfErrType ThinClientPoolDM::sendRequestToEP(const 
TcrMessage& request,
 _GEODE_SAFE_DELETE(conn);
   }
   if (putConnInPool) {
-std::lock_guard lock(mutex_);
 reducePoolSize(1);
   }
   currentEndpoint->setConnectionStatus(false);
@@ -1943,7 +1939,6 @@ GfErrType ThinClientPoolDM::sendRequestToEP(const 
TcrMessage& request,
 } else if (error != GF_NOERR) {
   currentEndpoint->setConnectionStatus(false);
   if (putConnInPool) {
-std::lock_guard lock(mutex_);
 removeEPConnections(1);
   }
 }
@@ -1998,13 +1993,11 @@ TcrEndpoint* ThinClientPoolDM::addEP(const std::string& 
endpointName) {
 }
 
 void ThinClientPoolDM::netDown() {
-  std::lock_guard lock(mutex_);
   close();
   reset();
 }
 
 void ThinClientPoolDM::pingServerLocal() {
-  std::lock_guard lock(mutex_);
   std::lock_guard guard(m_endpointsLock);
   for (auto& it : m_endpoints) {
 auto endpoint = it.second;
@@ -2104,7 +2097,6 @@ bool ThinClientPoolDM::canItBeDeleted(TcrConnection* 
conn) {
   if (conn && candidateForDeletion) {
 TcrEndpoint* endPt = conn->getEndpointObject();
 {
-  std::lock_guard lock(mutex_);
   std::lock_guardgetQueueHostedMutex())> guardQueue(
   endPt->getQueueHostedMutex());
   bool queue = endPt->isQueueHosted();



[geode] branch develop updated: GEODE-8491: Do not store dropped events in stopped primary gateway se… (#5509)

2020-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 169ca6a  GEODE-8491: Do not store dropped events in stopped primary 
gateway se… (#5509)
169ca6a is described below

commit 169ca6add2887c6560f30a5ad12ceb088411e973
Author: Alberto Gomez 
AuthorDate: Tue Sep 29 08:07:41 2020 +0200

GEODE-8491: Do not store dropped events in stopped primary gateway se… 
(#5509)

* GEODE-8491: Do not store dropped events in stopped primary gateway sender 
when possible

Instead of storing dropped events in tmpDroppedEvents to later send batch
removal messages when the primary gateway sender is not started, try to send
the batch removal message when the event to be dropped is received.
That way, when the sender is stopped for a long time and there are events
coming, the memory of the AbstractGatewaySender will not grow with entries
in the tmpDroppedEvents member.
---
 .../internal/cache/wan/AbstractGatewaySender.java  |  18 +-
 .../geode/internal/cache/wan/WANTestBase.java  |  14 +
 .../ParallelWANPropagationLoopBackDUnitTest.java   | 310 --
 .../SerialWANPropagationsFeatureDUnitTest.java | 359 +++--
 4 files changed, 641 insertions(+), 60 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 396edca..071974d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -1034,10 +1034,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   // If this gateway is not running, return
   if (!isRunning()) {
 if (this.isPrimary()) {
-  tmpDroppedEvents.add(clonedEvent);
-  if (isDebugEnabled) {
-logger.debug("add to tmpDroppedEvents for evnet {}", clonedEvent);
-  }
+  recordDroppedEvent(clonedEvent);
 }
 if (isDebugEnabled) {
   logger.debug("Returning back without putting into the gateway sender 
queue:" + event);
@@ -1118,6 +1115,17 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
 }
   }
 
+  private void recordDroppedEvent(EntryEventImpl event) {
+if (this.eventProcessor != null) {
+  this.eventProcessor.registerEventDroppedInPrimaryQueue(event);
+} else {
+  tmpDroppedEvents.add(event);
+  if (logger.isDebugEnabled()) {
+logger.debug("added to tmpDroppedEvents event: {}", event);
+  }
+}
+  }
+
   @VisibleForTesting
   int getTmpDroppedEventSize() {
 return tmpDroppedEvents.size();
@@ -1138,7 +1146,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   public void enqueueTempEvents() {
 if (this.eventProcessor != null) {// Fix for defect #47308
   // process tmpDroppedEvents
-  EntryEventImpl droppedEvent = null;
+  EntryEventImpl droppedEvent;
   while ((droppedEvent = tmpDroppedEvents.poll()) != null) {
 this.eventProcessor.registerEventDroppedInPrimaryQueue(droppedEvent);
   }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index e0e439a..883b313 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -1646,6 +1646,20 @@ public class WANTestBase extends DistributedTestCase {
 }
   }
 
+  public static void stopSenderInVMsAsync(String senderId, VM... vms) {
+List> tasks = new LinkedList<>();
+for (VM vm : vms) {
+  tasks.add(vm.invokeAsync(() -> stopSender(senderId)));
+}
+for (AsyncInvocation invocation : tasks) {
+  try {
+invocation.await();
+  } catch (InterruptedException e) {
+fail("Stopping senders was interrupted");
+  }
+}
+  }
+
   public static void stopSender(String senderId) {
 final IgnoredException exln = IgnoredException.addIgnoredException("Could 
not connect");
 IgnoredException exp =
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
index bd25e87..62c57a3 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/Par

[geode] branch develop updated: GEODE-8491: Do not store dropped events in stopped primary gateway se… (#5509)

2020-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 169ca6a  GEODE-8491: Do not store dropped events in stopped primary 
gateway se… (#5509)
169ca6a is described below

commit 169ca6add2887c6560f30a5ad12ceb088411e973
Author: Alberto Gomez 
AuthorDate: Tue Sep 29 08:07:41 2020 +0200

GEODE-8491: Do not store dropped events in stopped primary gateway se… 
(#5509)

* GEODE-8491: Do not store dropped events in stopped primary gateway sender 
when possible

Instead of storing dropped events in tmpDroppedEvents to later send batch
removal messages when the primary gateway sender is not started, try to send
the batch removal message when the event to be dropped is received.
That way, when the sender is stopped for a long time and there are events
coming, the memory of the AbstractGatewaySender will not grow with entries
in the tmpDroppedEvents member.
---
 .../internal/cache/wan/AbstractGatewaySender.java  |  18 +-
 .../geode/internal/cache/wan/WANTestBase.java  |  14 +
 .../ParallelWANPropagationLoopBackDUnitTest.java   | 310 --
 .../SerialWANPropagationsFeatureDUnitTest.java | 359 +++--
 4 files changed, 641 insertions(+), 60 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 396edca..071974d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -1034,10 +1034,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   // If this gateway is not running, return
   if (!isRunning()) {
 if (this.isPrimary()) {
-  tmpDroppedEvents.add(clonedEvent);
-  if (isDebugEnabled) {
-logger.debug("add to tmpDroppedEvents for evnet {}", clonedEvent);
-  }
+  recordDroppedEvent(clonedEvent);
 }
 if (isDebugEnabled) {
   logger.debug("Returning back without putting into the gateway sender 
queue:" + event);
@@ -1118,6 +1115,17 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
 }
   }
 
+  private void recordDroppedEvent(EntryEventImpl event) {
+if (this.eventProcessor != null) {
+  this.eventProcessor.registerEventDroppedInPrimaryQueue(event);
+} else {
+  tmpDroppedEvents.add(event);
+  if (logger.isDebugEnabled()) {
+logger.debug("added to tmpDroppedEvents event: {}", event);
+  }
+}
+  }
+
   @VisibleForTesting
   int getTmpDroppedEventSize() {
 return tmpDroppedEvents.size();
@@ -1138,7 +1146,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   public void enqueueTempEvents() {
 if (this.eventProcessor != null) {// Fix for defect #47308
   // process tmpDroppedEvents
-  EntryEventImpl droppedEvent = null;
+  EntryEventImpl droppedEvent;
   while ((droppedEvent = tmpDroppedEvents.poll()) != null) {
 this.eventProcessor.registerEventDroppedInPrimaryQueue(droppedEvent);
   }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index e0e439a..883b313 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -1646,6 +1646,20 @@ public class WANTestBase extends DistributedTestCase {
 }
   }
 
+  public static void stopSenderInVMsAsync(String senderId, VM... vms) {
+List> tasks = new LinkedList<>();
+for (VM vm : vms) {
+  tasks.add(vm.invokeAsync(() -> stopSender(senderId)));
+}
+for (AsyncInvocation invocation : tasks) {
+  try {
+invocation.await();
+  } catch (InterruptedException e) {
+fail("Stopping senders was interrupted");
+  }
+}
+  }
+
   public static void stopSender(String senderId) {
 final IgnoredException exln = IgnoredException.addIgnoredException("Could 
not connect");
 IgnoredException exp =
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
index bd25e87..62c57a3 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/Par

[geode] branch develop updated: GEODE-8491: Do not store dropped events in stopped primary gateway se… (#5509)

2020-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 169ca6a  GEODE-8491: Do not store dropped events in stopped primary 
gateway se… (#5509)
169ca6a is described below

commit 169ca6add2887c6560f30a5ad12ceb088411e973
Author: Alberto Gomez 
AuthorDate: Tue Sep 29 08:07:41 2020 +0200

GEODE-8491: Do not store dropped events in stopped primary gateway se… 
(#5509)

* GEODE-8491: Do not store dropped events in stopped primary gateway sender 
when possible

Instead of storing dropped events in tmpDroppedEvents to later send batch
removal messages when the primary gateway sender is not started, try to send
the batch removal message when the event to be dropped is received.
That way, when the sender is stopped for a long time and there are events
coming, the memory of the AbstractGatewaySender will not grow with entries
in the tmpDroppedEvents member.
---
 .../internal/cache/wan/AbstractGatewaySender.java  |  18 +-
 .../geode/internal/cache/wan/WANTestBase.java  |  14 +
 .../ParallelWANPropagationLoopBackDUnitTest.java   | 310 --
 .../SerialWANPropagationsFeatureDUnitTest.java | 359 +++--
 4 files changed, 641 insertions(+), 60 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 396edca..071974d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -1034,10 +1034,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   // If this gateway is not running, return
   if (!isRunning()) {
 if (this.isPrimary()) {
-  tmpDroppedEvents.add(clonedEvent);
-  if (isDebugEnabled) {
-logger.debug("add to tmpDroppedEvents for evnet {}", clonedEvent);
-  }
+  recordDroppedEvent(clonedEvent);
 }
 if (isDebugEnabled) {
   logger.debug("Returning back without putting into the gateway sender 
queue:" + event);
@@ -1118,6 +1115,17 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
 }
   }
 
+  private void recordDroppedEvent(EntryEventImpl event) {
+if (this.eventProcessor != null) {
+  this.eventProcessor.registerEventDroppedInPrimaryQueue(event);
+} else {
+  tmpDroppedEvents.add(event);
+  if (logger.isDebugEnabled()) {
+logger.debug("added to tmpDroppedEvents event: {}", event);
+  }
+}
+  }
+
   @VisibleForTesting
   int getTmpDroppedEventSize() {
 return tmpDroppedEvents.size();
@@ -1138,7 +1146,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   public void enqueueTempEvents() {
 if (this.eventProcessor != null) {// Fix for defect #47308
   // process tmpDroppedEvents
-  EntryEventImpl droppedEvent = null;
+  EntryEventImpl droppedEvent;
   while ((droppedEvent = tmpDroppedEvents.poll()) != null) {
 this.eventProcessor.registerEventDroppedInPrimaryQueue(droppedEvent);
   }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index e0e439a..883b313 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -1646,6 +1646,20 @@ public class WANTestBase extends DistributedTestCase {
 }
   }
 
+  public static void stopSenderInVMsAsync(String senderId, VM... vms) {
+List> tasks = new LinkedList<>();
+for (VM vm : vms) {
+  tasks.add(vm.invokeAsync(() -> stopSender(senderId)));
+}
+for (AsyncInvocation invocation : tasks) {
+  try {
+invocation.await();
+  } catch (InterruptedException e) {
+fail("Stopping senders was interrupted");
+  }
+}
+  }
+
   public static void stopSender(String senderId) {
 final IgnoredException exln = IgnoredException.addIgnoredException("Could 
not connect");
 IgnoredException exp =
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
index bd25e87..62c57a3 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/Par

[geode] branch develop updated: GEODE-8491: Do not store dropped events in stopped primary gateway se… (#5509)

2020-09-29 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 169ca6a  GEODE-8491: Do not store dropped events in stopped primary 
gateway se… (#5509)
169ca6a is described below

commit 169ca6add2887c6560f30a5ad12ceb088411e973
Author: Alberto Gomez 
AuthorDate: Tue Sep 29 08:07:41 2020 +0200

GEODE-8491: Do not store dropped events in stopped primary gateway se… 
(#5509)

* GEODE-8491: Do not store dropped events in stopped primary gateway sender 
when possible

Instead of storing dropped events in tmpDroppedEvents to later send batch
removal messages when the primary gateway sender is not started, try to send
the batch removal message when the event to be dropped is received.
That way, when the sender is stopped for a long time and there are events
coming, the memory of the AbstractGatewaySender will not grow with entries
in the tmpDroppedEvents member.
---
 .../internal/cache/wan/AbstractGatewaySender.java  |  18 +-
 .../geode/internal/cache/wan/WANTestBase.java  |  14 +
 .../ParallelWANPropagationLoopBackDUnitTest.java   | 310 --
 .../SerialWANPropagationsFeatureDUnitTest.java | 359 +++--
 4 files changed, 641 insertions(+), 60 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
index 396edca..071974d 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/AbstractGatewaySender.java
@@ -1034,10 +1034,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   // If this gateway is not running, return
   if (!isRunning()) {
 if (this.isPrimary()) {
-  tmpDroppedEvents.add(clonedEvent);
-  if (isDebugEnabled) {
-logger.debug("add to tmpDroppedEvents for evnet {}", clonedEvent);
-  }
+  recordDroppedEvent(clonedEvent);
 }
 if (isDebugEnabled) {
   logger.debug("Returning back without putting into the gateway sender 
queue:" + event);
@@ -1118,6 +1115,17 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
 }
   }
 
+  private void recordDroppedEvent(EntryEventImpl event) {
+if (this.eventProcessor != null) {
+  this.eventProcessor.registerEventDroppedInPrimaryQueue(event);
+} else {
+  tmpDroppedEvents.add(event);
+  if (logger.isDebugEnabled()) {
+logger.debug("added to tmpDroppedEvents event: {}", event);
+  }
+}
+  }
+
   @VisibleForTesting
   int getTmpDroppedEventSize() {
 return tmpDroppedEvents.size();
@@ -1138,7 +1146,7 @@ public abstract class AbstractGatewaySender implements 
InternalGatewaySender, Di
   public void enqueueTempEvents() {
 if (this.eventProcessor != null) {// Fix for defect #47308
   // process tmpDroppedEvents
-  EntryEventImpl droppedEvent = null;
+  EntryEventImpl droppedEvent;
   while ((droppedEvent = tmpDroppedEvents.poll()) != null) {
 this.eventProcessor.registerEventDroppedInPrimaryQueue(droppedEvent);
   }
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index e0e439a..883b313 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -1646,6 +1646,20 @@ public class WANTestBase extends DistributedTestCase {
 }
   }
 
+  public static void stopSenderInVMsAsync(String senderId, VM... vms) {
+List> tasks = new LinkedList<>();
+for (VM vm : vms) {
+  tasks.add(vm.invokeAsync(() -> stopSender(senderId)));
+}
+for (AsyncInvocation invocation : tasks) {
+  try {
+invocation.await();
+  } catch (InterruptedException e) {
+fail("Stopping senders was interrupted");
+  }
+}
+  }
+
   public static void stopSender(String senderId) {
 final IgnoredException exln = IgnoredException.addIgnoredException("Could 
not connect");
 IgnoredException exp =
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelWANPropagationLoopBackDUnitTest.java
index bd25e87..62c57a3 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/Par

[geode] branch develop updated: GEODE-8455: Fix difference between create region with gw sender and a… (#5476)

2020-09-01 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 304e4d58 GEODE-8455: Fix difference between create region with gw 
sender and a… (#5476)
304e4d58 is described below

commit 304e4d5857fc7539c054713e6eaddb0e74ea01d8
Author: Alberto Gomez 
AuthorDate: Tue Sep 1 11:19:52 2020 +0200

GEODE-8455: Fix difference between create region with gw sender and a… 
(#5476)

* GEODE-8455: Fix difference between create region with gw sender and alter 
region with gw sender

Geode behaves differently with respect to transactions when
creating a partitioned region with a parallel gateway sender to
when first the partitioned region is created and then the
parallel gateway sender is added by altering the region.

In the first case (create region with gateway sender), when
sending a transaction for the region, an event is sent
to each server hosting the bucket for the data in the transaction.

In the second case (create region + alter region),
when sending a transaction for the region, an event
is sent to every cache member and not only to those hosting
the bucket for the data in the transaction. This leads to,
in the servers not hosting the bucket for the data,
that the events are stored in the
bucketToTempQueueMap member variable of the
ParallelGatewaySenderQueue.

The behavior in the first case is the right one.

The wrong behavior is provoked by the setting to true of the
requiresNotification variable of the PartitionedRegion
by the distributeUpdatedProfileOnSenderCreation method.
This method should only set this variable to true
in case the sender is serial as it is done when
a partitioned region is initialized.

* feature/GEODE-8455: Fix bug shown in dist tests and minor changes after 
review

* GEODE-8455: Remove unused parameter from helper method in WANTestBase 
support test class
---
 .../geode/internal/cache/PartitionedRegion.java|  11 +-
 .../geode/internal/cache/wan/WANTestBase.java  | 296 +--
 .../parallel/ParallelWANPropagationDUnitTest.java  | 313 ++---
 .../wan/parallel/ParallelWANStatsDUnitTest.java|  37 +--
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |  60 ++--
 5 files changed, 315 insertions(+), 402 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 5ad77c6..b58b7eb 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -1253,7 +1253,7 @@ public class PartitionedRegion extends LocalRegion
   void distributeUpdatedProfileOnSenderCreation() {
 if (!(this.isClosed || this.isLocallyDestroyed)) {
   // tell others of the change in status
-  this.requiresNotification = true;
+  requiresNotification = true;
   new UpdateAttributesProcessor(this).distribute(false);
 }
   }
@@ -1262,8 +1262,10 @@ public class PartitionedRegion extends LocalRegion
   public void addGatewaySenderId(String gatewaySenderId) {
 super.addGatewaySenderId(gatewaySenderId);
 new UpdateAttributesProcessor(this).distribute();
-((PartitionedRegion) this).distributeUpdatedProfileOnSenderCreation();
 GatewaySender sender = getCache().getGatewaySender(gatewaySenderId);
+if (sender != null && !sender.isParallel()) {
+  distributeUpdatedProfileOnSenderCreation();
+}
 if (sender != null && sender.isParallel() && sender.isRunning()) {
   AbstractGatewaySender senderImpl = (AbstractGatewaySender) sender;
   ((ConcurrentParallelGatewaySenderQueue) 
senderImpl.getQueues().toArray(new RegionQueue[1])[0])
@@ -1308,10 +1310,11 @@ public class PartitionedRegion extends LocalRegion
   @Override
   public void addAsyncEventQueueId(String asyncEventQueueId, boolean 
isInternal) {
 super.addAsyncEventQueueId(asyncEventQueueId, isInternal);
-new UpdateAttributesProcessor(this).distribute();
-((PartitionedRegion) this).distributeUpdatedProfileOnSenderCreation();
 GatewaySender sender = getCache()
 
.getGatewaySender(AsyncEventQueueImpl.getSenderIdFromAsyncEventQueueId(asyncEventQueueId));
+if (sender != null && !sender.isParallel()) {
+  distributeUpdatedProfileOnSenderCreation();
+}
 if (sender != null && sender.isParallel() && sender.isRunning()) {
   AbstractGatewaySender senderImpl = (AbstractGatewaySender) sender;
   ((ConcurrentParallelGatewaySenderQueue) 
senderImpl.getQueues().toArray(new RegionQueue[1])[0])
diff --git 
a/geode-wan/src/distribu

[geode] branch develop updated: GEODE-8455: Fix difference between create region with gw sender and a… (#5476)

2020-09-01 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 304e4d58 GEODE-8455: Fix difference between create region with gw 
sender and a… (#5476)
304e4d58 is described below

commit 304e4d5857fc7539c054713e6eaddb0e74ea01d8
Author: Alberto Gomez 
AuthorDate: Tue Sep 1 11:19:52 2020 +0200

GEODE-8455: Fix difference between create region with gw sender and a… 
(#5476)

* GEODE-8455: Fix difference between create region with gw sender and alter 
region with gw sender

Geode behaves differently with respect to transactions when
creating a partitioned region with a parallel gateway sender to
when first the partitioned region is created and then the
parallel gateway sender is added by altering the region.

In the first case (create region with gateway sender), when
sending a transaction for the region, an event is sent
to each server hosting the bucket for the data in the transaction.

In the second case (create region + alter region),
when sending a transaction for the region, an event
is sent to every cache member and not only to those hosting
the bucket for the data in the transaction. This leads to,
in the servers not hosting the bucket for the data,
that the events are stored in the
bucketToTempQueueMap member variable of the
ParallelGatewaySenderQueue.

The behavior in the first case is the right one.

The wrong behavior is provoked by the setting to true of the
requiresNotification variable of the PartitionedRegion
by the distributeUpdatedProfileOnSenderCreation method.
This method should only set this variable to true
in case the sender is serial as it is done when
a partitioned region is initialized.

* feature/GEODE-8455: Fix bug shown in dist tests and minor changes after 
review

* GEODE-8455: Remove unused parameter from helper method in WANTestBase 
support test class
---
 .../geode/internal/cache/PartitionedRegion.java|  11 +-
 .../geode/internal/cache/wan/WANTestBase.java  | 296 +--
 .../parallel/ParallelWANPropagationDUnitTest.java  | 313 ++---
 .../wan/parallel/ParallelWANStatsDUnitTest.java|  37 +--
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |  60 ++--
 5 files changed, 315 insertions(+), 402 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 5ad77c6..b58b7eb 100755
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -1253,7 +1253,7 @@ public class PartitionedRegion extends LocalRegion
   void distributeUpdatedProfileOnSenderCreation() {
 if (!(this.isClosed || this.isLocallyDestroyed)) {
   // tell others of the change in status
-  this.requiresNotification = true;
+  requiresNotification = true;
   new UpdateAttributesProcessor(this).distribute(false);
 }
   }
@@ -1262,8 +1262,10 @@ public class PartitionedRegion extends LocalRegion
   public void addGatewaySenderId(String gatewaySenderId) {
 super.addGatewaySenderId(gatewaySenderId);
 new UpdateAttributesProcessor(this).distribute();
-((PartitionedRegion) this).distributeUpdatedProfileOnSenderCreation();
 GatewaySender sender = getCache().getGatewaySender(gatewaySenderId);
+if (sender != null && !sender.isParallel()) {
+  distributeUpdatedProfileOnSenderCreation();
+}
 if (sender != null && sender.isParallel() && sender.isRunning()) {
   AbstractGatewaySender senderImpl = (AbstractGatewaySender) sender;
   ((ConcurrentParallelGatewaySenderQueue) 
senderImpl.getQueues().toArray(new RegionQueue[1])[0])
@@ -1308,10 +1310,11 @@ public class PartitionedRegion extends LocalRegion
   @Override
   public void addAsyncEventQueueId(String asyncEventQueueId, boolean 
isInternal) {
 super.addAsyncEventQueueId(asyncEventQueueId, isInternal);
-new UpdateAttributesProcessor(this).distribute();
-((PartitionedRegion) this).distributeUpdatedProfileOnSenderCreation();
 GatewaySender sender = getCache()
 
.getGatewaySender(AsyncEventQueueImpl.getSenderIdFromAsyncEventQueueId(asyncEventQueueId));
+if (sender != null && !sender.isParallel()) {
+  distributeUpdatedProfileOnSenderCreation();
+}
 if (sender != null && sender.isParallel() && sender.isRunning()) {
   AbstractGatewaySender senderImpl = (AbstractGatewaySender) sender;
   ((ConcurrentParallelGatewaySenderQueue) 
senderImpl.getQueues().toArray(new RegionQueue[1])[0])
diff --git 
a/geode-wan/src/distribu

[geode] branch develop updated: GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

2020-08-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 afb161f  GEODE-8119: Threads hangs when offline disk store command is 
invoked (#5466)
afb161f is described below

commit afb161fe793ebaede473c996e88cc161b9c5b6f5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Aug 24 10:22:41 2020 +0200

GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

* GEODE-8119: Threads hangs when offline disk store command is invoked

* changes after comments
---
 .../apache/geode/internal/cache/DiskStoreImpl.java |   2 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |  20 ++
 .../OfflineDiskStoreCommandsDUnitTest.java | 246 +
 .../AlterDiskStoreCommandIntegrationTest.java  |  32 +++
 .../DescribeDiskStoreCommandIntegrationTest.java   |  31 ++-
 5 files changed, 324 insertions(+), 7 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index bb05e96..718dd7e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -460,7 +460,7 @@ public class DiskStoreImpl implements DiskStore {
 } else {
   this.asyncQueue = new ForceableLinkedBlockingQueue();
 }
-if (!isValidating() && !isOfflineCompacting()) {
+if (!isOffline()) {
   startAsyncFlusher();
 }
 
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 1dac0b4..a6a3f08 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.cache.configuration.DiskStoreType;
 import org.apache.geode.distributed.Locator;
 import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
 import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.cache.DiskInitFile;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.SnapshotTestUtil;
 import 
org.apache.geode.management.internal.cli.result.model.TabularResultModel;
@@ -520,6 +521,25 @@ public class DiskStoreCommandsDUnitTest implements 
Serializable {
   }
 
   @Test
+  @Parameters({"compact offline-disk-store", "describe offline-disk-store",
+  "upgrade offline-disk-store", "validate offline-disk-store",
+  "alter disk-store --region=testRegion --enable-statistics=true"})
+  public void offlineDiskStoreCommandShouldFailWhenDiskStoreFileDoesNotExist(
+  String baseCommand) {
+Path diskStorePath =
+Paths.get(tempDir.getRoot().getAbsolutePath());
+assertThat(Files.exists(diskStorePath)).isTrue();
+Path diskStoreFilePath =
+Paths.get(diskStorePath + File.separator + "BACKUPnonExistingDiskStore"
++ DiskInitFile.IF_FILE_EXT);
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+gfsh.executeAndAssertThat(baseCommand + " --name=nonExistingDiskStore 
--disk-dirs="
++ diskStorePath.toAbsolutePath().toString()).statusIsError()
+.containsOutput("The init file " + diskStoreFilePath + " does not 
exist.");
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+  }
+
+  @Test
   @Parameters(method = "getDiskDirNames")
   public void validateDiskStoreDiskDirectoryPath(String diskDirectoryName)
   throws Exception {
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
new file mode 100644
index 000..97c04ea
--- /dev/null
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
@@ -0,0 +1,246 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in 

[geode] branch develop updated: GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

2020-08-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 afb161f  GEODE-8119: Threads hangs when offline disk store command is 
invoked (#5466)
afb161f is described below

commit afb161fe793ebaede473c996e88cc161b9c5b6f5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Aug 24 10:22:41 2020 +0200

GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

* GEODE-8119: Threads hangs when offline disk store command is invoked

* changes after comments
---
 .../apache/geode/internal/cache/DiskStoreImpl.java |   2 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |  20 ++
 .../OfflineDiskStoreCommandsDUnitTest.java | 246 +
 .../AlterDiskStoreCommandIntegrationTest.java  |  32 +++
 .../DescribeDiskStoreCommandIntegrationTest.java   |  31 ++-
 5 files changed, 324 insertions(+), 7 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index bb05e96..718dd7e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -460,7 +460,7 @@ public class DiskStoreImpl implements DiskStore {
 } else {
   this.asyncQueue = new ForceableLinkedBlockingQueue();
 }
-if (!isValidating() && !isOfflineCompacting()) {
+if (!isOffline()) {
   startAsyncFlusher();
 }
 
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 1dac0b4..a6a3f08 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.cache.configuration.DiskStoreType;
 import org.apache.geode.distributed.Locator;
 import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
 import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.cache.DiskInitFile;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.SnapshotTestUtil;
 import 
org.apache.geode.management.internal.cli.result.model.TabularResultModel;
@@ -520,6 +521,25 @@ public class DiskStoreCommandsDUnitTest implements 
Serializable {
   }
 
   @Test
+  @Parameters({"compact offline-disk-store", "describe offline-disk-store",
+  "upgrade offline-disk-store", "validate offline-disk-store",
+  "alter disk-store --region=testRegion --enable-statistics=true"})
+  public void offlineDiskStoreCommandShouldFailWhenDiskStoreFileDoesNotExist(
+  String baseCommand) {
+Path diskStorePath =
+Paths.get(tempDir.getRoot().getAbsolutePath());
+assertThat(Files.exists(diskStorePath)).isTrue();
+Path diskStoreFilePath =
+Paths.get(diskStorePath + File.separator + "BACKUPnonExistingDiskStore"
++ DiskInitFile.IF_FILE_EXT);
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+gfsh.executeAndAssertThat(baseCommand + " --name=nonExistingDiskStore 
--disk-dirs="
++ diskStorePath.toAbsolutePath().toString()).statusIsError()
+.containsOutput("The init file " + diskStoreFilePath + " does not 
exist.");
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+  }
+
+  @Test
   @Parameters(method = "getDiskDirNames")
   public void validateDiskStoreDiskDirectoryPath(String diskDirectoryName)
   throws Exception {
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
new file mode 100644
index 000..97c04ea
--- /dev/null
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
@@ -0,0 +1,246 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in 

[geode] branch develop updated: GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

2020-08-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 afb161f  GEODE-8119: Threads hangs when offline disk store command is 
invoked (#5466)
afb161f is described below

commit afb161fe793ebaede473c996e88cc161b9c5b6f5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Aug 24 10:22:41 2020 +0200

GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

* GEODE-8119: Threads hangs when offline disk store command is invoked

* changes after comments
---
 .../apache/geode/internal/cache/DiskStoreImpl.java |   2 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |  20 ++
 .../OfflineDiskStoreCommandsDUnitTest.java | 246 +
 .../AlterDiskStoreCommandIntegrationTest.java  |  32 +++
 .../DescribeDiskStoreCommandIntegrationTest.java   |  31 ++-
 5 files changed, 324 insertions(+), 7 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index bb05e96..718dd7e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -460,7 +460,7 @@ public class DiskStoreImpl implements DiskStore {
 } else {
   this.asyncQueue = new ForceableLinkedBlockingQueue();
 }
-if (!isValidating() && !isOfflineCompacting()) {
+if (!isOffline()) {
   startAsyncFlusher();
 }
 
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 1dac0b4..a6a3f08 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.cache.configuration.DiskStoreType;
 import org.apache.geode.distributed.Locator;
 import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
 import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.cache.DiskInitFile;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.SnapshotTestUtil;
 import 
org.apache.geode.management.internal.cli.result.model.TabularResultModel;
@@ -520,6 +521,25 @@ public class DiskStoreCommandsDUnitTest implements 
Serializable {
   }
 
   @Test
+  @Parameters({"compact offline-disk-store", "describe offline-disk-store",
+  "upgrade offline-disk-store", "validate offline-disk-store",
+  "alter disk-store --region=testRegion --enable-statistics=true"})
+  public void offlineDiskStoreCommandShouldFailWhenDiskStoreFileDoesNotExist(
+  String baseCommand) {
+Path diskStorePath =
+Paths.get(tempDir.getRoot().getAbsolutePath());
+assertThat(Files.exists(diskStorePath)).isTrue();
+Path diskStoreFilePath =
+Paths.get(diskStorePath + File.separator + "BACKUPnonExistingDiskStore"
++ DiskInitFile.IF_FILE_EXT);
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+gfsh.executeAndAssertThat(baseCommand + " --name=nonExistingDiskStore 
--disk-dirs="
++ diskStorePath.toAbsolutePath().toString()).statusIsError()
+.containsOutput("The init file " + diskStoreFilePath + " does not 
exist.");
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+  }
+
+  @Test
   @Parameters(method = "getDiskDirNames")
   public void validateDiskStoreDiskDirectoryPath(String diskDirectoryName)
   throws Exception {
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
new file mode 100644
index 000..97c04ea
--- /dev/null
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
@@ -0,0 +1,246 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in 

[geode] branch develop updated: GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

2020-08-24 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 afb161f  GEODE-8119: Threads hangs when offline disk store command is 
invoked (#5466)
afb161f is described below

commit afb161fe793ebaede473c996e88cc161b9c5b6f5
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Mon Aug 24 10:22:41 2020 +0200

GEODE-8119: Threads hangs when offline disk store command is invoked (#5466)

* GEODE-8119: Threads hangs when offline disk store command is invoked

* changes after comments
---
 .../apache/geode/internal/cache/DiskStoreImpl.java |   2 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   |  20 ++
 .../OfflineDiskStoreCommandsDUnitTest.java | 246 +
 .../AlterDiskStoreCommandIntegrationTest.java  |  32 +++
 .../DescribeDiskStoreCommandIntegrationTest.java   |  31 ++-
 5 files changed, 324 insertions(+), 7 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
index bb05e96..718dd7e 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java
@@ -460,7 +460,7 @@ public class DiskStoreImpl implements DiskStore {
 } else {
   this.asyncQueue = new ForceableLinkedBlockingQueue();
 }
-if (!isValidating() && !isOfflineCompacting()) {
+if (!isOffline()) {
   startAsyncFlusher();
 }
 
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 1dac0b4..a6a3f08 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -48,6 +48,7 @@ import org.apache.geode.cache.configuration.DiskStoreType;
 import org.apache.geode.distributed.Locator;
 import 
org.apache.geode.distributed.internal.InternalConfigurationPersistenceService;
 import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.cache.DiskInitFile;
 import org.apache.geode.internal.cache.InternalCache;
 import org.apache.geode.internal.cache.SnapshotTestUtil;
 import 
org.apache.geode.management.internal.cli.result.model.TabularResultModel;
@@ -520,6 +521,25 @@ public class DiskStoreCommandsDUnitTest implements 
Serializable {
   }
 
   @Test
+  @Parameters({"compact offline-disk-store", "describe offline-disk-store",
+  "upgrade offline-disk-store", "validate offline-disk-store",
+  "alter disk-store --region=testRegion --enable-statistics=true"})
+  public void offlineDiskStoreCommandShouldFailWhenDiskStoreFileDoesNotExist(
+  String baseCommand) {
+Path diskStorePath =
+Paths.get(tempDir.getRoot().getAbsolutePath());
+assertThat(Files.exists(diskStorePath)).isTrue();
+Path diskStoreFilePath =
+Paths.get(diskStorePath + File.separator + "BACKUPnonExistingDiskStore"
++ DiskInitFile.IF_FILE_EXT);
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+gfsh.executeAndAssertThat(baseCommand + " --name=nonExistingDiskStore 
--disk-dirs="
++ diskStorePath.toAbsolutePath().toString()).statusIsError()
+.containsOutput("The init file " + diskStoreFilePath + " does not 
exist.");
+assertThat(Files.exists(diskStoreFilePath)).isFalse();
+  }
+
+  @Test
   @Parameters(method = "getDiskDirNames")
   public void validateDiskStoreDiskDirectoryPath(String diskDirectoryName)
   throws Exception {
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
new file mode 100644
index 000..97c04ea
--- /dev/null
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
@@ -0,0 +1,246 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in 

[geode-native] branch develop updated: GEODE-8364: Change log level at runtime (#629)

2020-08-18 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
 new 932a64f  GEODE-8364: Change log level at runtime (#629)
932a64f is described below

commit 932a64fd019b4049b910424249598e76c5f7c742
Author: Alberto Bustamante Reyes 
AuthorDate: Tue Aug 18 09:38:09 2020 +0200

GEODE-8364: Change log level at runtime (#629)

* GEODE-8364: Change log level at runtime

* Change log level in system properties
---
 cppcache/include/geode/Cache.hpp| 13 +
 cppcache/include/geode/SystemProperties.hpp |  5 +
 cppcache/src/Cache.cpp  |  7 +++
 cppcache/test/CacheTest.cpp |  8 
 4 files changed, 33 insertions(+)

diff --git a/cppcache/include/geode/Cache.hpp b/cppcache/include/geode/Cache.hpp
index dd6399c..5ffdc45 100644
--- a/cppcache/include/geode/Cache.hpp
+++ b/cppcache/include/geode/Cache.hpp
@@ -22,6 +22,8 @@
 
 #include 
 
+#include 
+
 #include "GeodeCache.hpp"
 #include "internal/geode_globals.hpp"
 
@@ -239,6 +241,17 @@ class APACHE_GEODE_EXPORT Cache : public GeodeCache {
 
   SystemProperties& getSystemProperties() const override;
 
+  /**
+   * Changes the current log level to newLogLevel.
+   */
+  void setLogLevel(LogLevel newLevel);
+
+  /**
+   * Returns the current log level.
+   * @return the current log level.
+   */
+  LogLevel getLogLevel();
+
   Cache() = delete;
   virtual ~Cache();
   Cache(const Cache& other) = delete;
diff --git a/cppcache/include/geode/SystemProperties.hpp 
b/cppcache/include/geode/SystemProperties.hpp
index b116122..a2f9c35 100644
--- a/cppcache/include/geode/SystemProperties.hpp
+++ b/cppcache/include/geode/SystemProperties.hpp
@@ -127,6 +127,11 @@ class APACHE_GEODE_EXPORT SystemProperties {
   LogLevel logLevel() const { return m_logLevel; }
 
   /**
+   * Changes the current log level to newLogLevel.
+   */
+  void setLogLevel(LogLevel newLogLevel) { m_logLevel = newLogLevel; }
+
+  /**
* Returns a boolean that specifies if heapLRULimit has been enabled for the
* process. If enabled, the HeapLRULimit specifies the maximum amount of
* memory
diff --git a/cppcache/src/Cache.cpp b/cppcache/src/Cache.cpp
index 512c8fe..c3bba33 100644
--- a/cppcache/src/Cache.cpp
+++ b/cppcache/src/Cache.cpp
@@ -144,6 +144,13 @@ bool Cache::getPdxReadSerialized() const {
   return m_cacheImpl->getPdxReadSerialized();
 }
 
+void Cache::setLogLevel(LogLevel newLevel) {
+  Log::setLogLevel(newLevel);
+  this->getSystemProperties().setLogLevel(newLevel);
+}
+
+LogLevel Cache::getLogLevel() { return Log::logLevel(); }
+
 PdxInstanceFactory Cache::createPdxInstanceFactory(
 const std::string& className) const {
   return m_cacheImpl->createPdxInstanceFactory(className);
diff --git a/cppcache/test/CacheTest.cpp b/cppcache/test/CacheTest.cpp
index 7b51843..bd1fa8e 100644
--- a/cppcache/test/CacheTest.cpp
+++ b/cppcache/test/CacheTest.cpp
@@ -25,6 +25,7 @@
 
 using apache::geode::client::CacheClosedException;
 using apache::geode::client::CacheFactory;
+using apache::geode::client::LogLevel;
 using apache::geode::client::RegionShortcut;
 
 /**
@@ -61,3 +62,10 @@ TEST(CacheTest, close) {
   EXPECT_THROW(cache.readyForEvents(), CacheClosedException);
   EXPECT_THROW(cache.rootRegions(), CacheClosedException);
 }
+
+TEST(CacheTest, changeLogLevel) {
+  auto cache = CacheFactory{}.set("log-level", "info").create();
+  ASSERT_EQ(cache.getLogLevel(), LogLevel::Info);
+  cache.setLogLevel(LogLevel::Debug);
+  ASSERT_EQ(cache.getLogLevel(), LogLevel::Debug);
+}



[geode-native] branch develop updated (618d643 -> 311717c)

2020-08-18 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git.


from 618d643  GEODE-8426: Enforce warning no-shorten-64-to-32
 add 311717c  GEODE-8344: Add GatewaySenderEventCallbackArgument class 
(#628)

No new revisions were added by this update.

Summary of changes:
 cppcache/include/geode/internal/DSFixedId.hpp  |   1 +
 cppcache/integration/framework/Cluster.cpp |  82 --
 cppcache/integration/framework/Cluster.h   |  24 +++
 cppcache/integration/framework/Gfsh.cpp|  48 ++
 cppcache/integration/framework/Gfsh.h  |  27 
 cppcache/integration/test/CMakeLists.txt   |   3 +
 cppcache/integration/test/ExampleTest.cpp  |   2 +-
 .../integration/test}/Order.cpp|   4 +-
 .../integration/test}/Order.hpp|  18 +--
 .../integration/test/WanDeserializationTest.cpp| 175 +
 cpp => GatewaySenderEventCallbackArgument.cpp} |  22 +--
 hpp => GatewaySenderEventCallbackArgument.hpp} |  43 ++---
 cppcache/src/PdxInstanceImpl.cpp   |   4 +-
 cppcache/src/SerializationRegistry.cpp |   2 +
 cppcache/test/CMakeLists.txt   |   3 +-
 ... => GatewaySenderEventCallbackArgumentTest.cpp} |  13 +-
 16 files changed, 404 insertions(+), 67 deletions(-)
 copy {examples/cpp/remotequery => cppcache/integration/test}/Order.cpp (96%)
 copy {examples/cpp/remotequery => cppcache/integration/test}/Order.hpp (85%)
 create mode 100644 cppcache/integration/test/WanDeserializationTest.cpp
 copy cppcache/src/{LocatorListRequest.cpp => 
GatewaySenderEventCallbackArgument.cpp} (67%)
 copy cppcache/src/{QueueConnectionResponse.hpp => 
GatewaySenderEventCallbackArgument.hpp} (57%)
 copy cppcache/test/{geodeBannerTest.cpp => 
GatewaySenderEventCallbackArgumentTest.cpp} (72%)



[geode] branch develop updated (daa70d7 -> 8c35d9c)

2020-07-10 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from daa70d7  GEODE-8347: use same benchmarks branch as geode branch, since 
that's the way we release (#5361)
 add 8c35d9c  GEODE-8302: Fixed 'events not queued conflated' stats when 
group-tran… (#5313)

No new revisions were added by this update.

Summary of changes:
 .../geode/cache/wan/GatewaySenderFactory.java  |  7 +--
 .../cache/wan/serial/SerialGatewaySenderQueue.java | 52 +++---
 geode-docs/reference/topics/cache_xml.html.md.erb  |  2 +-
 .../gfsh/command-pages/create.html.md.erb  |  2 +-
 .../multisite_overview.html.md.erb | 11 +++--
 .../cli/commands/CreateGatewaySenderCommand.java   |  8 
 .../commands/CreateGatewaySenderCommandTest.java   | 33 --
 .../parallel/ParallelWANPropagationDUnitTest.java  |  2 +
 .../wan/parallel/ParallelWANStatsDUnitTest.java| 12 +++--
 ...lWANPropagation_PartitionedRegionDUnitTest.java |  2 +
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |  4 ++
 .../cache/wan/misc/WANConfigurationJUnitTest.java  | 12 +
 .../cache/wan/GatewaySenderFactoryImpl.java|  6 +++
 13 files changed, 130 insertions(+), 23 deletions(-)



[geode] branch develop updated (daa70d7 -> 8c35d9c)

2020-07-10 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from daa70d7  GEODE-8347: use same benchmarks branch as geode branch, since 
that's the way we release (#5361)
 add 8c35d9c  GEODE-8302: Fixed 'events not queued conflated' stats when 
group-tran… (#5313)

No new revisions were added by this update.

Summary of changes:
 .../geode/cache/wan/GatewaySenderFactory.java  |  7 +--
 .../cache/wan/serial/SerialGatewaySenderQueue.java | 52 +++---
 geode-docs/reference/topics/cache_xml.html.md.erb  |  2 +-
 .../gfsh/command-pages/create.html.md.erb  |  2 +-
 .../multisite_overview.html.md.erb | 11 +++--
 .../cli/commands/CreateGatewaySenderCommand.java   |  8 
 .../commands/CreateGatewaySenderCommandTest.java   | 33 --
 .../parallel/ParallelWANPropagationDUnitTest.java  |  2 +
 .../wan/parallel/ParallelWANStatsDUnitTest.java| 12 +++--
 ...lWANPropagation_PartitionedRegionDUnitTest.java |  2 +
 .../cache/wan/serial/SerialWANStatsDUnitTest.java  |  4 ++
 .../cache/wan/misc/WANConfigurationJUnitTest.java  | 12 +
 .../cache/wan/GatewaySenderFactoryImpl.java|  6 +++
 13 files changed, 130 insertions(+), 23 deletions(-)



[geode-native] branch develop updated: GEODE-8213: Switch SerializationRegistry spinlock to mutex (#621)

2020-06-25 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git


The following commit(s) were added to refs/heads/develop by this push:
 new e0149c4  GEODE-8213: Switch SerializationRegistry spinlock to mutex 
(#621)
e0149c4 is described below

commit e0149c40f5e27d984bb8101cd8bdb0067d62e11b
Author: Alberto Gomez 
AuthorDate: Thu Jun 25 09:20:08 2020 +0200

GEODE-8213: Switch SerializationRegistry spinlock to mutex (#621)

* GEODE-8213: Switch SerializationRegistry spinlock to mutex

* GEODE-8213: Renamed some class data members and removed unused includes
---
 cppcache/benchmark/CMakeLists.txt  |   1 +
 cppcache/benchmark/SerializationRegistryBM.cpp | 125 ++
 cppcache/src/SerializationRegistry.cpp | 140 ++---
 cppcache/src/SerializationRegistry.hpp |  40 +++
 4 files changed, 203 insertions(+), 103 deletions(-)

diff --git a/cppcache/benchmark/CMakeLists.txt 
b/cppcache/benchmark/CMakeLists.txt
index 00bcb8c..24023c8 100644
--- a/cppcache/benchmark/CMakeLists.txt
+++ b/cppcache/benchmark/CMakeLists.txt
@@ -19,6 +19,7 @@ add_executable(cpp-benchmark
   GeodeHashBM.cpp
   GeodeLoggingBM.cpp
   NoopBM.cpp
+  SerializationRegistryBM.cpp
   )
 
 target_link_libraries(cpp-benchmark
diff --git a/cppcache/benchmark/SerializationRegistryBM.cpp 
b/cppcache/benchmark/SerializationRegistryBM.cpp
new file mode 100644
index 000..89be4cc
--- /dev/null
+++ b/cppcache/benchmark/SerializationRegistryBM.cpp
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include 
+
+#include 
+#include 
+
+#include "SerializationRegistry.hpp"
+
+using apache::geode::client::DataInput;
+using apache::geode::client::DataOutput;
+using apache::geode::client::DataSerializable;
+using apache::geode::client::PdxReader;
+using apache::geode::client::PdxSerializable;
+using apache::geode::client::PdxWriter;
+using apache::geode::client::TheTypeMap;
+using apache::geode::client::TypeFactoryMethod;
+using apache::geode::client::TypeFactoryMethodPdx;
+using apache::geode::client::internal::DSCode;
+using apache::geode::client::internal::DSFid;
+
+class TestPdxClass : public PdxSerializable {
+ public:
+  TestPdxClass() {}
+  void fromData(PdxReader&) {}
+
+  void toData(PdxWriter&) const {}
+
+  const std::string& getClassName() const { return className; }
+
+  static std::shared_ptr createDeserializable() {
+return std::make_shared();
+  }
+
+ private:
+  std::string className = "mypdxclass";
+};
+
+class TestDataSerializableClass : public DataSerializable {
+ public:
+  TestDataSerializableClass() {}
+  void fromData(DataInput&) {}
+
+  void toData(DataOutput&) const {}
+
+  const std::string& getClassName() const { return className; }
+
+  static std::shared_ptr createInstance() {
+return std::make_shared();
+  }
+
+ private:
+  std::string className = "myserializableclass";
+};
+
+static void SerializationRegistryBM_findDataSerializablePrimitive(
+benchmark::State& state) {
+  TheTypeMap theTypeMap;
+  for (auto _ : state) {
+TypeFactoryMethod func;
+theTypeMap.findDataSerializablePrimitive(DSCode::CacheableString, func);
+  }
+}
+
+static void SerializationRegistryBM_findDataSerializableFixedId(
+benchmark::State& state) {
+  TheTypeMap theTypeMap;
+  for (auto _ : state) {
+TypeFactoryMethod func;
+theTypeMap.findDataSerializableFixedId(DSFid::EventId, func);
+  }
+}
+
+static void SerializationRegistryBM_findDataSerializable(
+benchmark::State& state) {
+  TheTypeMap theTypeMap;
+  theTypeMap.bindDataSerializable(TestDataSerializableClass::createInstance,
+  1971);
+  for (auto _ : state) {
+TypeFactoryMethod func;
+theTypeMap.findDataSerializable(1971, func);
+  }
+}
+
+static void SerializationRegistryBM_findPdxSerializable(
+benchmark::State& state) {
+  TheTypeMap theTypeMap;
+  theTypeMap.bindPdxSerializable(TestPdxClass::createDeserializable);
+  for (auto _ : state) {
+the

[geode] branch develop updated (3a0aeb5 -> 9e2891c)

2020-06-09 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 3a0aeb5  GEODE-8223: Update documentation of expiration accuracy as 
well as supported, unsupported, and unimplemented commands in Redis API for 
Geode docs (#5214)
 add 9e2891c  GEODE-7971: Added extra check in test case to find possible 
flaky test case (#5221)

No new revisions were added by this update.

Summary of changes:
 geode-core/src/main/java/org/apache/geode/cache/wan/GatewaySender.java  | 2 +-
 .../apache/geode/internal/cache/wan/serial/SerialWANStatsDUnitTest.java | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)



[geode] branch develop updated: GEODE-7956: correct legal region names (#5159)

2020-06-02 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 da0b1de  GEODE-7956: correct legal region names (#5159)
da0b1de is described below

commit da0b1de256a90b20495658c6151aae5b401ae523
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Wed Jun 3 07:43:00 2020 +0200

GEODE-7956: correct legal region names (#5159)

* GEODE-7956: correct legal region names
---
 .../geode/internal/cache/RegionNameValidation.java |  2 +-
 .../internal/cache/RegionNameValidationTest.java   | 40 ++
 .../data_regions/region_naming.html.md.erb |  4 +--
 3 files changed, 43 insertions(+), 3 deletions(-)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionNameValidation.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionNameValidation.java
index 37ca1b6..0ceaa0c 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/RegionNameValidation.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/RegionNameValidation.java
@@ -25,7 +25,7 @@ import java.util.regex.Pattern;
 
 public class RegionNameValidation {
 
-  private static final Pattern NAME_PATTERN = 
Pattern.compile("[aA-zZ0-9-_.]+");
+  private static final Pattern NAME_PATTERN = 
Pattern.compile("[a-zA-Z0-9-_.^`\\[\\]]+");
 
   static Pattern getNamePattern() {
 return NAME_PATTERN;
diff --git 
a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionNameValidationTest.java
 
b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionNameValidationTest.java
index 58b1ca8..b07de81 100644
--- 
a/geode-core/src/test/java/org/apache/geode/internal/cache/RegionNameValidationTest.java
+++ 
b/geode-core/src/test/java/org/apache/geode/internal/cache/RegionNameValidationTest.java
@@ -137,6 +137,46 @@ public class RegionNameValidationTest {
   }
 
   @Test
+  public void startingAndEndingWithSquareBracketsIsOk() {
+validate("[validRegionName]");
+  }
+
+  @Test
+  public void containingSquareBracketsIsOk() {
+validate("validRegion[EMPTY]Name");
+  }
+
+  @Test
+  public void startingWithCaretIsOk() {
+validate("^validRegionName");
+  }
+
+  @Test
+  public void containingCaretIsOk() {
+validate("validRegion^Name");
+  }
+
+  @Test
+  public void endingWithCaretIsOk() {
+validate("validRegionName^");
+  }
+
+  @Test
+  public void startingWithBackquoteIsOk() {
+validate("`validRegionName");
+  }
+
+  @Test
+  public void containingBackquoteIsOk() {
+validate("validRegion`Name");
+  }
+
+  @Test
+  public void endingWithBackquoteIsOk() {
+validate("validRegionName`");
+  }
+
+  @Test
   public void nameWithDot() throws Exception {
 validate("valid.valid");
   }
diff --git a/geode-docs/basic_config/data_regions/region_naming.html.md.erb 
b/geode-docs/basic_config/data_regions/region_naming.html.md.erb
index 7809e71..d25e54d 100644
--- a/geode-docs/basic_config/data_regions/region_naming.html.md.erb
+++ b/geode-docs/basic_config/data_regions/region_naming.html.md.erb
@@ -22,9 +22,9 @@ limitations under the License.
 To be able to perform all available operations on your data regions,
 follow these region naming guidelines.
 
--   Permitted characters within region names are alphanumeric characters
+-   Characters permitted in region names are alphanumeric characters
 (`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`),
-the underscore character (`_`), and the hyphen character (`-`).
+period (`.`), underscore (`_`), square brackets (`[, ]`), hyphen (`-`), caret 
(`^`) and backquote (```).
 -   Do not use the slash character (`/`).
 -   Do not begin region names with two underscore characters (`__`),
 as this is reserved for internal use.



[geode] branch develop updated (19d5f78 -> c3c226a)

2020-05-21 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.


from 19d5f78  GEODE-7458: Adding option in gfsh command "start gateway 
sender" to control clearing of existing queues (#4387)
 add c3c226a  GEODE-8119:closing threads when offline disk store is 
executed (#5106)

No new revisions were added by this update.

Summary of changes:
 .../apache/geode/internal/cache/DiskStoreImpl.java |  2 +-
 .../cli/commands/DiskStoreCommandsDUnitTest.java   | 21 +++-
 .../AlterDiskStoreCommandIntegrationTest.java  | 40 --
 .../DescribeDiskStoreCommandIntegrationTest.java   | 36 +++
 .../cli/commands/AlterOfflineDiskStoreCommand.java |  9 ++---
 .../commands/CompactOfflineDiskStoreCommand.java   |  9 ++---
 .../commands/DescribeOfflineDiskStoreCommand.java  | 10 +++---
 .../cli/commands/DiskStoreCommandsUtils.java   | 18 +-
 .../commands/UpgradeOfflineDiskStoreCommand.java   |  9 ++---
 .../cli/commands/ValidateDiskStoreCommand.java |  9 ++---
 10 files changed, 131 insertions(+), 32 deletions(-)



[geode] branch feature/GEODE-8118 created (now 4c12d70)

2020-05-20 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch feature/GEODE-8118
in repository https://gitbox.apache.org/repos/asf/geode.git.


  at 4c12d70  GEODE-8122: Update Geode Redis API docs (#5122)

No new revisions were added by this update.



[geode] branch develop updated: GEODE-8013: Logging documentation fixes (#4975)

2020-04-23 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 ee60677  GEODE-8013: Logging documentation fixes (#4975)
ee60677 is described below

commit ee606776d2103fbe87c250ac379d35b03a11c5fc
Author: Alberto Bustamante Reyes 
AuthorDate: Thu Apr 23 08:16:52 2020 +0200

GEODE-8013: Logging documentation fixes (#4975)

* Logging documentation fixes

* Re-wording after review

* Empty commit to retrigger CI
---
 geode-docs/managing/logging/configuring_log4j2.html.md.erb| 3 +--
 geode-docs/tools_modules/gfsh/command-pages/change.html.md.erb| 4 +++-
 .../org/apache/geode/logging/internal/log4j/api/FastLogger.java   | 8 +---
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/geode-docs/managing/logging/configuring_log4j2.html.md.erb 
b/geode-docs/managing/logging/configuring_log4j2.html.md.erb
index 78001e2..4342603 100644
--- a/geode-docs/managing/logging/configuring_log4j2.html.md.erb
+++ b/geode-docs/managing/logging/configuring_log4j2.html.md.erb
@@ -63,5 +63,4 @@ Custom Log4j 2 configuration in <%=vars.product_name%> comes 
with some caveats a
 ```
 
 You can enable the GEODE\_VERBOSE log statements by changing 
`onMatch="DENY"` to `onMatch="ACCEPT"`. Typically, it's more useful to simply 
enable DEBUG or TRACE on certain classes or packages instead of for the entire 
<%=vars.product_name%> product. However, this setting can be used for internal 
debugging purposes if all other debugging methods fail.
-
-
+-   The usage of filters can have an impact on performance. 
<%=vars.product_name%> has some logging optimizations that are deactivated when 
filters are used (except for the GEODE_VERBOSE marker mentioned previously).
\ No newline at end of file
diff --git a/geode-docs/tools_modules/gfsh/command-pages/change.html.md.erb 
b/geode-docs/tools_modules/gfsh/command-pages/change.html.md.erb
index 50ad246..806afc0 100644
--- a/geode-docs/tools_modules/gfsh/command-pages/change.html.md.erb
+++ b/geode-docs/tools_modules/gfsh/command-pages/change.html.md.erb
@@ -20,7 +20,9 @@ limitations under the License.
 -->
 
 
-Changes the logging level on specified members.
+Changes the logging level on specified members. This command takes effect if 
the default <%=vars.product_name%> logging configuration is used.
+
+When using a custom `Log4J` configuration, this command takes effect only if 
the member whose logging level you want to change was started using the 
`--J=-Dgeode.LOG_LEVEL_UPDATE_OCCURS=ALWAYS` system property.
 
 **Availability:** Online. You must be connected in `gfsh` to a JMX Manager 
member to use this command.
 
diff --git 
a/geode-logging/src/main/java/org/apache/geode/logging/internal/log4j/api/FastLogger.java
 
b/geode-logging/src/main/java/org/apache/geode/logging/internal/log4j/api/FastLogger.java
index f5d771b..ef9bb0a 100644
--- 
a/geode-logging/src/main/java/org/apache/geode/logging/internal/log4j/api/FastLogger.java
+++ 
b/geode-logging/src/main/java/org/apache/geode/logging/internal/log4j/api/FastLogger.java
@@ -24,10 +24,12 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.geode.annotations.internal.MakeNotStatic;
 
 /**
- * Overrides is-enabled checks for log levels below INFO to avoid performance 
penalties when the log
- * level is INFO or above. If delegating is true then it will always delegate 
to
- * ExtendedLoggerWrapper for is-enabled checks.
+ * Overrides is-enabled checks to avoid performance penalties in the following 
cases:
+ * - log level is lower than INFO
+ * - log configuration has filters
  *
+ * If delegating is true then it will always delegate to ExtendedLoggerWrapper 
for is-enabled
+ * checks.
  */
 public class FastLogger extends ExtendedLoggerWrapper {
   private static final long serialVersionUID = 7084130827962463327L;



[geode] branch develop updated: GEODE-7989: Improve backup exceptions logging (#4967)

2020-04-20 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 509240f  GEODE-7989: Improve backup exceptions logging (#4967)
509240f is described below

commit 509240f8deecb1361aaf2a3cd041b01d87d65540
Author: Jakov Varenina <62134331+jvaren...@users.noreply.github.com>
AuthorDate: Mon Apr 20 14:53:12 2020 +0200

GEODE-7989: Improve backup exceptions logging (#4967)

* GEODE-7989: Improve backup execeptions logging

Log as warning exception that causes backup execution to fail

* InterruptedException logged as warn

* empty commit to re-launch CI
---
 .../main/java/org/apache/geode/internal/cache/backup/BackupService.java  | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupService.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupService.java
index fb36eb9..4e9cc14 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupService.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/backup/BackupService.java
@@ -74,6 +74,7 @@ public class BackupService {
 try {
   result = taskFuture.get();
 } catch (InterruptedException | ExecutionException e) {
+  logger.warn("Backup failed with exception: ", e);
   result = new HashSet<>();
 } finally {
   cleanup();



[geode] branch develop updated: GEODE-7761: change Ignore description (#4737)

2020-04-13 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 766bfe5  GEODE-7761: change Ignore description (#4737)
766bfe5 is described below

commit 766bfe5f6f66482e632ae21b12ec41159e77e573
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Tue Apr 14 07:21:28 2020 +0200

GEODE-7761: change Ignore description (#4737)

* GEODE-7761: remove Ignore annotation

* change Ignore description

* empty commit to re-launch CI
---
 .../java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
index 59b7e25..25a98cd 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache30/DistributedAckRegionCCEDUnitTest.java
@@ -263,8 +263,8 @@ public class DistributedAckRegionCCEDUnitTest extends 
DistributedAckRegionDUnitT
 versionTestClearWithConcurrentEventsAsync();
   }
 
-  @Ignore("Enable after fix for bug GEODE-7600")
   @Test
+  @Ignore("Enable after fix for bug GEODE-1891")
   public void testClearOnNonReplicateWithConcurrentEvents() {
 versionTestClearOnNonReplicateWithConcurrentEvents();
   }



[geode] branch develop updated: GEODE-7838: getNumOfServers while rebalance is executed (#4815)

2020-04-09 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo 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 93e460b  GEODE-7838: getNumOfServers while rebalance is executed 
(#4815)
93e460b is described below

commit 93e460bb12c05c9351db0b8d6cb8b9179f18caec
Author: Mario Kevo <48509719+mk...@users.noreply.github.com>
AuthorDate: Fri Apr 10 07:28:49 2020 +0200

GEODE-7838: getNumOfServers while rebalance is executed (#4815)

* GEODE-7383: getNumOfServers while rebalance is executed
---
 .../control/RebalanceOperationDistributedTest.java |  1 +
 .../geode/cache/control/RebalanceResults.java  |  7 +++
 .../cache/partition/PartitionRebalanceInfo.java|  7 +++
 .../control/PartitionRebalanceDetailsImpl.java |  6 ++
 .../cache/control/RebalanceResultsImpl.java|  9 +++
 .../internal/functions/RebalanceFunction.java  |  2 +-
 .../geode/management/internal/i18n/CliStrings.java |  2 +
 .../operation/RebalanceOperationPerformer.java |  4 +-
 .../sanctioned-geode-core-serializables.txt|  4 +-
 .../operation/RebalanceOperationPerformerTest.java |  2 +-
 .../gfsh/command-pages/rebalance.html.md.erb   | 28 +-
 .../RebalanceCommandDistributedTestBase.java   | 65 +-
 .../internal/cli/commands/RebalanceCommand.java| 12 +++-
 .../operation/RebalanceRegionResultImpl.java   | 11 
 .../management/runtime/RebalanceRegionResult.java  |  5 ++
 .../sanctioned-geode-management-serializables.txt  |  2 +-
 .../management/operation/RebalanceResultTest.java  |  4 +-
 17 files changed, 146 insertions(+), 25 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/control/RebalanceOperationDistributedTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/control/RebalanceOperationDistributedTest.java
index 7f43087..f77193e 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/control/RebalanceOperationDistributedTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/control/RebalanceOperationDistributedTest.java
@@ -1055,6 +1055,7 @@ public class RebalanceOperationDistributedTest extends 
CacheTestCase {
   assertThat(details.getPrimaryTransfersCompleted()).isEqualTo(0);
   assertThat(details.getBucketTransferBytes()).isGreaterThan(0);
   assertThat(details.getBucketTransfersCompleted()).isEqualTo(3);
+  assertThat(details.getNumberOfMembersExecutedOn()).isEqualTo(2);
 
   Set afterDetails = 
details.getPartitionMemberDetailsAfter();
   assertThat(afterDetails).hasSize(2);
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/control/RebalanceResults.java 
b/geode-core/src/main/java/org/apache/geode/cache/control/RebalanceResults.java
index e2e0134..fd6f28a 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/control/RebalanceResults.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/control/RebalanceResults.java
@@ -99,4 +99,11 @@ public interface RebalanceResults {
* @return the total time, in milliseconds, spent transferring primaries
*/
   long getTotalPrimaryTransferTime();
+
+  /**
+   * Returns the total number of members on which command is executed.
+   *
+   * @return the total number of members on which command is executed
+   */
+  int getTotalMembersExecutedOn();
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/cache/partition/PartitionRebalanceInfo.java
 
b/geode-core/src/main/java/org/apache/geode/cache/partition/PartitionRebalanceInfo.java
index cf69ce8..437e8cf 100644
--- 
a/geode-core/src/main/java/org/apache/geode/cache/partition/PartitionRebalanceInfo.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/partition/PartitionRebalanceInfo.java
@@ -137,4 +137,11 @@ public interface PartitionRebalanceInfo {
* @return the time, in milliseconds, spent transferring primaries for this 
region
*/
   long getPrimaryTransferTime();
+
+  /**
+   * Returns the total number of members on which command is executed.
+   *
+   * @return the total number of members on which command is executed
+   */
+  int getNumberOfMembersExecutedOn();
 }
diff --git 
a/geode-core/src/main/java/org/apache/geode/internal/cache/control/PartitionRebalanceDetailsImpl.java
 
b/geode-core/src/main/java/org/apache/geode/internal/cache/control/PartitionRebalanceDetailsImpl.java
index 8a6c4f9..5eeb8aa 100644
--- 
a/geode-core/src/main/java/org/apache/geode/internal/cache/control/PartitionRebalanceDetailsImpl.java
+++ 
b/geode-core/src/main/java/org/apache/geode/internal/cache/control/PartitionRebalanceDetailsImpl.java
@@ -46,6 +46,7 @@ public class PartitionRebalanceDetailsImpl
   private int primaryTransfersCompleted;
   private final transient PartitionedRegion region;
   private long time;
+  private int numOfM

[geode-native] branch develop updated (11a9bc2 -> 7dbcae0)

2020-04-06 Thread mkevo
This is an automated email from the ASF dual-hosted git repository.

mkevo pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git.


from 11a9bc2  GEODE-7868: Enhance ReflectionBasedAutoSerializer (#585)
 new 2e0fe62  GEODE-7930: Fix endpoint name truncation bug
 new 42fb6fb  Introduced fixes:
 new 7dbcae0  Merge pull request #588 from Nordix/feature/GEODE-7930

The 1139 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 cppcache/src/ThinClientPoolDM.cpp | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)