3 weeks agorebase to develop feature/GEODE-7665
Jinmei Liao [Wed, 8 Jun 2022 22:38:35 +0000 (15:38 -0700)] 
rebase to develop

3 weeks agoRebase missed code changes in DistributedClearOperation
zhouxh [Tue, 8 Mar 2022 06:58:44 +0000 (22:58 -0800)] 
Rebase missed code changes in DistributedClearOperation

3 weeks agorebase to develop
Jinmei Liao [Mon, 7 Mar 2022 21:25:27 +0000 (13:25 -0800)] 
rebase to develop

3 weeks agoGEODE-9194: Feature/region stats update (#6430)
mhansonp [Tue, 13 Jul 2021 16:34:54 +0000 (09:34 -0700)] 
GEODE-9194: Feature/region stats update (#6430)

* GEODE-9194: add PR Region Clear statistics

3 weeks agoGEODE-9194: Missing file is causing trouble (#6574)
mhansonp [Tue, 8 Jun 2021 16:41:32 +0000 (09:41 -0700)] 
GEODE-9194: Missing file is causing trouble (#6574)

3 weeks agoGEODE-9195: Remove PR clear local locking (#6410)
Kirk Lund [Fri, 30 Apr 2021 20:51:33 +0000 (13:51 -0700)] 
GEODE-9195: Remove PR clear local locking (#6410)

Unit test changes in BucketRegion and DistributedRegion.

Unit test most of PartitionedRegionClearMessage.

3 weeks agoGEODE-9132: Fix locking in PRClearCreateIndexDUnitTest
Kirk Lund [Thu, 22 Apr 2021 18:43:10 +0000 (11:43 -0700)] 
GEODE-9132: Fix locking in PRClearCreateIndexDUnitTest

3 weeks agoGEODE-9132: Use factory method to avoid escaped reference
Kirk Lund [Thu, 22 Apr 2021 18:42:09 +0000 (11:42 -0700)] 
GEODE-9132: Use factory method to avoid escaped reference

3 weeks agoGEODE-9132: Always acquire write lock for PR clear
Kirk Lund [Wed, 21 Apr 2021 22:24:06 +0000 (15:24 -0700)] 
GEODE-9132: Always acquire write lock for PR clear

3 weeks agoGEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 3
Kirk Lund [Mon, 19 Apr 2021 23:42:22 +0000 (16:42 -0700)] 
GEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 3

3 weeks agoGEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 2
Kirk Lund [Mon, 19 Apr 2021 23:16:17 +0000 (16:16 -0700)] 
GEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 2

3 weeks agoGEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 1
Kirk Lund [Mon, 19 Apr 2021 21:38:02 +0000 (14:38 -0700)] 
GEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 1

3 weeks agoFixup AnalyzeCoreSerializablesJUnitTest for PartitionedRegionPartialClearException
Kirk Lund [Fri, 16 Apr 2021 18:40:37 +0000 (11:40 -0700)] 
Fixup AnalyzeCoreSerializablesJUnitTest for PartitionedRegionPartialClearException

3 weeks agoGEODE-9132: Remove ClearPRMessage from sanctionedDataSerializables.txt
Kirk Lund [Fri, 16 Apr 2021 00:12:10 +0000 (17:12 -0700)] 
GEODE-9132: Remove ClearPRMessage from sanctionedDataSerializables.txt

3 weeks agoGEODE-9132: Cleanup PartitionedRegionPartialClearException
Kirk Lund [Fri, 16 Apr 2021 00:10:24 +0000 (17:10 -0700)] 
GEODE-9132: Cleanup PartitionedRegionPartialClearException

* Generate serialVersionUID
* Use full words for parameter names

3 weeks agoGEODE-9132: Undelete unnecessary uses of final
Kirk Lund [Fri, 16 Apr 2021 00:08:52 +0000 (17:08 -0700)] 
GEODE-9132: Undelete unnecessary uses of final

3 weeks agoGEODE-9132: Remove unused DSFID constants
Kirk Lund [Fri, 16 Apr 2021 00:07:43 +0000 (17:07 -0700)] 
GEODE-9132: Remove unused DSFID constants

3 weeks agoGEODE-9132: Cleanup PartitionedRegionClearMessage
Kirk Lund [Sat, 10 Apr 2021 00:24:26 +0000 (17:24 -0700)] 
GEODE-9132: Cleanup PartitionedRegionClearMessage

* Use descriptive names for variables and methods
* Use Objects.requireNonNull instead of Assert.assertTrue
* Remove unnecessary uses of final, this, and super
* Use static logger
* Reformat some lines with weird formatting

3 weeks agoGEODE-9132: Fixup PartitionResponse constructors
Kirk Lund [Fri, 9 Apr 2021 22:22:46 +0000 (15:22 -0700)] 
GEODE-9132: Fixup PartitionResponse constructors

* Chain constructors to only one constructor that calls super
* Expose all arguments for dependency injection
* Provide type to recipients

3 weeks agoGEODE-9132: Delete ClearPRMessage
Kirk Lund [Fri, 9 Apr 2021 22:06:40 +0000 (15:06 -0700)] 
GEODE-9132: Delete ClearPRMessage

3 weeks agoGEODE-7674: Clear on PR with lucene index should throw exception (#6317)
Xiaojian Zhou [Tue, 13 Apr 2021 21:21:34 +0000 (14:21 -0700)] 
GEODE-7674: Clear on PR with lucene index should throw exception (#6317)

3 weeks agoGEODE-7683: introduce BR.cmnClearRegion
zhouxh [Tue, 28 Jan 2020 01:02:48 +0000 (17:02 -0800)] 
GEODE-7683: introduce BR.cmnClearRegion

Co-authored-by: Xiaojian Zhou <>
GEODE-7684: Create messaging class for PR Clear (#4689)

* Added new message class and test

Co-authored-by: Benjamin Ross <>
Co-authored-by: Donal Evans <>
GEODE-7682: add PR.clear  API (#4755)

* GEODE-7683: introduce BR.cmnClearRegion

Co-authored-by: Xiaojian Zhou <>
PR.clear's event id should be created and used in BR (#4805)

* GEODE-7857: PR.clear's event id should be created and used in BR

GEODE-7912: cacheWriter should be triggered when PR.clear (#4882)

Co-authored-by: Anil <>
Co-authored-by: Xiaojian Zhou <>
GEODE-7983: Clear region writer callbacks should not be invoked for bucket regions (#4954)

GEODE-7676: Add PR clear with expiration tests (#4970)

Added distributed tests to verify the clear operation on Partitioned
Regions works as expected when expiration is configured.

- Added unit and distributed tests.
- Fixed LocalRegion class to clear the entryExpiryTasks Map whenever
  the cancelAllEntryExpiryTasks method is invoked.

GEODE-7667: Add a 'clear' gfsh command for PR and RR clear (#4818)

* Added clear command and modified remove functionality to clear PR

Authored-by: Benjamin Ross <>
GEODE-7676: Conversion of duration to seconds.

GEODE-7894: Moving expiry tasks to AbstractRegion.

GEODE-7667: Fixing test to include PR clear help text.

GEODE-7678 (2nd PR) - Support for cache-listener and client-notification for Partitioned Region Clear operation  (#5124)

* GEODE-7678: Add support for cache listener and client notification for PR clear

The changes are made to PR clear messaging and locking mechanism to preserve
cache-listener and client-events ordering during concurrent cache operation
while clear in progress.

GEODE-7669 Test coverage for Partitioned Region clear with Overflow enabled (#5189)

Authored-by: Jianxia Chen <>
GEODE-8173: Add unit test (coverage) for PartitionedRegionClear class. (#5208)

* GEODE-8173: Add unit test (coverage) for PartitionedRegionClear class.
Co-authored-by: anilkumar gingade <anil@anilg.local>
GEODE-8334: PR.clear should sync with putAll or removeAll on rvvLock (#5365)

Co-authored-by: Xiaojian Zhou <>
Co-authored-by: Anil Gingade <>
GEODE-8361: Use Set instead of List to track cleared buckets (#5379)

- Refactor PartitionRegionClear to use Set instead of List
- Some other changes to remove warnings/alerts from PartitionedRegionClear and PartitionedRegionClearMessage

Authored-by: Donal Evans <>
GEODE-7670: PR Clear with Concurrent Ops DUnitTests (#4848)

Added distributed tests to verify that the clear operation on
Partitioned Regions works as expected when there are other
concurrent operations happening on the cache (put, putAll, get,
remove, removeAll, members added and members removed).

GEODE-7680: PR.clear must be successful when interacting with rebalance (#5095)

- Added DUnit tests to confirm that clear does not interfere with
rebalance or vice versa
- Test when member departs during clear/rebalance
- Test when member joins during clear/rebalance
- Fixed typo in PartitionedRegionClearWithExpirationDUnitTest
- Fixed typo in PartitionedRegion
- Call assignBucketsToPartitions() on leader colocated region during clear
instead of target region

Authored-by: Donal Evans <>
GEODE-7846: Adding Stats for Partitioned Region Clear (#5391)

Added stats to CachePerfStats for PR Clear
- Changed clears to 'regionClears' and 'bucketClears' to differentiate between the number of times the region was cleared and the number of times a bucket was cleared in a PartitionedRegion
- Added Local and Total duration stats to record how long clear has been running for a specific region, as well as how long it was spent clearing any specific member

GEODE-7672: add dunit test to verify OQL index after PR clear. (#5436)

* require rvv lock when create index

fix rebase compiling error

GEODE-7845 blocking PR region clear if one or more server versions are too old (#5577)

- if a server is running an old version when a PR clear is invoked
by the client, the client will receive a ServerOperationException
with a cause of ServerVersionMismatchException.

GEODE-7845: Adding a cleaner simpler test. (#5622)

- Changed the test for ServerVersionMismatchException to be more readable.

GEODE-7845: Now behaving with clients of various versions. (#5645)

- added functionality that would allow the tests to be run using various versions of the clients against and and new versions of the server.

GEODE-7858: PR.clear notify client should let the queue holder member to notify (#5677)

GEODE-7679 Partitioned Region clear is successful while region is being altered (#5516)

GEODE-7675: Partitioned Region clear should be successful when clients are present with subscription enabled (#5727)

GEODE-8771: invalidate should acquire the lock before initIndex (#5823)

GEODE-8878: PR clear should also send a lock message to the secondary members. (#5950)

GEODE-9132: Minor cleanup of PartitionedRegionClearTest

3 weeks agoGEODE-10321: Acceptance test for Geode access to JDK internals (#7772)
Dale Emery [Wed, 8 Jun 2022 21:17:49 +0000 (14:17 -0700)] 
GEODE-10321: Acceptance test for Geode access to JDK internals (#7772)

* GEODE-10321: Acceptance test for Geode access to JDK internals

Add acceptance tests to demonstrate two ways to give Geode access to
encapsulated fields of a JDK 17 class:

- Tell Gfsh to open the class's package when starting a Geode member.
- Tell Gfsh to use `open-all-jdk-packages-linux-openjdk-17` as an
  argument file when starting a Geode member.

Add another test to demonstrate the kind of error that happens when
Geode cannot access an encapsulated field of a JDK 17 class.

* Clean up

Remove unnecessary dependency on JUnit 5 rule migration support.

Start server without default server.

Other cleanup.

3 weeks agoGEODE-10068: Make WanCopyRegionFunctionService thread pool configurab… (#7424)
Alberto Gomez [Wed, 8 Jun 2022 13:36:30 +0000 (15:36 +0200)] 
GEODE-10068: Make WanCopyRegionFunctionService thread pool configurab… (#7424)

* GEODE-10068: Make WanCopyRegionFunctionService thread pool configurable through property

* GEODE-10068: Change name of property and add test case

* GEODE-10068: Update after more review comments

3 weeks agoGEODE-10089: update LICENSE due to redis removal, change to springdoc, and inclusion...
Owen Nichols [Wed, 8 Jun 2022 03:40:46 +0000 (20:40 -0700)] 
GEODE-10089: update LICENSE due to redis removal, change to springdoc, and inclusion of joda-time (#7783)

3 weeks agoGEODE-10342: Simplify copying jars (#7778)
Max Hufnagel [Wed, 8 Jun 2022 00:04:05 +0000 (17:04 -0700)] 
GEODE-10342: Simplify copying jars (#7778)

3 weeks agoGEODE-10365: Add referenced but missing components to table (#7775)
Max Hufnagel [Tue, 7 Jun 2022 16:12:12 +0000 (09:12 -0700)] 
GEODE-10365: Add referenced but missing components to table (#7775)

3 weeks agoGEODE-10280: add Status Message to Status Server Command (#7662)
Mario Ivanac [Tue, 7 Jun 2022 05:07:53 +0000 (07:07 +0200)] 
GEODE-10280: add Status Message to Status Server Command (#7662)

* GEODE-10280: add Status Message to Status Server Command

* GEODE-10280: update test after comments

3 weeks agoGEODE-8977: change ThreadMonitor to reduce how long it does a "stop the world" Thread...
Darrel Schneider [Mon, 6 Jun 2022 23:45:33 +0000 (16:45 -0700)] 
GEODE-8977: change ThreadMonitor to reduce how long it does a "stop the world" ThreadDump vm op (#7751)

Now uses a cheaper getThreadInfo that does not get lock info by default and calls getThreadInfo for each stuck thread. These are the defaults because they have the shortest time do the the VM ThreadDump operation.
To get locks set the system property "gemfire.threadmonitor.showLocks" to "true".
To get ThreadInfo on all stuck threads with a single call set the system property "gemfire.threadmonitor.batchCalls" to "true".

3 weeks agoGEODE-10304: locator thread should not exit after reconnecting (#7697)
Jinmei Liao [Mon, 6 Jun 2022 22:59:21 +0000 (15:59 -0700)] 
GEODE-10304: locator thread should not exit after reconnecting (#7697)

* Also refactor ReconnectDUnitTest to use lamdas instead of `Callable` and `Runnable` interfaces.

3 weeks agoGEODE-10155: Avoid threads hanging when function execution times-out (#7493)
Alberto Gomez [Mon, 6 Jun 2022 18:18:46 +0000 (20:18 +0200)] 
GEODE-10155: Avoid threads hanging when function execution times-out (#7493)

* GEODE-10155: Avoid threads hanging when function execution times-out

* GEODE-10155: Updated after review

* GEODE-10155: More changes after review

* GEODE-10155: Changes after more reviews

* GEODE-10155: Some more changes after review

* GEODE-10155: More changes after review

* GEODE-10155: More clean-up after review

3 weeks agoGEODE-10346: Correct description of batch-time-interval in doc. (#7742)
Alberto Gomez [Mon, 6 Jun 2022 06:54:33 +0000 (08:54 +0200)] 
GEODE-10346: Correct description of batch-time-interval in doc. (#7742)

3 weeks agoGEODE-10352: Update Ruby version in Geode doc preview tool (#7753)
Alberto Gomez [Fri, 3 Jun 2022 18:50:13 +0000 (20:50 +0200)] 
GEODE-10352: Update Ruby version in Geode doc preview tool (#7753)

The script to preview the documentation of Geode (./
is not working anymore.

The following error appears while running it (unless you have a previously downloaded
geodedocs/temp docker image in your local docker repo):

ERROR: Error installing elasticsearch:
The last version of faraday (>= 0) to support your Ruby & RubyGems was 1.10.0. Try installing it with `gem install faraday -v 1.10.0` and then running the current command again
faraday requires Ruby version >= 2.6. The current ruby version is

That error prevents the preview script to work.

It is needed to update the docker image used to preview the documentation to use a Ruby version >= 2.6.
The versions of other gems also need to be updated after the
change of the Ruby version.

3 weeks agoShort-circuit CI checks for PRs that don't touch buildable files (#7763)
Robert Houghton [Fri, 3 Jun 2022 17:50:40 +0000 (10:50 -0700)] 
Short-circuit CI checks for PRs that don't touch buildable files (#7763)

* Short-circuit CI checks for PRs that don't touch buildable files

3 weeks agoGEODE-10356: Corrected the comment (#7762)
Nabarun Nag [Fri, 3 Jun 2022 17:04:53 +0000 (10:04 -0700)] 
GEODE-10356: Corrected the comment (#7762)

* The previous comment on removeOldEntry mentioned that the old entry
was replaced
* This has been corrected to mention that the old entry is removed and
the new entry has been added to the region queue

3 weeks agoGEODE-10342: Add current jars to HTTP Module for Tomcat instructions (#7745)
Max Hufnagel [Fri, 3 Jun 2022 15:24:40 +0000 (08:24 -0700)] 
GEODE-10342: Add current jars to HTTP Module for Tomcat instructions (#7745)

3 weeks agoGEODE-10301: support LocalDate and JodaTime (#7737)
Joris Melchior [Fri, 3 Jun 2022 15:13:44 +0000 (11:13 -0400)] 
GEODE-10301: support LocalDate and JodaTime (#7737)

* GEODE-10301: support LocalDate and JodaTime

Co-authored-by: Jinmei Liao <>
- include libraries so that end-users won't have to add them to the java
- ensure proper serialization in gfsh and pulse

3 weeks agoGEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7758)
Kirk Lund [Thu, 2 Jun 2022 23:36:05 +0000 (16:36 -0700)] 
GEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7758)


Tests that use GfshRule leave behind orphaned processes and do not save
artifacts for debugging failures.


GfshRule needs to cleanup all processes it forks. It also needs to save
off all runtime artifacts such as logging, stats, pid files, diskstores
to enable debugging of test failures.


Enhance GfshRule and modify all tests using it for proper debugging and
to prevent test pollution.

Overhaul of GfshRule:

* kill ALL geode processes during cleanup
* use FolderRule to ensure all logs and files are properly saved off
when a test fails
* extract GfshExecutor from JUnit rule code
* GfshExecutor allows a test to use any number of Geode versions with
just one GfshRule
* add Gfsh log level support for easier debugging
* add support for new VmConfiguration to allow control over Geode and
Java versions
* overhaul API of GfshRule and companion classes for better consistency
and design

New FolderRule:

* replaces TemporaryFolder and saves off all content when a test fails
* creates root directory under the gradle worker instead of under temp

Update HTTP session caching module tests:

* use new FolderRule to save all artifacts when a test fails
* use nio Paths for filesystem variables

Update acceptance and upgrade tests that use GfshRule:

* use new improved GfshRule and GfshExecutor
* use new FolderRule instead of TemporaryFolder to save all artifacts
when a test fails
* use --disable-default-server in tests with no clients
* fix flakiness of many tests by using random ports instead of default
or hardcoded port values
* reformat GfshRule API usage in tests to improve readability and
* add GfshStopper to provide common place to await process stop (stop
locator/server is async so restarting with same ports is very prone
to hitting BindExceptions)

Update ProcessUtils:

* extract NativeProcessUtils and make it public for direct use
* rename InternalProcessUtils as ProcessUtilsProvider and move to its
own class
* rethrow IOExceptions as UncheckedIOExceptions
* fix flakiness in NativeProcessUtilsTest by moving findAvailablePid
into test method

Minor changes:

* improve code formatting and readability
* convert from old io File to nio Path APIs as much as possible
* close output streams to fix filesystem issues on Windows

Fixes flaky test tickets:

* DeployJarAcceptanceTest GEODE-9615
* possibly other tests that uses GfshRule

Changes for resubmit:

* log error message if unable to delete folder
* keep default constructor on GfshRule
* ensure IO streams have proper error handling and don't cause failures
on windows

Changes to build pipelines:

* make jdk17 tests gating


The labels jdk8, jdk17, windows, windows-jdk8 and windows-jdk17 were
used to run tests on more environments.

This PR contains mostly test and framework changes. The only product
code altered is ServerLauncher and several classes in
org.apache.geode.internal.process, all of which is in geode-core.

3 weeks agoGEODE-10355: Bump spring-security from 5.6.3 to 5.6.5 (#7761)
Owen Nichols [Thu, 2 Jun 2022 21:53:42 +0000 (14:53 -0700)] 
GEODE-10355: Bump spring-security from 5.6.3 to 5.6.5 (#7761)

Geode endeavors to update to the latest version of 3rd-party
dependencies on develop wherever possible.  Doing so increases the
shelf life of releases and increases security and reliability.
Doing so regularly makes the occasional hiccups this can cause easier
to pinpoint and address.

Dependency bumps in this batch:
* Bump spring-security from 5.6.3 to 5.6.5

3 weeks agoGEODE-10357: add gesterzhou as code owner for logging components (#7764)
Xiaojian Zhou [Thu, 2 Jun 2022 21:35:26 +0000 (14:35 -0700)] 
GEODE-10357: add gesterzhou as code owner for logging components (#7764)

3 weeks agoGEODE-10106: Use local ref to queueConnection. (#7740)
Nabarun Nag [Thu, 2 Jun 2022 20:20:26 +0000 (13:20 -0700)] 
GEODE-10106: Use local ref to queueConnection. (#7740)

* Using queueConnection local ref for multiple if checks
* As it is a volatile variable, the value may become null mid checks.

3 weeks agoGEODE-10309: fixup: Give more memory to windows-core-integration-test (#7757)
Robert Houghton [Thu, 2 Jun 2022 18:29:11 +0000 (11:29 -0700)] 
GEODE-10309: fixup: Give more memory to windows-core-integration-test (#7757)

3 weeks agoGEODE-9711: Refactored DUnit to DistributedTest (#6970)
Nabarun Nag [Thu, 2 Jun 2022 18:16:56 +0000 (11:16 -0700)] 
GEODE-9711: Refactored DUnit to DistributedTest (#6970)

* Typos were fixed in ConflationDUnitTestHelper
* ConflationDUnitTestHelper name was changed to
* All DUnit tests affected by ConflationDUnitTestHelper refactoring was
renamed to DistributedTest

3 weeks agoGEODE-10348: Fix documentation on conflation (#7746)
Alberto Gomez [Thu, 2 Jun 2022 17:55:19 +0000 (19:55 +0200)] 
GEODE-10348: Fix documentation on conflation (#7746)

The Geode documentation states on conflation:
"When an update is added to a queue that has conflation enabled,
if there is already an update message in the queue for the
entry key, then the existing message assumes the value of the
new update and the new update is dropped, as shown here for key A."

Nevertheless, that is not correct. The actual behavior is the following:
"When an update is added to a queue that has conflation enabled,
if there is already an update message in the queue for the
entry key, then the existing message is removed and the new
update is added to the end of the queue, as shown here for key A."

The text has been updated as well as the the figure with the example.

3 weeks agoGEODE-10309: Give more memory to windows-core-integration-test (#7755)
Robert Houghton [Thu, 2 Jun 2022 17:11:21 +0000 (10:11 -0700)] 
GEODE-10309: Give more memory to windows-core-integration-test (#7755)

3 weeks agoGEODE-10347: Refactor PartitionedRegionStatsDUnitTest (#7744)
Nabarun Nag [Thu, 2 Jun 2022 04:36:39 +0000 (21:36 -0700)] 
GEODE-10347: Refactor PartitionedRegionStatsDUnitTest (#7744)

* Renamed to PartitionedRegionStatsDistributedTest
* Used the new test framework
* Compartmentalize the cluster members so that parallel tests do not
affect the individual tests.

3 weeks agoRevert "GEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7731...
Kirk Lund [Thu, 2 Jun 2022 00:42:17 +0000 (17:42 -0700)] 
Revert "GEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7731)" (#7750)

This reverts commit 3f8f8db595ca4b99b25fe4d109a8ed118a712701.

4 weeks agoGEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7731)
Kirk Lund [Wed, 1 Jun 2022 21:16:35 +0000 (14:16 -0700)] 
GEODE-10327: Overhaul GfshRule to kill processes and save artifacts (#7731)


Tests that use GfshRule leave behind orphaned processes and do not save
artifacts for debugging failures.


GfshRule needs to cleanup all processes it forks. It also needs to save
off all runtime artifacts such as logging, stats, pid files, diskstores
to enable debugging of test failures.


Enhance GfshRule and modify all tests using it for proper debugging and
to prevent test pollution.

Overhaul of GfshRule:

* kill ALL geode processes during cleanup
* use FolderRule to ensure all logs and files are properly saved off
  when a test fails
* extract GfshExecutor from JUnit rule code
* GfshExecutor allows a test to use any number of Geode versions with
  just one GfshRule
* add Gfsh log level support for easier debugging
* add support for new VmConfiguration to allow control over Geode and
  Java versions
* overhaul API of GfshRule and companion classes for better consistency
  and design

New FolderRule:

* replaces TemporaryFolder and saves off all content when a test fails
* creates root directory under the gradle worker instead of under temp

Update HTTP session caching module tests:

* use new FolderRule to save all artifacts when a test fails
* use nio Paths for filesystem variables

Update acceptance and upgrade tests that use GfshRule:

* use new improved GfshRule and GfshExecutor
* use new FolderRule instead of TemporaryFolder to save all artifacts
  when a test fails
* use --disable-default-server in tests with no clients
* fix flakiness of many tests by using random ports instead of default
  or hardcoded port values
* reformat GfshRule API usage in tests to improve readability and
* add GfshStopper to provide common place to await process stop (stop
  locator/server is async so restarting with same ports is very prone
  to hitting BindExceptions)

Update ProcessUtils:

* extract NativeProcessUtils and make it public for direct use
* rename InternalProcessUtils as ProcessUtilsProvider and move to its
  own class
* rethrow IOExceptions as UncheckedIOExceptions
* fix flakiness in NativeProcessUtilsTest by moving findAvailablePid
  into test method

Minor changes:

* improve code formatting and readability
* convert from old io File to nio Path APIs as much as possible
* close output streams to fix filesystem issues on Windows

Fixes flaky test tickets:

* DeployJarAcceptanceTest GEODE-9615
* possibly other tests that uses GfshRule

Changes for resubmit:

* log error message if unable to delete folder


The jdk8, jdk17 and windows labels were used to run tests on more

This PR contains mostly test and framework changes. The only product
code altered is ServerLauncher and several classes in
org.apache.geode.internal.process, all of which is in geode-core.

4 weeks agoGEODE-10327: Update geode-dunit and geode-junit codeowners (#7748)
Kirk Lund [Wed, 1 Jun 2022 21:14:48 +0000 (14:14 -0700)] 
GEODE-10327: Update geode-dunit and geode-junit codeowners (#7748)

Add Darrel to geode-dunit and geode-junit while Dale is unavailable.

4 weeks agoGEODE-10305: Change locator and server dirs (#7730)
Jianxia Chen [Wed, 1 Jun 2022 21:03:21 +0000 (14:03 -0700)] 
GEODE-10305: Change locator and server dirs (#7730)

Use non-temporary directories to keep the logs in case of test failure

4 weeks agoGEODE-6588: Fixed mismatch of placeholders and arguments (#7375)
Nabarun Nag [Wed, 1 Jun 2022 19:36:36 +0000 (12:36 -0700)] 
GEODE-6588: Fixed mismatch of placeholders and arguments (#7375)

4 weeks agoGEODE-10294: Compare invalid token during putIfAbsent retry. (#7738)
Eric Shu [Wed, 1 Jun 2022 18:47:59 +0000 (11:47 -0700)] 
GEODE-10294: Compare invalid token during putIfAbsent retry. (#7738)

 * During putIfAbsent retry, comparing invalid token value when
   putIfAbsent of a null value.
 * Do not make putIfAbsent event to update event if current
   entry value is null or invalidate and is a retried event.

4 weeks agoGEODE-10308: Close the cache after stopping the Tomcat container (#7739)
Jianxia Chen [Wed, 1 Jun 2022 17:44:52 +0000 (10:44 -0700)] 
GEODE-10308: Close the cache after stopping the Tomcat container (#7739)

4 weeks agoGEODE-10309: Enable parallel tests for windows tests (#7743)
Robert Houghton [Wed, 1 Jun 2022 17:36:43 +0000 (10:36 -0700)] 
GEODE-10309: Enable parallel tests for windows tests (#7743)

* more parallelism for windows (not acceptance) tests

Using the test-isolation plugin for parallelism, instead of Docker,
enables parallel testing on Windows for some jobs.

4 weeks agoGEODE-10312: Fix the v1/v3 mismatch. (#7720)
Patrick Johnson [Wed, 1 Jun 2022 01:33:58 +0000 (18:33 -0700)] 
GEODE-10312: Fix the v1/v3 mismatch. (#7720)

* Remove SpringBootApplication annotation from swagger APIs.
* Change v1 to v3 in swagger api-docs URLs.

4 weeks agoRevert "GEODE-10020: For Ping task avoid registering new destination endpoint (#7515...
Nabarun Nag [Tue, 31 May 2022 18:50:38 +0000 (11:50 -0700)] 
Revert "GEODE-10020: For Ping task avoid registering new destination endpoint (#7515)" (#7741)

This reverts commit 18f0e9c55c3aeb14ceb3b1f07c07008b0126d6be.

4 weeks agoGEODE-10334: Refactor distributed tests (#7722)
Nabarun Nag [Sat, 28 May 2022 19:58:05 +0000 (12:58 -0700)] 
GEODE-10334: Refactor distributed tests (#7722)

* DistributedMulticastRegionWithUDPSecurityDUnitTest -> DistributedMulticastRegionWithUDPSecurityDistributedTest
* DistributedMulticastRegionDUnitTest ->  DistributedMulticastRegionDistributedTest
* Removed deprecated APIs
* Moved to new test framework.

4 weeks agoGEODE-10343: add ability to opt-in to windows-jdk8 and windows-jdk17 pr checks (...
Owen Nichols [Fri, 27 May 2022 20:58:24 +0000 (13:58 -0700)] 
GEODE-10343: add ability to opt-in to windows-jdk8 and windows-jdk17 pr checks (#7736)

(cherry picked from commit e79c6aa44bd6c4285dddd0c0715fe7ed41d24660)

4 weeks agoGEODE-10341: add note that snapshot includes in-cache and overflow entries (#7729)
Max Hufnagel [Fri, 27 May 2022 15:19:29 +0000 (08:19 -0700)] 
GEODE-10341: add note that snapshot includes in-cache and overflow entries (#7729)

4 weeks agoRevert "GEODE-10327: Overhaul GfshRule to kill processes and save artifacts for failu...
Kirk Lund [Thu, 26 May 2022 20:32:27 +0000 (13:32 -0700)] 
Revert "GEODE-10327: Overhaul GfshRule to kill processes and save artifacts for failures (#7571)" (#7728)

This reverts commit 774505e7c74cff8c572be1ec4f4bb2b0f3e1a091.

4 weeks agoGEODE-10311: fix a flaky test (#7709)
Jinmei Liao [Thu, 26 May 2022 16:29:47 +0000 (09:29 -0700)] 
GEODE-10311: fix a flaky test (#7709)

4 weeks agoGEODE-10277: For destroyed region don`t check size (#7653)
Mario Ivanac [Thu, 26 May 2022 05:09:04 +0000 (07:09 +0200)] 
GEODE-10277: For destroyed region don`t check size (#7653)

5 weeks agoGEODE-10327: Overhaul GfshRule to kill processes and save artifacts for failures...
Kirk Lund [Wed, 25 May 2022 18:09:24 +0000 (11:09 -0700)] 
GEODE-10327: Overhaul GfshRule to kill processes and save artifacts for failures (#7571)


Tests that use GfshRule leave behind orphaned processes and do not save artifacts for debugging failures.


GfshRule needs to cleanup all processes it forks. It also needs to save off all runtime artifacts such as logging, stats, pid files, diskstores to enable debugging of test failures.


Enhance GfshRule and modify all tests using it for proper debugging and to prevent test pollution.

Overhaul of GfshRule:

* kill ALL geode processes during cleanup
* use FolderRule to ensure all logs and files are properly saved off when a test fails
* extract GfshExecutor from JUnit rule code
* GfshExecutor allows a test to use any number of Geode versions with just one GfshRule
* add Gfsh log level support for easier debugging
* add support for new VmConfiguration to allow control over Geode and Java versions
* overhaul API of GfshRule and companion classes for better consistency and design

New FolderRule:

* replaces TemporaryFolder and saves off all content when a test fails
* creates root directory under the gradle worker instead of under temp

Update HTTP session caching module tests:

* use new FolderRule to save all artifacts when a test fails
* use nio Paths for filesystem variables

Update acceptance and upgrade tests that use GfshRule:

* use new improved GfshRule and GfshExecutor
* use new FolderRule instead of TemporaryFolder to save all artifacts when a test fails
* use --disable-default-server in tests with no clients
* fix flakiness of many tests by using random ports instead of default or hardcoded port values
* reformat GfshRule API usage in tests to improve readability and consistency
* add GfshStopper to provide common place to await process stop (stop locator/server is async so restarting with same ports is very prone to hitting BindExceptions)

Update ProcessUtils:

* extract NativeProcessUtils and make it public for direct use
* rename InternalProcessUtils as ProcessUtilsProvider and move to its own class
* rethrow IOExceptions as UncheckedIOExceptions
* fix flakiness in NativeProcessUtilsTest by moving findAvailablePid into test method

Minor changes:

* improve code formatting and readability
* convert from old io File to nio Path APIs as much as possible
* close output streams to fix filesystem issues on Windows

Fixes flaky test tickets:

* DeployJarAcceptanceTest GEODE-9615
* possibly other tests that uses GfshRule


The jdk8, jdk17 and windows labels were used to run tests on more environments.

This PR contains mostly test and framework changes. The only product code altered is ServerLauncher and several classes in org.apache.geode.internal.process, all of which is in geode-core.

5 weeks agoGEODE-10020: For Ping task avoid registering new destination endpoint (#7515)
Mario Ivanac [Wed, 25 May 2022 05:54:26 +0000 (07:54 +0200)] 
GEODE-10020: For Ping task avoid registering new destination endpoint (#7515)

* GEODE-10020: For Ping task avoid registering new destination endpoint

5 weeks agoGEODE-10226: Added monitoring of async writer (#7667)
Mario Ivanac [Wed, 25 May 2022 05:32:44 +0000 (07:32 +0200)] 
GEODE-10226: Added monitoring of async writer (#7667)

* GEODE-10226: Added monitoring of async writer

5 weeks agoGEODE-10275: Bump spring from 5.3.19 to 5.3.20 (#7718)
Owen Nichols [Mon, 23 May 2022 22:39:32 +0000 (15:39 -0700)] 
GEODE-10275: Bump spring from 5.3.19 to 5.3.20 (#7718)

Geode endeavors to update to the latest version of 3rd-party
dependencies on develop wherever possible.  Doing so increases the
shelf life of releases and increases security and reliability.
Doing so regularly makes the occasional hiccups this can cause easier
to pinpoint and address.

Dependency bumps in this batch:
* Bump spring from 5.3.19 to 5.3.20

5 weeks agoGEODE-10328: close data store stats on cache close (#7716)
Darrel Schneider [Mon, 23 May 2022 20:57:04 +0000 (13:57 -0700)] 
GEODE-10328: close data store stats on cache close (#7716)

data store stats are now also closed on cache close or forced disconnect

5 weeks agoGEODE-10318: do not add duplicate entries in the locators list (#7703)
Jinmei Liao [Mon, 23 May 2022 16:37:58 +0000 (09:37 -0700)] 
GEODE-10318: do not add duplicate entries in the locators list (#7703)

* move locator parsing to api package

5 weeks agoGEODE-10297: Create SSLContext using default protocols (#7680)
Donal Evans [Mon, 23 May 2022 15:37:58 +0000 (08:37 -0700)] 
GEODE-10297: Create SSLContext using default protocols (#7680)

 - Modify SSLUtil to attempt to create SSLContext using the supported SSL
 - Add WANSSLDistributedTest to test protocol/cipher combinations in WAN
 - Do not hide exception when generating key pair in CertificateBuilder
 - Fix javadoc error in SocketCreator

Authored-by: Donal Evans <>
5 weeks agoGEODE-9987: Refactored/Removal of deprecated API (#7303)
Nabarun Nag [Fri, 20 May 2022 21:48:51 +0000 (14:48 -0700)] 
GEODE-9987: Refactored/Removal of deprecated API (#7303)

* The tests were refactored to remove deprecated functions.
* This was done so that the starting and stopping of members are
handled correctly.

5 weeks agoRemoving myself from CODEOWNERS (#7708)
mhansonp [Fri, 20 May 2022 19:31:05 +0000 (12:31 -0700)] 
Removing myself from CODEOWNERS (#7708)

* Removing myself from CODEOWNERS and rebasing to pickup changes
* Adding Dale to dunit and junit ownership

5 weeks agoGEODE-10322: Run various Analyze Serialiable tests from IntelliJ (#7711)
Jens Deppe [Thu, 19 May 2022 23:51:04 +0000 (16:51 -0700)] 
GEODE-10322: Run various Analyze Serialiable tests from IntelliJ (#7711)

5 weeks agoGEODE-10320: Bump micrometer from 1.8.5 to 1.9.0 (#7706)
Owen Nichols [Thu, 19 May 2022 23:19:37 +0000 (16:19 -0700)] 
GEODE-10320: Bump micrometer from 1.8.5 to 1.9.0 (#7706)

Geode endeavors to update to the latest version of 3rd-party
dependencies on develop wherever possible.

This bump will also help Spring and JDK17 efforts.

5 weeks agoupdate CODEOWNERS: restore min two owners per area and fix other warnings (#7714)
Owen Nichols [Thu, 19 May 2022 22:05:06 +0000 (15:05 -0700)] 
update CODEOWNERS: restore min two owners per area and fix other warnings (#7714)

5 weeks agoGEODE-10310: Add disable reatempt on CacheClose (#7690)
Mario Ivanac [Thu, 19 May 2022 20:22:07 +0000 (22:22 +0200)] 
GEODE-10310: Add disable reatempt on CacheClose (#7690)

* GEODE-10310: Add disable reatempt on CacheClose

5 weeks agoGEODE-10319: Clear meters when closing the meter registry (#7705)
Dale Emery [Thu, 19 May 2022 17:08:09 +0000 (10:08 -0700)] 
GEODE-10319: Clear meters when closing the meter registry (#7705)

* GEODE-10319: Clear meters when closing the meter registry

* Close first, allowing registry to close meters

5 weeks agoRevert "GEODE-10294: Compare invalid token during putIfAbsent retry. (#7679)" (#7704)
Nabarun Nag [Thu, 19 May 2022 16:11:47 +0000 (09:11 -0700)] 
Revert "GEODE-10294: Compare invalid token during putIfAbsent retry. (#7679)" (#7704)

This reverts commit 4f4af2a303142729708a951cc8a93f562c3de8bc.

6 weeks agoGEODE-10315: remove unneeded add-opens (#7699)
Darrel Schneider [Wed, 18 May 2022 22:20:44 +0000 (15:20 -0700)] 
GEODE-10315: remove unneeded add-opens (#7699)

6 weeks agoGEODE-10115: fix javadoc (#7698)
Jinmei Liao [Wed, 18 May 2022 19:38:09 +0000 (12:38 -0700)] 
GEODE-10115: fix javadoc (#7698)

6 weeks agoGEODE-10290: GII requester should remove departed members (#7670)
Xiaojian Zhou [Wed, 18 May 2022 18:55:15 +0000 (11:55 -0700)] 
GEODE-10290: GII requester should remove departed members (#7670)

6 weeks agoGEODE-10313: User Guide: Add javadocs template variable (#7696)
Dave Barnes [Tue, 17 May 2022 13:39:13 +0000 (06:39 -0700)] 
GEODE-10313: User Guide: Add javadocs template variable (#7696)

6 weeks agoGEODE-10286: handle CancelException in PersistenceAdvisor.close (#7677)
Jinmei Liao [Mon, 16 May 2022 22:58:28 +0000 (15:58 -0700)] 
GEODE-10286: handle CancelException in PersistenceAdvisor.close (#7677)

6 weeks agoGEODE-10257: Upgrade tests can upgrade Java (#7686)
Dale Emery [Mon, 16 May 2022 22:22:52 +0000 (15:22 -0700)] 
GEODE-10257: Upgrade tests can upgrade Java (#7686)

Currently, upgrade tests upgrade from an old version of Geode to the
current version, both running on the test JVM's version of Java.

This commit enhances most upgrade tests so that they also upgrade from
an old Java version to a newer one, both running the current version of

The new `VmConfiguration` class represents a configuration for a Geode
JVM, specifying both the Java version and the Geode version.

The new `VmConfigurations` class offers two factory methods to produce
lists of candidate configurations:
- `VmConfigurations.upgrades()` produces a list of "upgrade"
  configurations useful for most upgrade tests. Each upgrade
  configuration specifies either and old version of Geode or an old
  version of Java, but not both.
- `VmConfigurations.all()` produces a list of upgrades plus a
  configuration representing the current version of Geode and the test
  JVM's version of Java.

`VmConfigurations` also includes factory methods to create predicates to
filter configurations.

6 weeks agoGEODE-10309: Enable parallel tests for windows-gfsh-distributed-test (#7689)
Robert Houghton [Mon, 16 May 2022 17:47:45 +0000 (10:47 -0700)] 
GEODE-10309: Enable parallel tests for windows-gfsh-distributed-test (#7689)

Using the test-isolation plugin for parallelism, instead of Docker,
enables parallel testing on Windows for some jobs.

6 weeks agoGEODE-10294: Compare invalid token during putIfAbsent retry. (#7679)
Eric Shu [Fri, 13 May 2022 23:21:47 +0000 (16:21 -0700)] 
GEODE-10294: Compare invalid token during putIfAbsent retry. (#7679)

 * During putIfAbsent retry, comparing invalid token value when
   putIfAbsent of a null value instead.

6 weeks agoGEODE-10306 Fixing an order issue that can lead to problems when stopping (#7682)
mhansonp [Fri, 13 May 2022 21:31:31 +0000 (14:31 -0700)] 
GEODE-10306 Fixing an order issue that can lead to problems when stopping (#7682)

When stopping the cache server, the acceptor is last which should not be the case. It should be first so new data stops coming in.

6 weeks agoGEODE-10302: Increase call stack timeout for upgrade tests (#7691)
Dale Emery [Fri, 13 May 2022 21:31:17 +0000 (14:31 -0700)] 
GEODE-10302: Increase call stack timeout for upgrade tests (#7691)

To be 3h45m, 15 minutes shy of the newly increased task timeout.

6 weeks agoGEODE-10307: Doc changes needed for enable security-manager property (#7687)
Dave Barnes [Fri, 13 May 2022 20:20:56 +0000 (13:20 -0700)] 
GEODE-10307: Doc changes needed for enable security-manager property (#7687)

* GEODE-10307: Doc changes needed for enable security-manager property

6 weeks agoGEODE-10303: Increase memory for windows-gfsh-distributed-test (#7685)
Robert Houghton [Thu, 12 May 2022 23:20:12 +0000 (16:20 -0700)] 
GEODE-10303: Increase memory for windows-gfsh-distributed-test (#7685)

Authored-by: Robert Houghton <>
6 weeks agoGEODE-10302: Increase upgrade test timeout to 4h (#7683)
Dale Emery [Thu, 12 May 2022 23:09:58 +0000 (16:09 -0700)] 
GEODE-10302: Increase upgrade test timeout to 4h (#7683)

7 weeks agoGEODE-10299: update examples for creating dynamic regions (#7681)
Max Hufnagel [Wed, 11 May 2022 23:17:52 +0000 (16:17 -0700)] 
GEODE-10299: update examples for creating dynamic regions (#7681)

7 weeks agoGEODE-10271: ConnectionProxyJUnitTest cleanup (#7652)
Jinmei Liao [Wed, 11 May 2022 17:48:23 +0000 (10:48 -0700)] 
GEODE-10271: ConnectionProxyJUnitTest cleanup (#7652)

7 weeks agoGEODE-10283: Remove problematic buildSrc project, replacing with includeBuild project...
Robert Houghton [Wed, 11 May 2022 17:14:43 +0000 (10:14 -0700)] 
GEODE-10283: Remove problematic buildSrc project, replacing with includeBuild projects (#7600)

* Extract DependencyConstraints plugin from buildSrc
* Extract japicmp plugin customization from buildSrc
* Test isolation from buildSrc
* Disable jacoco on all test facets by default

Co-authored-by: Your Name <>
7 weeks agoGEODE-10288: Fix property assignment syntax (#7678)
Dale Emery [Wed, 11 May 2022 15:48:30 +0000 (08:48 -0700)] 
GEODE-10288: Fix property assignment syntax (#7678)

7 weeks agoGEODE-10289: Argument file for JDK 17 (#7673)
Dale Emery [Tue, 10 May 2022 23:47:20 +0000 (16:47 -0700)] 
GEODE-10289: Argument file for JDK 17 (#7673)

* GEODE-10289: Argument file for JDK 17

The argument file was generated on Linux using OpenJDK 17.0.2

* Add arg file to assembly_content.txt

7 weeks agoGEODE-10293: Modify .asf.yaml to require CodeQL, drop LGTM (#7674)
Robert Houghton [Tue, 10 May 2022 21:26:51 +0000 (14:26 -0700)] 
GEODE-10293: Modify .asf.yaml to require CodeQL, drop LGTM (#7674)

GEODE-10293: Modify .asf.yaml to require CodeQL, drop LGTM

7 weeks agoGEODE-10288: Define JDK 8, 11, 17 homes for upgrade tests (#7675)
Dale Emery [Tue, 10 May 2022 19:56:02 +0000 (12:56 -0700)] 
GEODE-10288: Define JDK 8, 11, 17 homes for upgrade tests (#7675)

7 weeks agoGEODE-10282: Migrate from springfox to springdoc (#7659)
Patrick Johnson [Tue, 10 May 2022 18:25:20 +0000 (11:25 -0700)] 
GEODE-10282: Migrate from springfox to springdoc (#7659)

springfox swagger is no longer maintained, so springdoc is the best choice going forward.

7 weeks agoEnable GitHub CodeQL workflow
Robert Houghton [Tue, 10 May 2022 14:33:04 +0000 (07:33 -0700)] 
Enable GitHub CodeQL workflow

7 weeks agoGEODE-10284: Add partition-listener option to gfsh create region command (#7666)
Jens Deppe [Tue, 10 May 2022 04:09:38 +0000 (21:09 -0700)] 
GEODE-10284: Add partition-listener option to gfsh create region command (#7666)

* Update documentation

Co-authored-by: Dave Barnes <>