geode.git
6 days agoGEODE-10410: Fix bucket lost during rebalance (#7857) develop
WeijieEST [Tue, 20 Sep 2022 17:37:57 +0000 (01:37 +0800)] 
GEODE-10410: Fix bucket lost during rebalance (#7857)

* GEODE-10410: Fix bucket lost during rebalance

* improve test case name

* improve test case comments and test case names

6 days agoGEODE-10395 remove locks from List if dlock.acquireTryLocks return false (#7846)
Mario Kevo [Tue, 20 Sep 2022 17:04:08 +0000 (19:04 +0200)] 
GEODE-10395 remove locks from List if dlock.acquireTryLocks return false (#7846)

7 days agoGEODE-10331: schedule delayed CloseEndpoint (#7849)
Mario Ivanac [Mon, 19 Sep 2022 06:17:42 +0000 (08:17 +0200)] 
GEODE-10331: schedule delayed CloseEndpoint (#7849)

* GEODE-10331: schedule delayed CloseEndpoint

* GEODE-10331: added TCs

10 days agoGEODE-10421: Improve start gw sender with clean-queue (#7856)
Mario Ivanac [Fri, 16 Sep 2022 08:40:20 +0000 (10:40 +0200)] 
GEODE-10421: Improve start gw sender with clean-queue (#7856)

* GEODE-10421: added check gw status

* GEODE-10421: added TC

* GEODE-10421: add document impacts

* GEODE-10421: update after comments

12 days agoGEODE-10415: bump dependencies due to vulnerability scan (#7855)
Mario Kevo [Wed, 14 Sep 2022 18:49:46 +0000 (20:49 +0200)] 
GEODE-10415: bump dependencies due to vulnerability scan (#7855)

12 days agoGEODE-10419: Enhancment of backup disk-store command (#7851)
Mario Ivanac [Wed, 14 Sep 2022 14:39:18 +0000 (16:39 +0200)] 
GEODE-10419: Enhancment of backup disk-store command (#7851)

* GEODE-10419: initial commit

* GEODE-10419: documentation impacts

* GEODE-10419: added DT

12 days agoGEODE-10422: add Note for parallel recovery disk store (#7858)
Mario Kevo [Wed, 14 Sep 2022 13:45:12 +0000 (15:45 +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

2 weeks agoGEODE-10420: Finish distribute() work if interrupted (#7854)
Alberto Gomez [Mon, 12 Sep 2022 13:12:14 +0000 (15:12 +0200)] 
GEODE-10420: Finish distribute() work if interrupted (#7854)

It is possible that an event of which a gateway sender
is to be notified is lost if during the process the thread
is interrupted.

The reason is that the distribute() method
in the AbstractGatewaySender when it catches the
InterruptedException at some point, just returns, but
does not put the event in the queue and neither
drops it.

The fix consists of handling the event correctly
(put it in the queue or drop it) if the InterruptedException
is caught but when the method returns set again
the interrupt flag so that the caller is aware.

2 weeks agoGEODE-10409: Fix rebalance load model missing collocated regions at s… (#7839)
WeijieEST [Mon, 12 Sep 2022 08:06:10 +0000 (16:06 +0800)] 
GEODE-10409: Fix rebalance load model missing collocated regions at s… (#7839)

* GEODE-10409: Fix rebalance load model missing collocated regions at server startup

Assume region A collocated with A1 and A2, and a is the leader region, when rebalance at startup,
rebalance will happened after the 3 region collocation completed, generally this happened in region A2.
And when calculate rebalance load model from view of region A2, only leader region A and A2 itself will
be added to the model, this commit fix the issue and make A1 also be added to the model.

* add test cases to test rebalance model and remove the static mock

* change test case to avoid changing existing methods for testing

* improve test case

2 weeks agoGEODE-10335_1: add compareAndSet (#7850)
Mario Ivanac [Fri, 9 Sep 2022 13:05:39 +0000 (15:05 +0200)] 
GEODE-10335_1: add compareAndSet (#7850)

2 weeks agoGEODE-10336: set lastInstance to null (#7843)
Mario Ivanac [Fri, 9 Sep 2022 06:05:51 +0000 (08:05 +0200)] 
GEODE-10336: set lastInstance to null (#7843)

* GEODE-10336: set lastInstance to null

* GEODE-10336: added test

2 weeks agoGEODE-10056: Improve gateway-receiver load balance (#7378)
Jakov Varenina [Thu, 8 Sep 2022 08:59:42 +0000 (10:59 +0200)] 
GEODE-10056: Improve gateway-receiver load balance (#7378)

* GEODE-10056: Improve gateway-receiver load balance

The problem is that servers send incorrect gateway-receiver connection
load to locators within CacheServerLoadMessage. Additionally, locators
do not refresh gateway-receivers load with the load received in
CacheServerLoadMessage. The only time locator increments
gateway-receiver load is after it receives
ClientConnectionRequest{group=__recv_group...} and returns selected
server in ClientConnectionResponse message. This is done only by
coordinator, so that means that other locators will have load with
initial values, since it is never updated.

The solution is to correctly track gateway-receiver acceptor
connection count and then based on it correctly calculate the load
when sending CacheServerLoadMessage. Additionally each locator will
read the load received from CacheServerLoadMessage and update load
for gateway-receiver location id in group __recv__group accordingly.

* Updates after the review

* Fix for the flaky test cases

* Updates after review

* Empty commit to trigger test

* Updates after review

* Fix failed distributed test

The test case testMultiUser failed because Wan service is available
in geode-core distributed tests, and therefore test now throws:

org.apache.geode.internal.cache.wan.GatewaySenderConfigurationException
: Locators must be configured before starting gateway-sender.

instead of:

java.lang.IllegalStateException: WAN service is not available.

* Synchronize handling of receiver load

This commit synchronizes the getting and sending of gateway-receiver
load (CacheServerLoadMessage) on all servers.

2 weeks agoGEODE-10335: TXManagerImpl.close resets currentInstance (#7844)
Mario Ivanac [Thu, 8 Sep 2022 06:10:05 +0000 (08:10 +0200)] 
GEODE-10335: TXManagerImpl.close resets currentInstance (#7844)

* GEODE-10335: TXManagerImpl.close resets currentInstance

* GEODE-10335: added test

2 weeks agoGEODE-10337: add use of SocketCreatorFactory.close() (#7842)
Mario Ivanac [Wed, 7 Sep 2022 13:16:38 +0000 (15:16 +0200)] 
GEODE-10337: add use of SocketCreatorFactory.close() (#7842)

* GEODE-10337: add use of SocketCreatorFactory.close()

* GEODE-10337: added UT

2 weeks agoGEODE-10417: Fix NullPointerException in WAN replication (#7845)
Alberto Gomez [Wed, 7 Sep 2022 11:32:43 +0000 (13:32 +0200)] 
GEODE-10417: Fix NullPointerException in WAN replication (#7845)

* GEODE-10417: Fix NullPointerException in WAN replication

When the WAN group-transa$ction-events feature is enabled in
a parallel gateway sender, it is possible to get a NullPointerException
when retrieving events from the queue to complete a transaction if
the event in the queue is null.

If this situation is reached then the gateway sender dispatcher will
not dispatch queue events anymore and therefore the WAN replication
will not progress.

This happens because the predicates that check if elements
in the queue contain a transactionId are not protected
against the event being null.

A null check has been added before the predicates are invoked
so that in case of a null event, the predicate is not invoked
and the event is skipped from the checking.

* GEODE-10417: Change assertEquals to assertThat

2 weeks agoGEODE-10338: Fix LogWriterAppender shutdown (#7725)
Jakov Varenina [Wed, 7 Sep 2022 07:05:20 +0000 (09:05 +0200)] 
GEODE-10338: Fix LogWriterAppender shutdown (#7725)

* GEODE-10338: Fix LogWriterAppender shutdown

When a stop session is called on the LogWriterAppender, it closes the
ManagerLogWriter's files. Still, it does not release
ManagerLogWriter's reference, so the LogWriterAppender instance is
kept around after disconnect. This situation ends up keeping the
InternalDistributedSystem alive.

The fix is to clear the LogWriterAppender's reference to the
ManagerLogWriter when the appender session is stopped.

* Update after review

* Fix integration test

* Add nullptr check in stopSession()

2 weeks agoGEODE-10405: added ignore exceprion for GW queue region (#7831)
Mario Ivanac [Tue, 6 Sep 2022 09:26:15 +0000 (11:26 +0200)] 
GEODE-10405: added ignore exceprion for GW queue region (#7831)

* GEODE-10405: added ignore exceprion for GW queue region

* GEODE-10405: added test

4 weeks agoGEODE-10412: Clear expired tombstones during region destroy (#7838)
Jakov Varenina [Mon, 29 Aug 2022 15:08:26 +0000 (17:08 +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

4 weeks agoGEODE-10408: in case corrupted oplogs, use fullGII (#7834)
Mario Ivanac [Sat, 27 Aug 2022 08:37:15 +0000 (10:37 +0200)] 
GEODE-10408: in case corrupted oplogs, use fullGII (#7834)

4 weeks agoGEODE-10411: fix XSS vulnerability in pulse (#7836)
Joris Melchior [Fri, 26 Aug 2022 17:26:22 +0000 (13:26 -0400)] 
GEODE-10411: fix XSS vulnerability in pulse (#7836)

* GEODE-10411: fix XSS vulnerability in pulse

- html encode data coming from Geode queries
- add cookie parameters to increase browsing security

* Fix spotless check errors

4 weeks agoGEODE-10407: check if class allready loaded (#7832)
Mario Ivanac [Wed, 24 Aug 2022 08:14:18 +0000 (10:14 +0200)] 
GEODE-10407: check if class allready loaded (#7832)

* GEODE-10407: check if class allready loaded

5 weeks agoGEODE-10403: Fix distributed deadlock with stop gw sender (#7830)
Alberto Gomez [Thu, 18 Aug 2022 07:42:27 +0000 (09:42 +0200)] 
GEODE-10403: Fix distributed deadlock with stop gw sender (#7830)

There is a distributed deadlock that can appear
when stopping the gateway sender if a race condition
happens in which the stop gateway sender command gets blocked
indefinitely trying to get the size of the queue from remote peers
(ParallelGatewaySenderQueue.size() call) and
also one call to store one event in the queue tries to get
the lifecycle lock (acquired by the gateway sender command).

These two calls could get into a deadlock under heavy load and
make the system unresponsive for any traffic request (get, put, ...).

In order to avoid it, in the storage of the event in the gateway
sender queue (AbstractGatewaySender.distribute() call),
instead to trying to get the lifecycle lock without
any timeout, a try with a timeout is added. If the
try returns false it is checked if the gateway sender is running. If
it is not running, the event is dropped and there is no need to get the lock.
Otherwise, the lifecycle lock acquire is retried until it succeeds or
the gateway sender is stopped.

6 weeks agoUpdating the expiration for my gpg key 1.2
Dan Smith [Mon, 15 Aug 2022 15:58:49 +0000 (08:58 -0700)] 
Updating the expiration for my gpg key

I updated the expiration for this key a few years ago, but did not commit the
change to our KEYS file.

8 weeks agoGEODE-9632: fix for queries with multy operations and indexes (#7824)
Mario Ivanac [Fri, 29 Jul 2022 07:43:11 +0000 (09:43 +0200)] 
GEODE-9632: fix for queries with multy operations and indexes (#7824)

8 weeks agoGEODE-9101: fix VisibleNode attribute (#7829)
Mario Kevo [Thu, 28 Jul 2022 09:55:03 +0000 (11:55 +0200)] 
GEODE-9101: fix VisibleNode attribute (#7829)

2 months agoGEODE-10401: Configurable .drf recovery HashMap overflow threshold (#7828)
Jakov Varenina [Wed, 27 Jul 2022 13:08:53 +0000 (15:08 +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.

2 months agoGEODE-10398: fix updating stats after restart (#7822)
Mario Kevo [Fri, 22 Jul 2022 12:39:59 +0000 (14:39 +0200)] 
GEODE-10398: fix updating stats after restart (#7822)

* GEODE-10398: fix updating stats after restart

* empty commit to re-launch CI

2 months agoGEODE-10344: Send alert when thread stuck for long (#7747)
Alberto Gomez [Fri, 15 Jul 2022 06:29:01 +0000 (08:29 +0200)] 
GEODE-10344: Send alert when thread stuck for long (#7747)

This is the implementation of the feature
described in RFC:
https://cwiki.apache.org/confluence/display/GEODE/Management+of+threads+stuck+for+a+long+time+in+Geode

2 months agoGEODE-10323: Add small changes after review (#7819)
Alberto Gomez [Fri, 15 Jul 2022 06:28:09 +0000 (08:28 +0200)] 
GEODE-10323: Add small changes after review (#7819)

2 months agoGEODE-10055: fix AbstractLauncher to print info and debug with stdout (#7368)
Mario Kevo [Tue, 12 Jul 2022 07:24:13 +0000 (09:24 +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

2 months agoGEODE-10281: Fix WAN data inconsistency (#7665)
Jakov Varenina [Thu, 7 Jul 2022 12:15:38 +0000 (14:15 +0200)] 
GEODE-10281: Fix WAN data inconsistency (#7665)

2 months agoGEODE-10340: Add new DiskStoreMXBean JMX metrics (#7726)
Alberto Gomez [Wed, 6 Jul 2022 13:54:47 +0000 (15:54 +0200)] 
GEODE-10340: Add new DiskStoreMXBean JMX metrics (#7726)

* GEODE-10340: Add new DiskStoreMXBean JMX metrics

The following DiskStore stats are now published via JMX:
recoveredEntryCreates, recoveredEntryUpdates and recoveredEntryDestroys.

* GEODE-10340: Added default implementation for new methods

2 months agoGEODE-10392: When gw sender started with cleanqueue remove EvictionController from...
Mario Ivanac [Tue, 5 Jul 2022 11:24:48 +0000 (13:24 +0200)] 
GEODE-10392: When gw sender started with cleanqueue remove EvictionController from diskstore (#7817)

2 months agoGEODE-9484: Improve sending message to multy destinations (#7664)
Mario Ivanac [Fri, 1 Jul 2022 15:46:37 +0000 (17:46 +0200)] 
GEODE-9484: Improve sending message to multy destinations (#7664)

* GEODE-9484: New solution to first try only one attempt to create all connections

* GEODE-9484: added fix for NPE

2 months agoGEODE-9997: added ParallelQueueSetPossibleDuplicateMessage (#7323)
Mario Ivanac [Wed, 29 Jun 2022 20:38:28 +0000 (22:38 +0200)] 
GEODE-9997: added ParallelQueueSetPossibleDuplicateMessage (#7323)

* GEODE-9997: added ParallelQueueSetPossibleDuplicateMessage to signal duplicate events on secondary buckets

2 months agoDecommission CODEOWNERS (#7820)
Owen Nichols [Wed, 29 Jun 2022 19:03:14 +0000 (12:03 -0700)] 
Decommission CODEOWNERS (#7820)

2 months agoGEODE-10020: For Ping task avoid registering new destination endpoint (#7749)
Mario Ivanac [Tue, 28 Jun 2022 20:58:00 +0000 (22:58 +0200)] 
GEODE-10020: For Ping task avoid registering new destination endpoint (#7749)

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

3 months agoGEODE-10385: User Guide - Remove bad G1GC tuning advice (#7815)
Dave Barnes [Thu, 23 Jun 2022 16:59:03 +0000 (09:59 -0700)] 
GEODE-10385: User Guide - Remove bad G1GC tuning advice (#7815)

3 months agoGEODE-10323: Remove schedule threads in MemoryAllocatorImpl constructor (#7715)
Alberto Gomez [Wed, 22 Jun 2022 16:01:10 +0000 (18:01 +0200)] 
GEODE-10323: Remove schedule threads in MemoryAllocatorImpl constructor (#7715)

* GEODE-10323: Remove schedule threads in MemoryAllocatorImpl

The scheduled executor used in MemoryAllocatorImpl
was scheduled in the constructor. This provoked
intermittent failures in OffHeapStorageJUnitTest testCreateOffHeapStorage
test cases due to a race condition.

The scheduling has been moved to a new method (start())
in the MemoryAllocatorImpl class that is in turn
invoked in the create() static method.

* GEODE-10323: Extract update stats code to new class

3 months agoGEODE-10387: bump dependencies (#7805)
Owen Nichols [Fri, 17 Jun 2022 22:50:09 +0000 (15:50 -0700)] 
GEODE-10387: bump dependencies (#7805)

* GEODE-10387: Bump 3rd-party dependency versions

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 cargo-core-uberjar from 1.9.10 to 1.9.12
* Bump classgraph from 4.8.146 to 4.8.147
* Bump jackson from 2.13.2 to 2.13.3
* Bump junit-pioneer from 1.6.2 to 1.7.1
* Bump micrometer-core from 1.9.0 to 1.9.1
* Bump mockito-core from 4.4.0 to 4.6.1
* Bump spring from 5.3.20 to 5.3.21
* Bump spring-hateoas from 1.4.2 to 1.5.0
* Bump spring-ldap-core from 2.3.7.RELEASE to 2.4.0
* Bump swagger-annotations from 2.2.0 to 2.2.1

3 months agoFixes for cleaning GCP resources from pipelines (#7759)
Robert Houghton [Thu, 16 Jun 2022 22:49:24 +0000 (15:49 -0700)] 
Fixes for cleaning GCP resources from pipelines (#7759)

* Fixes for cleaning GCP resources from pipelines

* Use meta.properties to feed pipeline cleanup script

* Add comments on use case for this script.

3 months agoGEODE-10388: create better output filter for srcDist task (#7806)
Robert Houghton [Thu, 16 Jun 2022 20:33:47 +0000 (13:33 -0700)] 
GEODE-10388: create better output filter for srcDist task (#7806)

Replace the brittle exclude list for `build` and `out` directories with
a closure containing comparison logic for file-type and name. Makes sure
that regular files named `out` are still archived.

3 months agoGEODE-10378: Change PRs to default to JDK11 only (#7797)
Robert Houghton [Thu, 16 Jun 2022 18:53:36 +0000 (11:53 -0700)] 
GEODE-10378: Change PRs to default to JDK11 only (#7797)

Other JDK will be by request (label) only.

Authored-by: Robert Houghton <rhoughton@pivotal.io>
3 months agoGEODE-10384: Add stack trace to logging (#7804)
Jianxia Chen [Wed, 15 Jun 2022 23:15:44 +0000 (16:15 -0700)] 
GEODE-10384: Add stack trace to logging (#7804)

3 months ago(no JIRA ticket) user guide Security section: Typo & format fixes (#7802)
Dave Barnes [Wed, 15 Jun 2022 21:07:00 +0000 (14:07 -0700)] 
(no JIRA ticket) user guide Security section: Typo & format fixes (#7802)

3 months agoGEODE-10380: use waitingThreadPool to notify dispatcher at re_auth (#7801)
Jinmei Liao [Wed, 15 Jun 2022 17:56:35 +0000 (10:56 -0700)] 
GEODE-10380: use waitingThreadPool to notify dispatcher at re_auth (#7801)

3 months agoGEODE-10326: Convert MessageType to enum. (#7688)
Jacob Barrett [Wed, 15 Jun 2022 01:36:13 +0000 (18:36 -0700)] 
GEODE-10326: Convert MessageType to enum. (#7688)

* Migrate unit tests to JUnit 5.
* Add missing unit tests.

3 months agoGEODE-10261: VMProvider.invokeAsync uses appropriate parameterization. (#7631)
Patrick Johnson [Wed, 15 Jun 2022 00:44:26 +0000 (17:44 -0700)] 
GEODE-10261: VMProvider.invokeAsync uses appropriate parameterization. (#7631)

* Cleanup use of AsyncInvocation.
* Add generic parameters to AsyncInvocation variables where they were missing.
* Cleaned up by changing single element arrays to variables.

3 months agoGEODE-10369 part 2 Fix hardcoded gcp project reference and adjust windows unit test...
Sean Goller [Mon, 13 Jun 2022 18:56:38 +0000 (11:56 -0700)] 
GEODE-10369 part 2 Fix hardcoded gcp project reference and adjust windows unit test cpu/ram usage. (#7798)

* Fix hardcoded reference to gcp project.

* Fix windows unit test ram and cpu settings.

3 months agoGEODE-10267: fix creating gw sender with non-existent disk store (#7643)
Mario Kevo [Mon, 13 Jun 2022 07:53:44 +0000 (09:53 +0200)] 
GEODE-10267: fix creating gw sender with non-existent disk store (#7643)

* GEODE-10267: fix creating gw sender with non-existent disk store

3 months agoGEODE-10369: Calculate heavy lifter costs. (#7796)
Sean Goller [Sat, 11 Jun 2022 06:49:53 +0000 (23:49 -0700)] 
GEODE-10369: Calculate heavy lifter costs. (#7796)

* Change to e2 instances.

* Adjust machine type based on cpu and ram requirements.

* Test half cpu on performance.

* remove half-cpu test. Add calculations for standard machine types.

* fix machine type

* Indicate machine type to be created.

* Determine CPU Platform.

* Abandon n2 types because they don't scale high enough cpuwise.

* Remove min cpu platform.

* Utilize highcpu instances for cpu==ram jobs.

* Make build job cpu==ram.

* Change windows unit tests cpu/ram from 10 to 8.

* Calculate total cost in delete_instance.sh

* Add coreutils to alpine-tools so we can get gnu date.

* Dump the json file with cost data.

* Add highcpu case and identify unknown case.

* fix MACHINE_FAMILY references.

* Fix jq syntax. Copy cost-data.json to infra bucket.

* Change cpuCost and ramCost to cpuRate and ramRate

* Divide ram by 1024 because it's megabytes.

* Use activity audit log instead of syslog so we can audit windows.

* Revert job cpu changes.

3 months agoGEODE-10375: update supported api docs link (#7794)
Jinmei Liao [Fri, 10 Jun 2022 18:52:15 +0000 (11:52 -0700)] 
GEODE-10375: update supported api docs link (#7794)

3 months agoGEODE-6504: Instant class used. (#7779)
Nabarun Nag [Fri, 10 Jun 2022 18:16:51 +0000 (11:16 -0700)] 
GEODE-6504: Instant class used. (#7779)

* Using instant class instead of nanos.
* Nanos is not updated that often hence not proper resolution.

3 months agoGEODE-10329: Handle RejectedExecutionException (#7721)
Donal Evans [Fri, 10 Jun 2022 16:27:15 +0000 (09:27 -0700)] 
GEODE-10329: Handle RejectedExecutionException (#7721)

Do not throw RejectedExecutionException if the GMSHealthMonitor is
stopping

Authored-by: Donal Evans <doevans@vmware.com>
3 months agoGEODE-6489: fix a flaky test (#7777)
Jinmei Liao [Thu, 9 Jun 2022 18:10:54 +0000 (11:10 -0700)] 
GEODE-6489: fix a flaky test (#7777)

* fix GemFireDeadlockDetectorDUnitTest.testDistributedDeadlockWithDLock

3 months agoGEODE-10351: Wait till the cache is completely closed before re-creating (#7760)
Jinmei Liao [Thu, 9 Jun 2022 17:13:03 +0000 (10:13 -0700)] 
GEODE-10351: Wait till the cache is completely closed before re-creating (#7760)

3 months agoGEODE-7875: fix create index gfsh command on partitioned region (#7629)
Mario Kevo [Thu, 9 Jun 2022 09:14:13 +0000 (11:14 +0200)] 
GEODE-7875:  fix create index gfsh command on partitioned region (#7629)

* GEODE-7875:  fix create index gfsh command on partitioned region

3 months agoRevert "GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to override CompiledVa...
Nabarun Nag [Thu, 9 Jun 2022 02:54:40 +0000 (19:54 -0700)] 
Revert "GEODE-9632: Allow INDEX_THRESHOLD_SIZE System property to override CompiledValue.RESULT_LIMIT (#7010)" (#7787)

This reverts commit 67359dcd

3 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 (./preview-user-guide.sh)
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 2.5.9.229.

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 months 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 months 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 months 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 months 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 <jliao@pivotal.io>
- include libraries so that end-users won't have to add them to the java
  path
- ensure proper serialization in gfsh and pulse

3 months 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)

PROBLEM

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

SOLUTION

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.

DETAILS

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

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

NOTES

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 months 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 months 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 months 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 months 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 months 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
ConflationDistributedTest
* All DUnit tests affected by ConflationDUnitTestHelper refactoring was
renamed to DistributedTest

3 months 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 months 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 months 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 months 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.

3 months 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)

PROBLEM

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

SOLUTION

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.

DETAILS

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

Changes for resubmit:

* log error message if unable to delete folder

NOTES

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.

3 months 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.

3 months 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

3 months 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)

3 months 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.

3 months 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)

3 months 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.

3 months 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.

3 months 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.

3 months 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 months 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 months 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 months 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 months 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 months 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)

4 months 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)

PROBLEM

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

SOLUTION

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.

DETAILS

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

NOTES

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.

4 months 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