geode.git
4 months agoGEODE-10093 - Fixed attr issue in Delta Session feature/GEODE-10093
Ben Ross [Tue, 1 Mar 2022 00:07:24 +0000 (16:07 -0800)] 
GEODE-10093 - Fixed attr issue in Delta Session

4 months agoGEODE-10049: Check full Redis error message (#7362)
Donal Evans [Mon, 28 Feb 2022 21:57:51 +0000 (13:57 -0800)] 
GEODE-10049: Check full Redis error message (#7362)

 - Replace all uses of hasMessageContaining() with hasMessage() in Redis
 tests that assert on the error message returned, with the exception of
 CLIENT, CLUSTER and COMMAND, which return a more complex error message
 - Return correct error messages for MSET and MSETNX with even
 number of arguments
 - Return correct error message for BITOP NOT when called with too many
 arguments
 - Simplify error message generation in UnknownExecutor
 - Remove tests for behaviour with no longer existent internal commands
 - For error responses that always use the same message (OOM, CROSSSLOT,
 BUSYKEY, WRONGPASS, WRONGTYPE, NOAUTH) do not take a String argument in
 RedisResponse
 - Remove prefix-specific error generating methods from Coder in favour
 of calling generic getErrorResponse()
 - Remove isInstanceOf assertions on exception type returned by Jedis,
 as it's something we have no control over
 - Replace hard-coded error messages with references to constants
 - Add missing error message assertions to a few tests
 - Format error assertions to be single-line where possible
 - Move error constants from SetEXExecutor to RedisConstants
 - Return correct error for non-integer expiration argument in SETEX and
PSETEX
 - Add tests for non-integer expiration argument for SETEX and PSETEX
 - Add tests for non-integer expiration argument for SET with EX and PX
options

Authored-by: Donal Evans <doevans@vmware.com>
4 months agoGEODE-10084: CliFunction should handle all throwable (#7395)
Jinmei Liao [Mon, 28 Feb 2022 18:09:18 +0000 (10:09 -0800)] 
GEODE-10084: CliFunction should handle all throwable (#7395)

* Update ImportDataFunction to extend CliFunction

4 months agoGEODE-10086: Removed StringBuilder variables (#7399)
Nabarun Nag [Mon, 28 Feb 2022 18:05:39 +0000 (10:05 -0800)] 
GEODE-10086: Removed StringBuilder variables (#7399)

* Removed StringBuilder
* Using local string

4 months agoGEODE-9949: Implement Radish LPUSHX command (#7397)
Eric Zoerner [Mon, 28 Feb 2022 17:18:55 +0000 (09:18 -0800)] 
GEODE-9949: Implement Radish LPUSHX command (#7397)

4 months agoInitial commit
Owen Nichols [Mon, 28 Feb 2022 10:13:37 +0000 (02:13 -0800)] 
Initial commit

4 months agoGEODE-10083: Fix RedisProxy to correctly process MOVED response (#7394)
Jens Deppe [Fri, 25 Feb 2022 21:41:18 +0000 (13:41 -0800)] 
GEODE-10083: Fix RedisProxy to correctly process MOVED response (#7394)

- When a MOVED response is received, the already queued processor needs
  to be discarded otherwise subsequent requests may possibly be
  corrupted.

4 months agoGEODE-10063: Correctly set primary queue connection. (#7382)
Eric Shu [Fri, 25 Feb 2022 17:57:18 +0000 (09:57 -0800)] 
GEODE-10063: Correctly set primary queue connection.  (#7382)

      *  When adding QueueConnection to connectionList, also checks if
         the connection has been destroyed by another thread to prevent
         a bad connection is being added to the list.
      *  Schedule RedundancySatisfierTask after remove connection so
         that bad connection can be detected.
      *  During recoveryPrimary in RedundancySatisfierTask also
         check if primary connection is destroyed. If so, connection
         from backups will be promoted to primary.

4 months agoGEODE-9947: Add Radish LINDEX command (#7380)
Kris10 [Wed, 23 Feb 2022 01:59:27 +0000 (17:59 -0800)] 
GEODE-9947: Add Radish LINDEX command (#7380)

This implements a version of the Redis LINDEX command, which is used for list data types. Associated tests were also added.

It returns the element at the index for a list stored at the specified key. The index is zero based, which starts at the head of the list. Negative indexes means it will start at the tail of the list. For example, -1 would be the last element in the list.

4 months agoGEODE-10072: Restore japicmp report (#7383)
Owen Nichols [Sun, 20 Feb 2022 18:29:42 +0000 (10:29 -0800)] 
GEODE-10072: Restore japicmp report (#7383)

Before, this was always generated in geode-assembly.
Now on some branches it is in geode-server-all.
Solution: wildcard the top-level module name to always find it.

4 months agoGEODE-9998: Upgrade Jedis client from 3.6.3 to 4.1.1 (#7340)
Eric Zoerner [Thu, 17 Feb 2022 22:18:02 +0000 (14:18 -0800)] 
GEODE-9998: Upgrade Jedis client from 3.6.3 to 4.1.1 (#7340)

4 months agoGEODE-10054: remove EnsurePrimaryStaysPutDUnitTest (#7371)
Hale Bales [Thu, 17 Feb 2022 17:31:25 +0000 (09:31 -0800)] 
GEODE-10054: remove EnsurePrimaryStaysPutDUnitTest (#7371)

this test is no longer useful to us as the implementation has changed.

4 months agoGEODE-10008: Avoid possible EntryDestroyedException error (#7343)
Alberto Gomez [Thu, 17 Feb 2022 17:23:34 +0000 (18:23 +0100)] 
GEODE-10008: Avoid possible EntryDestroyedException error (#7343)

4 months agoGEODE-10000: Avoid gfsh stop gateway sender error when stopped a second time (#7327)
Alberto Gomez [Thu, 17 Feb 2022 17:23:15 +0000 (18:23 +0100)] 
GEODE-10000: Avoid gfsh stop gateway sender error when stopped a second time (#7327)

4 months agoGEODE-6588: Cleanup static analyzer warnings. (#7373)
Jacob Barrett [Thu, 17 Feb 2022 03:58:47 +0000 (19:58 -0800)] 
GEODE-6588: Cleanup static analyzer warnings. (#7373)

* Fixes logging bugs.

4 months agoGEODE-9708: Removed analyzer warnings from FunctionCommandsDistributedTestBase (...
Nabarun Nag [Thu, 17 Feb 2022 03:41:09 +0000 (19:41 -0800)] 
GEODE-9708: Removed analyzer warnings from FunctionCommandsDistributedTestBase (#6967)

4 months agoGEODE-9892: Create Infrastructure for Redis Lists (#7261)
Ray Ingles [Thu, 17 Feb 2022 03:37:08 +0000 (22:37 -0500)] 
GEODE-9892: Create Infrastructure for Redis Lists (#7261)

GEODE-9892: Add initial support for RedisLists - implements LPUSH, LPOP, LLEN

4 months agoGEODE-10052: Fix flakiness in OutOfMemoryDUnitTest (#7369)
Donal Evans [Thu, 17 Feb 2022 00:36:19 +0000 (16:36 -0800)] 
GEODE-10052: Fix flakiness in OutOfMemoryDUnitTest (#7369)

- Add larger values to get over critical memory threshold faster and
 make it more likely to stay there
 - Force GC before each attempt to add a large value to make it less
 likely that we'll drop back below critical threshold due to small
 objects being GCd while over critical threshold

4 months agoGEODE-9694: Removed deprecated elements from QueryCommandDistributedTestBase (#6959)
Nabarun Nag [Wed, 16 Feb 2022 22:25:51 +0000 (14:25 -0800)] 
GEODE-9694: Removed deprecated elements from QueryCommandDistributedTestBase (#6959)

* Removed deprecated elements
* Renamed from DUnit to DistributedTest

4 months agoGEODE-10034: Organize Geode For Redis Stats By Category (#7363)
Jens Deppe [Wed, 16 Feb 2022 18:51:15 +0000 (10:51 -0800)] 
GEODE-10034: Organize Geode For Redis Stats By Category (#7363)

- Geode for Redis statistics are broken up by category. For example
  stats will appear as `GeodeForRedisStats:STRING` or
  `GeodeForRedisStats:HASH`. Each type will then only contain stats
  relevant to the commands associated with that category.

4 months agoGEODE-10057: Correct geode-for-redis docs (#7370)
Donal Evans [Wed, 16 Feb 2022 18:43:02 +0000 (10:43 -0800)] 
GEODE-10057: Correct geode-for-redis docs (#7370)

- Swap usage of active and passive in descriptions of expiration to
 match their usage in open source Redis documentation

Authored-by: Donal Evans <doevans@vmware.com>
4 months agoGEODE-10047: Fix expiration interval log (#7359)
Donal Evans [Tue, 15 Feb 2022 23:34:27 +0000 (15:34 -0800)] 
GEODE-10047: Fix expiration interval log (#7359)

- Change naming of passive expiration to active expiration throughout
the geode-for-redis module so as to be consistent with Redis' language
- Replace hard-coded expiration interval of 1 second with a reference to
the configured expiration interval in log message in
PassiveExpirationManager (now named ActiveExpirationManager)

Authored-by: Donal Evans <doevans@vmware.com>
4 months agoGEODE-10019: Obey rules on release commits (#7341)
Owen Nichols [Tue, 15 Feb 2022 21:10:49 +0000 (13:10 -0800)] 
GEODE-10019: Obey rules on release commits (#7341)

* prefix all release-related commits with a JIRA ticket number to comply with Geode commit message standards
* provide commit message details for release-related commits
* change release-related commit summaries to imperative style
* change release-related commit messages to be under 30 characters
* update benchmark baselines now correctly overrides any previous overrides
* exclude stale data from update finder script

4 months agoGEODE-10046: bump dependencies (#7360)
Owen Nichols [Tue, 15 Feb 2022 21:05:26 +0000 (13:05 -0800)] 
GEODE-10046: bump dependencies (#7360)

* Bump ben-manes versions from 0.39.0 to 0.42.0
* Bump palantir docker from 0.28.0 to 0.32.0
* Bump fastutil from 8.5.6 to 8.5.8
* Bump java-jq from 1.2.0 to 1.3.0
* Bump jproc from 2.6.2 to 2.8.0
* Bump json-path from 2.6.0 to 2.7.0
* Bump lettuce-core from 6.1.5.RELEASE to 6.1.6.RELEASE
* Bump micrometer-core from 1.8.1 to 1.8.2
* Bump mysql-connector-java from 8.0.26 to 8.0.28
* Bump nebula.lint from 17.1.1 to 17.6.1
* Bump netty from 4.1.72.Final to 4.1.74.Final
* Bump pmd from 6.41.0 to 6.42.0
* Bump spotless from 5.14.3 to 6.2.2
* Bump spring from 5.3.14 to 5.3.15
* Bump spring-boot-starter from 2.6.2 to 2.6.3
* Bump spring-hateoas from 1.4.0 to 1.4.1
* Bump tomcat from 9.0.56 to 9.0.58

4 months agoGEODE-9981: Use API to get crypto oid (#7298)
Owen Nichols [Tue, 15 Feb 2022 21:04:55 +0000 (13:04 -0800)] 
GEODE-9981: Use API to get crypto oid (#7298)

* use more portable approach to getting crypto algorithm oid.  this works in both JDK17 and earlier versions, unlike the previous approach which broke in JDK17

4 months agoGEODE-10002: Remove in documentation obligation for parallel … (#7345)
Alberto Gomez [Tue, 15 Feb 2022 20:59:27 +0000 (21:59 +0100)] 
GEODE-10002: Remove in documentation obligation for parallel … (#7345)

* GEODE-10002: Document recommendation but not obligation for parallel gateway sender to share disk store with region

* GEODE-10002: Remove also the recommendation.

4 months agoGEODE-10042: do not make ClientUserAuths null when we are not unregister client yet...
Jinmei Liao [Tue, 15 Feb 2022 18:37:18 +0000 (10:37 -0800)] 
GEODE-10042: do not make ClientUserAuths null when we are not unregister client yet. (#7357)

* make cleanUserAuths synchronized to avoid NPE
* This also pass down client termination reason when we clean up client threads.
* since we introduced a lock object for clientUserAuths, revert some  old code to not to catch NPE but use the lock
* synchronize all clientUserAuths updates.

4 months agoGEODE-10032: Add Category to RedisCommandType (#7354)
Jens Deppe [Mon, 14 Feb 2022 17:29:38 +0000 (09:29 -0800)] 
GEODE-10032: Add Category to RedisCommandType (#7354)

- This adds a single category (or type) to each command in order to
  identify the type of data structure it applies too. This is initially
  being done in order to allow Geode statistics to be finer grained in
  how the Radish-specific stats are grouped.
- The category is derived from Redis' ACL Categories. In Redis these
  categories also include the command's flags (and possibly additional
  values). This implementation only specifies the category as it relates
  to the command's data type.  For example, in Redis the `GET` command
  has categories `@read`, `@fast` and `@string`. In Geode, the category
  would only be `@string`. This may well change in the future if ACLs
  are implemented.

4 months agoGEODE-9990: turn DiskAccessException into CacheClosedException (#7334)
Joris Melchior [Fri, 11 Feb 2022 23:38:04 +0000 (18:38 -0500)] 
GEODE-9990: turn DiskAccessException into CacheClosedException (#7334)

* GEODE-9990: turn DiskAccessException into CacheClosedException

- when DiskInitFile is in closed state and DiskStoreImpl is closed or
  closing
- catch DiskAccessException in PRHARedundancyProvider and turn into
  CacheClosedException if cache closing is in progress
- change CreateBucketMessage to handle DiskAccessException as cause of
  ReplyException

4 months agoGEODE-10021: Clean up RemoteTransactionDUnitTest (#7339)
Hale Bales [Fri, 11 Feb 2022 18:56:33 +0000 (10:56 -0800)] 
GEODE-10021: Clean up RemoteTransactionDUnitTest (#7339)

Clean up RemoteTransactionDUnitTest for the next time this failure
occurs.

While trying to reproduce the failure described by GEODE-9929 I did some
clean up so I would be able to get more useful information out of the
failures. I cleaned up a lot of warnings, mostly using IntelliJ's tools.

I cleaned up:
- assertNull
- assertTrue
- assertFalse
- fail
- WaitCriterion
- added <Object> where required to get rid of warnings
- removed unnecessary throws of Exceptions on methods that don't throw
- in assertions switched the actual and expected to be the correct direction
- getGemfireCache (deprecated) -> getCache

4 months agoGEODE-9845: Refactor OutOfMemoryDUnitTest (#7338)
Donal Evans [Fri, 11 Feb 2022 01:20:56 +0000 (17:20 -0800)] 
GEODE-9845: Refactor OutOfMemoryDUnitTest (#7338)

- Start servers using gfsh to allow setting
 XX:CMSInitiatingOccupancyFraction and other VM memory/GC settings
 - Add GEODE_HOME setting to geode-for-redis:distributedTest and
 repeatDistributedTest in build.gradle to support starting servers
 using GfshCommandRule
 - Add test coverage for commands being allowed again after recovering
 from critical
 - Add test that non-critical member does not allow write operations if
 there is a critical member in the cluster

4 months agoGEODE-10018: Remove redundant TX flag from SetOptions (#7352)
Donal Evans [Thu, 10 Feb 2022 20:20:06 +0000 (12:20 -0800)] 
GEODE-10018: Remove redundant TX flag from SetOptions (#7352)

Authored-by: Donal Evans <doevans@vmware.com>
4 months agoGEODE-10022: fix the logging to log the entire stack trace. (#7349)
Jinmei Liao [Wed, 9 Feb 2022 18:10:39 +0000 (10:10 -0800)] 
GEODE-10022: fix the logging to log the entire stack trace. (#7349)

4 months agoGEODE-9980: Improve error handling of serial filters (#7299)
Kirk Lund [Tue, 8 Feb 2022 20:04:44 +0000 (12:04 -0800)] 
GEODE-9980: Improve error handling of serial filters (#7299)

Improves the error handling of serial filter configuration and
filtering. The API throws a runtime exception wrapping any thrown
exceptions.

When geode.enableGlobalSerialFilter is FALSE:
* Startup succeeds without throwing any exceptions even if an older
  version of Java throws "java.lang.ClassNotFoundException
  sun.misc.ObjectInputFilter".

When geode.enableGlobalSerialFilter is TRUE:
* Startup fails by throwing an exception when configuration of serial
  filter fails for any reason.

Renames ObjectInputFilter to avoid confusion with the Java interface of
the same name.

Fixes a bug found in ReflectiveFacadeGlobalSerialFilterTest which
resulted in configuring a non-mocked process-wide serial filter that
polluted the JVM for all later tests.

Fixes other minor details in LocatorLauncher, InternalDataSerializer
and various related tests.

4 months agoGEODE-10009: Invoked internalClose with keepAlive true (#7332)
Barry Oglesby [Tue, 8 Feb 2022 01:03:51 +0000 (15:03 -1000)] 
GEODE-10009: Invoked internalClose with keepAlive true (#7332)

4 months agoGEODE-9985: add region redundancy to avoid data loss. (#7308)
Jinmei Liao [Mon, 7 Feb 2022 22:13:56 +0000 (14:13 -0800)] 
GEODE-9985: add region redundancy to avoid data loss. (#7308)

4 months agoGEODE-10015: Set java.rmi.server.hostname when SSL enabled. (#7337)
Jacob Barrett [Mon, 7 Feb 2022 22:09:33 +0000 (14:09 -0800)] 
GEODE-10015: Set java.rmi.server.hostname when SSL enabled. (#7337)

When SSL is enabled we set the java.rmi.server.hostname System Property
to force creation of endpoints bound to that address rather than the
default, which is the local IP address. When RMI clients make
connections for these endpoints they will use the correct hostname,
which should match the hostname in the SSL certificate.

4 months agoGEODE-9710: Cleanup PRColocationDUnitTestHelper (#6969)
Nabarun Nag [Fri, 4 Feb 2022 00:40:53 +0000 (16:40 -0800)] 
GEODE-9710: Cleanup PRColocationDUnitTestHelper (#6969)

4 months agoInitial commit (#7335)
Ray Ingles [Thu, 3 Feb 2022 15:15:12 +0000 (10:15 -0500)] 
Initial commit (#7335)

Remove redundant server.stop() calls and unnecessary "canStoreBinaryData" tests from Geode for Redis tests.

Co-authored-by: Ray Ingles <ringles@vmware.com>
4 months agoGEODE-9833: SPOP Command Support (#7319)
Kris10 [Wed, 2 Feb 2022 22:51:19 +0000 (14:51 -0800)] 
GEODE-9833: SPOP Command Support (#7319)

 - Modified implementation of retrieving a random element from SizeableObjectOpenCustomHashSetWithCursor backing array

4 months agoGEODE-9994 Make Redis RENAME atomic (#7328)
Eric Zoerner [Wed, 2 Feb 2022 21:34:19 +0000 (13:34 -0800)] 
GEODE-9994 Make Redis RENAME atomic (#7328)

- change verification to allow for erroneous client retries
- change error logging to warning level to prevent false negative test failure due to log

4 months agoGEODE-9999: Update the Geode for Redis documentation (#7326)
John Martin [Wed, 2 Feb 2022 21:02:31 +0000 (16:02 -0500)] 
GEODE-9999: Update the Geode for Redis documentation (#7326)

4 months agoGEODE-10011: Do not perform second scan if first scanned entire map (#7333)
Donal Evans [Wed, 2 Feb 2022 16:34:40 +0000 (08:34 -0800)] 
GEODE-10011: Do not perform second scan if first scanned entire map (#7333)

- The test scanWithNoModificationsDoesNotReturnDuplicates in
 SizeableBytes2ObjectOpenCustomHashMapWithCursorQuickCheckTest should
 only perform a second scan if the first one was not a complete scan of
 the map

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoGEODE-9993: Make SMOVE transactional (#7321)
Donal Evans [Tue, 1 Feb 2022 20:47:03 +0000 (12:47 -0800)] 
GEODE-9993: Make SMOVE transactional (#7321)

 - Use lockedExecuteInTransaction method in SMoveExecutor
 - Refactor RedisSet.sadd and RedisSet.srem to not modify the list of members passed to them
 - Do not use Delta in AbstractRedisData.storeChanges() if operation is using a transaction

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoGEODE-9835: Add SSCAN to Redis supported commands (#7278)
Bala Kaza Venkata [Tue, 1 Feb 2022 17:31:22 +0000 (12:31 -0500)] 
GEODE-9835: Add SSCAN to Redis supported commands (#7278)

Co-authored-by: Bala Kaza Venkata <bkazavenkata@vmware.com>
Co-authored-by: Steve Sienkowski <ssienkowski@vmware.com>
5 months agoGEODE-9995: Use ephemeral ports to avoid port in use issues (#7329)
Jens Deppe [Mon, 31 Jan 2022 20:04:15 +0000 (12:04 -0800)] 
GEODE-9995: Use ephemeral ports to avoid port in use issues (#7329)

5 months agoAdding a script which performs validation of a release candidate
Dan Smith [Sat, 29 Jan 2022 00:39:38 +0000 (16:39 -0800)] 
Adding a script which performs validation of a release candidate

Adding a script which performs validation of a release candidate

This script currently
- downloads all packages
- validates the signatures
- verifies that the source tag matches the source release
- builds from the source releases of everything but native client

5 months agoGEODE-9604 Also fix MSetNXDunitTest (#7325)
Eric Zoerner [Fri, 28 Jan 2022 23:43:26 +0000 (15:43 -0800)] 
GEODE-9604 Also fix MSetNXDunitTest (#7325)

5 months agoGEODE-9988: Log full exception when JNDI binding fails during cache creation (#7304)
Jens Deppe [Thu, 27 Jan 2022 22:20:39 +0000 (14:20 -0800)] 
GEODE-9988: Log full exception when JNDI binding fails during cache creation (#7304)

5 months agoGEODE-9830: SINTERSTORE Command Support (#7302)
Kris10 [Thu, 27 Jan 2022 20:40:53 +0000 (12:40 -0800)] 
GEODE-9830: SINTERSTORE Command Support (#7302)

5 months agoGEODE-9853: get all members hosting bucket (#7144)
Mario Ivanac [Thu, 27 Jan 2022 10:23:29 +0000 (11:23 +0100)] 
GEODE-9853: get all members hosting bucket (#7144)

* GEODE-9853: get all members hosting bucket

5 months agoGEODE-9972: eliminate overnight step from release process (#7280)
Owen Nichols [Thu, 27 Jan 2022 08:03:08 +0000 (00:03 -0800)] 
GEODE-9972: eliminate overnight step from release process (#7280)

* eliminate overnight step from release process and template announce mail
* remove duplicate Subject line
* fix group name in link
* support branch protection for develop on all subprojects
* make sure we can still pull after changing the single-branch-develop checkouts to support branches
* fix undefined variable usage

5 months agoRevert "GEODE-9969: Fix unescaping the region name with underscore (#7282)" (#7311)
Ray Ingles [Thu, 27 Jan 2022 06:23:54 +0000 (01:23 -0500)] 
Revert "GEODE-9969: Fix unescaping the region name with underscore (#7282)" (#7311)

This reverts commit 4b5b30e379c35f17578251fe297c2b7fe7921fa4 for breaking
windows-acceptance-test.  Please re-submit this as a new PR and add the `Windows` label to run Windows checks too.

Co-authored-by: Ray Ingles <ringles@vmware.com>
5 months agoremove stray markdown file (#7314)
Dave Barnes [Thu, 27 Jan 2022 01:51:09 +0000 (17:51 -0800)] 
remove stray markdown file (#7314)

5 months agoGEODE-9883 Update Geode for Redis docs file (#7274)
Eric Zoerner [Thu, 27 Jan 2022 00:05:17 +0000 (16:05 -0800)] 
GEODE-9883 Update Geode for Redis docs file (#7274)

Co-authored-by: Dave Barnes <dbarnes@apache.org>
5 months agoGEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7310)
Donal Evans [Wed, 26 Jan 2022 22:17:23 +0000 (14:17 -0800)] 
GEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7310)

5 months agoroll develop to 1.16.0 now that support/1.15 has been created (#7309)
Owen Nichols [Wed, 26 Jan 2022 22:04:29 +0000 (14:04 -0800)] 
roll develop to 1.16.0 now that support/1.15 has been created (#7309)

5 months agoadd 1.14.3 to old versions and set as Benchmarks baseline on develop (#7307)
Dick Cavender [Wed, 26 Jan 2022 19:54:49 +0000 (11:54 -0800)] 
add 1.14.3 to old versions and set as Benchmarks baseline on develop (#7307)

5 months agoGEODE-9859: Do not copy entry if it is a destroyed entry (#7147)
Alberto Gomez [Wed, 26 Jan 2022 19:41:22 +0000 (20:41 +0100)] 
GEODE-9859: Do not copy entry if it is a destroyed entry (#7147)

* GEODE-9859: Do not copy entry if it is a destroyed entry

* GEODE-9859: Add unit test after review

5 months agoRevert "GEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7294)"...
Dave Barnes [Wed, 26 Jan 2022 01:03:35 +0000 (17:03 -0800)] 
Revert "GEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7294)" (#7306)

This reverts commit 763f590fe1e9a62ec21eae3a8c0cf0de2fee8594.

5 months agoGEODE-9969: Fix unescaping the region name with underscore (#7282)
Mario Kevo [Tue, 25 Jan 2022 22:58:02 +0000 (23:58 +0100)] 
GEODE-9969: Fix unescaping the region name with underscore (#7282)

* GEODE-9969: Fix unescaping the region name with underscore

5 months agoGEODE-8616: Refactoring the test to remove deprecated APIs (#7301)
Nabarun Nag [Tue, 25 Jan 2022 17:33:33 +0000 (09:33 -0800)] 
GEODE-8616: Refactoring the test to remove deprecated APIs (#7301)

        * Re-enabling the windows test.
* Refactored to remove the deprecated APIs

5 months agoGEODE-6751: Improved the tests for locator-gfsh compatibility (#7289)
Nabarun Nag [Tue, 25 Jan 2022 01:19:49 +0000 (17:19 -0800)] 
GEODE-6751: Improved the tests for locator-gfsh compatibility (#7289)

        * Previously the tests only checked with 1.3.0 version of locator
* The test now checks the behavior of the all the versions
* New version gfsh could not connect with locators versions below 1.10.0
* New version gfsh are now able to connect with locators 1.10.0 and above.
* This is now reflected in the test.
* Previously a race condition between the execution of the two scripts caused the second script to be executed before the locator startup had completed.
* Now the locator is started using the cluster startup rule.

5 months agoGEODE-9923: Add log message troubleshooting info from support team community (#7296)
Dave Barnes [Mon, 24 Jan 2022 18:40:19 +0000 (10:40 -0800)] 
GEODE-9923: Add log message troubleshooting info from support team community (#7296)

5 months agoGEODE-9958: Add gfsh-specific tests for Radish startup (#7297)
Jens Deppe [Sat, 22 Jan 2022 03:57:42 +0000 (19:57 -0800)] 
GEODE-9958: Add gfsh-specific tests for Radish startup (#7297)

5 months agoGEODE-9922: Move Redis cross-slot checking to RegionProvider (#7295)
Donal Evans [Sat, 22 Jan 2022 01:54:03 +0000 (17:54 -0800)] 
GEODE-9922: Move Redis cross-slot checking to RegionProvider (#7295)

* GEODE-9922: Move Redis cross-slot checking to RegionProvider

 - Move duplicated logic for determining if Keys are in different slots
 from various Executors to RegionProvider
 - Removed manual checks for if the key is local, as this is performed
 as part of locking the primary bucket
 - Created RedisCrossSlotException class
 - Added unit tests for new method in RegionProvider
 - Refactor SetOpExecutor to also lock the destination key for *STORE
 commands
 - Add missing test cases for cross-slot errors
 - Correct some tests for cross-slot behaviour that were inadvertantly
 testing the Jedis client's response rather than the Geode for Redis
 server
 - Changed name format for constants in AbstractSMoveIntegrationTest
 - Modify patch file to ensure tcl tests use keys with the same slot

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoupdate redis svg to use new module name (#7288)
Hale Bales [Fri, 21 Jan 2022 23:31:49 +0000 (15:31 -0800)] 
update redis svg to use new module name (#7288)

5 months agoGEODE-9885: Handle duplicated appends in Redis StringsDUnitTest (#7290)
Donal Evans [Fri, 21 Jan 2022 23:28:10 +0000 (15:28 -0800)] 
GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest (#7290)

* GEODE-9885: Handle duplicated appends in Redis StringsDUnitTest

 - The Jedis client automatically retries when a bucket is moved during
 an APPEND operation, which can lead to the append being duplicated. Add
 error handling to the test to check if unexpected append values are
 duplicates of the previous append and if so, ignore the AssertionError
 - Add missing synchronization around in-place array modification in
 RedisString.applyReplaceByteArrayAtOffsetDelta() method
 - Remove unnecessarily overridden method from NullRedisSet

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoGEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7294)
Donal Evans [Fri, 21 Jan 2022 23:22:39 +0000 (15:22 -0800)] 
GEODE-9973: Correct docs regarding P2P socket timeout behaviour (#7294)

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoGEODE-9834: SRANDMEMBER Command Support (#7228)
Kris10 [Fri, 21 Jan 2022 18:14:07 +0000 (10:14 -0800)] 
GEODE-9834: SRANDMEMBER Command Support (#7228)

5 months agoadd 1.13.7 to old versions on develop (#7292)
Dick Cavender [Thu, 20 Jan 2022 23:51:59 +0000 (15:51 -0800)] 
add 1.13.7 to old versions on develop (#7292)

5 months agoGEODE-9837: SUNIONSTORE Command Support (#7284)
Kris10 [Thu, 20 Jan 2022 22:11:41 +0000 (14:11 -0800)] 
GEODE-9837: SUNIONSTORE Command Support (#7284)

5 months agoGEODE-9978: Remove test-container. (#7286)
Sean Goller [Thu, 20 Jan 2022 17:51:26 +0000 (09:51 -0800)] 
GEODE-9978: Remove test-container. (#7286)

5 months agoGEODE-9977: Remove defunct RedisCommandSupportLevel.INTERNAL type (#7283)
Donal Evans [Thu, 20 Jan 2022 16:53:14 +0000 (08:53 -0800)] 
GEODE-9977: Remove defunct RedisCommandSupportLevel.INTERNAL type (#7283)

Authored-by: Donal Evans <doevans@vmware.com>
5 months agoUpdate codeowners mappings for kamilla1201 (#7287)
Kamilla Aslami [Thu, 20 Jan 2022 16:21:55 +0000 (08:21 -0800)] 
Update codeowners mappings for kamilla1201 (#7287)

5 months agoGEODE-9807: gfsh gateway sender stop in parallel (like start) (#7108)
Alberto Gomez [Thu, 20 Jan 2022 07:30:56 +0000 (08:30 +0100)] 
GEODE-9807: gfsh gateway sender stop in parallel (like start) (#7108)

* GEODE-9807: gfsh Gateway sender stop in parallel (like start)

* GEODE-9807: Add unit tests

* GEODE-9807: Refactor to better test after review.

* GEODE-9807: Changes after review.

* GEODE-9807: Removed delegate class to simplify as suggested by review

* GEODE-9807: Small changes after review

* GEODE-9807: stub some class under test methods instead of passing dependencies in constructor

5 months agoGEODE-9976: Edit CODEOWNERS mappings for kirklund (#7281)
Kirk Lund [Wed, 19 Jan 2022 19:20:52 +0000 (11:20 -0800)] 
GEODE-9976: Edit CODEOWNERS mappings for kirklund (#7281)

Remove kirklund as owner from several code areas.

Introduce geode-serialization/**/internal/serialization/filter/*
as a new code area with kirklund and jchen21 as owners.

5 months agoGEODE-6588: Mass cleanup of static analyzer warnings. (#7221)
Jacob Barrett [Wed, 19 Jan 2022 18:50:16 +0000 (10:50 -0800)] 
GEODE-6588: Mass cleanup of static analyzer warnings. (#7221)

5 months agoGEODE-9933: documentation for authorization expiry (#7248)
Joris Melchior [Wed, 19 Jan 2022 14:54:32 +0000 (09:54 -0500)] 
GEODE-9933: documentation for authorization expiry (#7248)

* GEODE-9933: documentation for authorization expiry

Co-authored-by: Dave Barnes <daveba@vmware.com>
5 months agoGEODE-9961: GatewayReceiver rethrows CancelException (#7275)
Mario Ivanac [Wed, 19 Jan 2022 12:46:23 +0000 (13:46 +0100)] 
GEODE-9961: GatewayReceiver rethrows CancelException (#7275)

5 months agoGEODE-9971: Fix test case after switching from docker-compose to testcontainers ...
Alberto Gomez [Wed, 19 Jan 2022 07:03:52 +0000 (08:03 +0100)] 
GEODE-9971: Fix test case after switching from docker-compose to testcontainers (#7277)

5 months agoGEODE-9962: Update redis INFO command for cluster mode responses (#7273)
Jens Deppe [Wed, 19 Jan 2022 01:12:03 +0000 (17:12 -0800)] 
GEODE-9962: Update redis INFO command for cluster mode responses (#7273)

- Redis version is set to `5.0`
- InfoNativeRedisAcceptanceTest changed to use an actual Redis cluster
- Responses in cluster mode match native Redis

5 months agoGEODE-9758: Add internal serial filter API (#7217)
Kirk Lund [Tue, 18 Jan 2022 19:01:25 +0000 (11:01 -0800)] 
GEODE-9758: Add internal serial filter API (#7217)

GEODE-9758: Add internal serial filter API #7217

Expand ObjectInputStreamFilterWrapper to be an internal API which
supports all of Geode's uses of Java's ObjectInputFilter.

Introduce a new system property, geode.enableGlobalSerialFilter, to
enable a process-wide filter with all serializable Geode classes on the
classpath and the value of serializable-object-filter accept-listed.

To enable the process-wide filter with GFSH start commands, add:

* --J=-Dgeode.enableGlobalSerialFilter=true

Functional Capabilities

The internal API lives in geode-serialization and works on OpenJDK
based JREs providing a facade for Java's ObjectInputFilter in Java 8
and Java 9 or greater using reflection. The API provides the following
capabilities:

* creating an ObjectInputFilter
* setting an ObjectInputFilter on an ObjectInputStream
* getting an ObjectInputFilter from a ObjectInputStream
* setting a process-wide ObjectInputFilter
* getting a process-wide ObjectInputFilter

Design Notes

The API defines the following primary interface types:

* factory interfaces for creating instances of types within the API
* filter interfaces to split out single ops from Java's
  ObjectInputFilter
* configuration interfaces for handling system properties, logging,
  and config validation

The concrete classes in the API receive parameters injected via a
constructor for any collaborators that are not specified by the
interfaces. This is intentional even when the instance is only used
once before de-referencing it. All collaborators that are defined in
the interface are passed in as parameters to the implementing
method; all others are passed in via the constructor and stored as
fields.

5 months agoGEODE-9644: Remove use of ephemeral ports for tests (#7264)
Jinmei Liao [Tue, 18 Jan 2022 17:37:48 +0000 (09:37 -0800)] 
GEODE-9644: Remove use of ephemeral ports for tests (#7264)

5 months agoGEODE-9836: SUNION Command Support
Kris10 [Tue, 18 Jan 2022 17:27:24 +0000 (09:27 -0800)] 
GEODE-9836: SUNION Command Support

5 months agoGEODE-9908: when make durable client queue primary, send marker messa… (#7267)
Jinmei Liao [Sat, 15 Jan 2022 00:08:15 +0000 (16:08 -0800)] 
GEODE-9908: when make durable client queue primary, send marker messa… (#7267)

5 months agoGEODE-9897: Improve ClientUserAuthsTest (#7263)
Dale Emery [Fri, 14 Jan 2022 23:22:02 +0000 (15:22 -0800)] 
GEODE-9897: Improve ClientUserAuthsTest (#7263)

* GEODE-9897: Improve ClientUserAuthsTest

PROBLEM 1

In `ClientUserAuthsTest`, the `before()` method uses the `spy()`
mechanism to override `getNextId()` on the `ClientUserAuths` instance it
is testing. This bypasses the actual implementation for all tests,
leaving the following important `ClientUserAuths` responsibilities
untested:
- Detect when all IDs have all been used.
- Clear all existing authorizations when all IDs have been used, to
  force reauthentication.
- Re-seed the ID generator when all IDs have been used.

The tests are likely doing this because `getNextId()` relies on a
`Random`, which is uncontrollable by design. Because `ClientUserAuths`
creates the `Random`, the tests are unable to inject a testable
instance, and so instead must bypass the `ClientUserAuths` methods that
interact with the `Random`.

PROBLEM 2

Some tests attempt to verify `ClientUserAuths` responsibilities only by
observing how a `ClientUserAuths` interacts with itself. These tests
verify only implementation details, and leave the actual responsibility
untested.

PROBLEM 3

If the `id` passed to `ClientUserAuths.putSubject(subject, id)` is 0 or
-1, the method treats that as a request to to generate and assign an ID.
The `getNextID()` method can return either of these special values, and
so `putSubject()` might associate the subject with one of them. If a
caller later attempts to replace that subject by calling
`putSubject(replacement, id)` with the same ID (0 or -1), `putSubject()`
will generate a new ID and assign it to the replacement, rather than
replacing the original subject.

SOLUTIONS

1. Extract and test a `RandomSubjectIdGenerator` that generates random
   IDs.
2. Change existing tests so that they do not override production
   behavior, and so that they verify actual responsibilities.
3. Update `getNextID()` to avoid returning 0 or -1.

A subsequent PR can add tests for the now-testable responsibilities.

* Add tests for handling ID exhaustion

5 months agoGEODE-9965: don't assume the release directory contains only numbered Geode releases...
Owen Nichols [Fri, 14 Jan 2022 18:00:35 +0000 (10:00 -0800)] 
GEODE-9965: don't assume the release directory contains only numbered Geode releases: ignore anything that doesn't start with a number, such as KEYS and kafka-connector-n.n.n) (#7269)

5 months agoGEODE-9936: Modify multi-key Redis commands for wrong type key (#7257)
Kris10 [Fri, 14 Jan 2022 17:38:47 +0000 (09:38 -0800)] 
GEODE-9936: Modify multi-key Redis commands for wrong type key (#7257)

 - For Redis commands that take in multiple keys, added tests with the wrong key type as an argument.
 - Modified the implementation of SDIFF, SDIFFSTORE, and ZINTERSTORE to prevent early returns allowing all keys to check for wrong key types.
 - Updated variables to match coding style.

5 months agoGEODE-9913: Added basicBridgePut condition to ensure VersionTag set (#7235)
Barry Oglesby [Fri, 14 Jan 2022 17:12:37 +0000 (09:12 -0800)] 
GEODE-9913: Added basicBridgePut condition to ensure VersionTag set (#7235)

5 months agoadd 1.12.8 to old versions on develop (#7268)
Dick Cavender [Fri, 14 Jan 2022 11:13:47 +0000 (03:13 -0800)] 
add 1.12.8 to old versions on develop (#7268)

5 months agoGEODE-9937: Add convenience methods to FileWatchingX509Extended*Manager (#7251)
Jens Deppe [Thu, 13 Jan 2022 23:15:57 +0000 (15:15 -0800)] 
GEODE-9937: Add convenience methods to FileWatchingX509Extended*Manager (#7251)

5 months agoGEODE-9944: Handle a race when HARegionQueue is not initialized yet. (#7259)
Eric Shu [Thu, 13 Jan 2022 17:52:24 +0000 (09:52 -0800)] 
GEODE-9944: Handle a race when HARegionQueue is not initialized yet. (#7259)

5 months agoGEODE-9829: Add SINTER command to Redis supported commands. (#7236)
Bala Kaza Venkata [Thu, 13 Jan 2022 16:50:20 +0000 (11:50 -0500)] 
GEODE-9829: Add SINTER command to Redis supported commands. (#7236)

SINTER command is implemented and integration tests and added to test this
command.

Co-authored-by: Bala Kaza Venkata <bkazavenkata@vmware.com>
Co-authored-by: Steve Sienkowski <ssienkowski@vmware.com>
Co-authored-by: Kristen Oduca <koduca@vmware.com>
5 months agoFix for jcenter shutdown. (#7260)
Jacob Barrett [Thu, 13 Jan 2022 01:30:11 +0000 (17:30 -0800)] 
Fix for jcenter shutdown. (#7260)

5 months agoGEODE-9815: Prefer to remove a redundant copy in the same zone (#7124)
mhansonp [Tue, 11 Jan 2022 23:53:57 +0000 (15:53 -0800)] 
GEODE-9815: Prefer to remove a redundant copy in the same zone (#7124)

-Fix primaryship in tests
-Fix comments
-Remove log statements
-Remove unnecessary exceptions
-Extracting a method to make things more readable
-Changes per comments

5 months agoGEODE-9942: Include JUnit 5 tests in stress tests (#7256)
Dale Emery [Tue, 11 Jan 2022 22:58:21 +0000 (14:58 -0800)] 
GEODE-9942: Include JUnit 5 tests in stress tests (#7256)

PROBLEM

JUnit 5 test classes need not be public. Indeed, IntelliJ's default
inspections discourage making JUnit 5 classes public.

`StressTestHelper` uses a `ClassGraph` to gather information about test
classes. By default, the `ClassGraph` scans only public classes. So by
default, the `ClassGraph` does not gather information about JUnit 5
classes with non-public visibility.

As a result, our stress test scripts do not run JUnit 5 tests.

SOLUTION

Call `ignoreClassVisibility()` to configure the `ClassGraph` to scan all
classes, not just public ones.

A few poorly-controlled, unsophisticated experiments (on a 2016 MacBook)
show that this increases the scan duration from 3 seconds to 3.4
seconds.

5 months agoGEODE-9940: ci improvements (#7255)
Owen Nichols [Tue, 11 Jan 2022 19:43:42 +0000 (11:43 -0800)] 
GEODE-9940: ci improvements (#7255)

* pin the image too for all runs in the same mass test run
* fix typo in time format from #7254

5 months agoGEODE-9881: Oplog not compacted after recovery (#7193)
Jakov Varenina [Tue, 11 Jan 2022 11:27:42 +0000 (12:27 +0100)] 
GEODE-9881: Oplog not compacted after recovery (#7193)

* GEODE-9881: Oplog not compacted after recovery

5 months agoGEODE-9735: Do not copy entries that have been updated after the comm… (#7003)
Alberto Gomez [Tue, 11 Jan 2022 07:36:09 +0000 (08:36 +0100)] 
GEODE-9735: Do not copy entries that have been updated after the comm… (#7003)

* GEODE-9735: Do not copy entries that have been updated after the command was run

* GEODE-9735: check if concurrencyChecksEnabled is true to use timestamps