[jira] [Commented] (GEODE-8963) separate client/server compatibility from server/server version compatibility

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294298#comment-17294298
 ] 

ASF GitHub Bot commented on GEODE-8963:
---

onichols-pivotal opened a new pull request #6081:
URL: https://github.com/apache/geode/pull/6081


   also fix the comment in KnownVersion to match the new policy in the release 
scripts to increment by 10 per minor instead of 5



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> separate client/server compatibility from server/server version compatibility
> -
>
> Key: GEODE-8963
> URL: https://issues.apache.org/jira/browse/GEODE-8963
> Project: Geode
>  Issue Type: Improvement
>  Components: serialization
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> A client's version is used for deserializing data received from the client 
> and for serializing data sent to the client. It is also used to locate the 
> map of Commands used to process client requests. Every time we cut a new 
> release we bump this version in KnownVersions and create a new map of 
> Commands, even though client/server communications protocols rarely change.
>  We should have each KnownVersion hold a client/server compatibility number 
> that is used to identify clients rather than the KnownVersion's ordinal.
> For instance,
> {code:java}
>   public static final KnownVersion GEODE_1_15_0 =
>   new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_15_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
>   
> public static final KnownVersion GEODE_1_16_0 =
>   new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_16_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> public static final KnownVersion GEODE_1_17_0 =
>   new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_17_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> {code}
> In the above KnownVersions the client/server serialization is known to have 
> not changed since v1.15.0 and so there is no need to use a newer KnownVersion 
> for clients.
> Client handshake code will need to be changed to use the client/server 
> ordinal when identifying clients and servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8980) bump dependencies for 1.15.0 [PERMANENT]

2021-03-02 Thread Owen Nichols (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Owen Nichols updated GEODE-8980:

Summary: bump dependencies for 1.15.0 [PERMANENT]  (was: bump dependencies 
for 1.15.0)

> bump dependencies for 1.15.0 [PERMANENT]
> 
>
> Key: GEODE-8980
> URL: https://issues.apache.org/jira/browse/GEODE-8980
> Project: Geode
>  Issue Type: Improvement
>  Components: build
>Affects Versions: 1.15.0
>Reporter: Owen Nichols
>Priority: Major
>  Labels: pull-request-available
>
> keeping up with the latest versions of 3rd-party libraries used by Geode is a 
> proactive way to reduce bugs and avoid security vulnerabilities.  this ticket 
> will be used for ~monthly dependency bumps on develop until we get close to 
> cutting support/1.15



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8996) Rebalance GFSH commands and restore redundancy commands were not backward compatible

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294279#comment-17294279
 ] 

ASF GitHub Bot commented on GEODE-8996:
---

nabarunnag opened a new pull request #6080:
URL: https://github.com/apache/geode/pull/6080


  * Moved new child RebalanceFunction and CacheRealizationFunction to pre 
1.12.0 locations.
  * While talking to pre-1.12.0 servers, the locators send the function 
from the old package.
  * While talking to 1.12.0 server, the new package function is used.
  * For RebalanceFunction and CacheRealizationFunction the serialVersionUID 
is set to the one create by 1.11.0 for old package location and 
serialVersionUID created by 1.12.0 for the later.
   
   Thank you for submitting a contribution to Apache Geode.
   
   In order to streamline the review of the contribution we ask you
   to ensure the following steps have been taken:
   
   ### For all changes:
   - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in 
the commit message?
   
   - [ ] Has your PR been rebased against the latest commit within the target 
branch (typically `develop`)?
   
   - [ ] Is your initial contribution a single, squashed commit?
   
   - [ ] Does `gradlew build` run cleanly?
   
   - [ ] Have you written or updated unit tests to verify your changes?
   
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   
   ### Note:
   Please ensure that once the PR is submitted, check Concourse for build 
issues and
   submit an update to your PR as soon as possible. If you need help, please 
send an
   email to d...@geode.apache.org.
   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Rebalance GFSH commands and restore redundancy commands were not backward 
> compatible
> 
>
> Key: GEODE-8996
> URL: https://issues.apache.org/jira/browse/GEODE-8996
> Project: Geode
>  Issue Type: Bug
>  Components: gfsh, rest (admin)
>Reporter: Nabarun Nag
>Assignee: Nabarun Nag
>Priority: Major
>
> Issue:
>  * Rebalance command when executed with 1.12.0+ locator and older servers, 
> the command failed
>  * This was because the Rebalance function moved to a new package
>  * Similar problem with REST calls because of moving CacheRealizationFunction 
> to a new package
>  * There was another problem where Serializable classes with UIDs were 
> changed in couple of releases
>  * The variation of the UIDs caused deserialization issues when REST commands 
> were executed from new locators and old servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8996) Rebalance GFSH commands and restore redundancy commands were not backward compatible

2021-03-02 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-8996:
--
Labels: pull-request-available  (was: )

> Rebalance GFSH commands and restore redundancy commands were not backward 
> compatible
> 
>
> Key: GEODE-8996
> URL: https://issues.apache.org/jira/browse/GEODE-8996
> Project: Geode
>  Issue Type: Bug
>  Components: gfsh, rest (admin)
>Reporter: Nabarun Nag
>Assignee: Nabarun Nag
>Priority: Major
>  Labels: pull-request-available
>
> Issue:
>  * Rebalance command when executed with 1.12.0+ locator and older servers, 
> the command failed
>  * This was because the Rebalance function moved to a new package
>  * Similar problem with REST calls because of moving CacheRealizationFunction 
> to a new package
>  * There was another problem where Serializable classes with UIDs were 
> changed in couple of releases
>  * The variation of the UIDs caused deserialization issues when REST commands 
> were executed from new locators and old servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8996) Rebalance GFSH commands and restore redundancy commands were not backward compatible

2021-03-02 Thread Nabarun Nag (Jira)
Nabarun Nag created GEODE-8996:
--

 Summary: Rebalance GFSH commands and restore redundancy commands 
were not backward compatible
 Key: GEODE-8996
 URL: https://issues.apache.org/jira/browse/GEODE-8996
 Project: Geode
  Issue Type: Bug
  Components: gfsh, rest (admin)
Reporter: Nabarun Nag


Issue:
 * Rebalance command when executed with 1.12.0+ locator and older servers, the 
command failed
 * This was because the Rebalance function moved to a new package
 * Similar problem with REST calls because of moving CacheRealizationFunction 
to a new package
 * There was another problem where Serializable classes with UIDs were changed 
in couple of releases
 * The variation of the UIDs caused deserialization issues when REST commands 
were executed from new locators and old servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-8996) Rebalance GFSH commands and restore redundancy commands were not backward compatible

2021-03-02 Thread Nabarun Nag (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nabarun Nag reassigned GEODE-8996:
--

Assignee: Nabarun Nag

> Rebalance GFSH commands and restore redundancy commands were not backward 
> compatible
> 
>
> Key: GEODE-8996
> URL: https://issues.apache.org/jira/browse/GEODE-8996
> Project: Geode
>  Issue Type: Bug
>  Components: gfsh, rest (admin)
>Reporter: Nabarun Nag
>Assignee: Nabarun Nag
>Priority: Major
>
> Issue:
>  * Rebalance command when executed with 1.12.0+ locator and older servers, 
> the command failed
>  * This was because the Rebalance function moved to a new package
>  * Similar problem with REST calls because of moving CacheRealizationFunction 
> to a new package
>  * There was another problem where Serializable classes with UIDs were 
> changed in couple of releases
>  * The variation of the UIDs caused deserialization issues when REST commands 
> were executed from new locators and old servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294248#comment-17294248
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r586037142



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -219,13 +298,13 @@ public void 
givenCount_returnsAllEntriesWithoutDuplicates() {
   cursor = result.getCursor();
 } while (!result.isCompleteIteration());
 
-assertThat(allEntries).hasSize(3);
-assertThat(new HashSet<>(allEntries)).isEqualTo(entryMap.entrySet());
+assertThat(allEntries.size()).isCloseTo(3, Offset.offset(1));

Review comment:
   A few thoughts:
   - The test name is kinda misleading, since we say 
`returnsAllEntriesWithoutDuplicates`, but we are admitting the possibility of 
duplicates.
   - You could use lambdas (like you did in another part of the code) to remove 
any duplicates before the assertion, something like:
   ```
   List> allEntriesWithoutDuplicates = 
allEntries.stream().distinct().collect(Collectors.toList());
   ```
   - But really none of the above matters because, thinking about it more, I 
realize that for most of our tests, the data is so small that native Redis is 
always going to return all the entries at once (per the `Why SCAN may return 
all the items of an aggregate data type in a single call?` section of the SCAN 
documentation as well as the Redis code (see `db.c` file, `scanGenericCommand` 
method)). So we can actually check that the size and entries match exactly what 
we expect.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294217#comment-17294217
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r586040291



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/data/RedisHash.java
##
@@ -46,19 +53,88 @@
 public class RedisHash extends AbstractRedisData {
   public static final RedisHash NULL_REDIS_HASH = new NullRedisHash();
   private HashMap hash;
+  private ConcurrentHashMap> hScanSnapShots;
+  private ConcurrentHashMap hScanSnapShotCreationTimes;
+  private ScheduledExecutorService HSCANSnapshotExpirationExecutor = null;
+
+  private static int default_hscan_snapshots_expire_check_frequency =
+  Integer.getInteger("redis.hscan-snapshot-cleanup-interval", 3);
+
+  private static int default_hscan_snapshots_milliseconds_to_live =
+  Integer.getInteger("redis.hscan-snapshot-expiry", 3);
+
+  private int HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS;
+  private int MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE;
+
+  @VisibleForTesting
+  public RedisHash(List fieldsToSet, int 
hscanSnapShotExpirationCheckFrequency,
+  int minimumLifeForHscanSnaphot) {
+this();
+
+this.HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS =
+hscanSnapShotExpirationCheckFrequency;
+this.MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE = 
minimumLifeForHscanSnaphot;
 
-  public RedisHash(List fieldsToSet) {
-hash = new HashMap<>();
 Iterator iterator = fieldsToSet.iterator();
 while (iterator.hasNext()) {
   hashPut(iterator.next(), iterator.next());
 }
   }
 
+  public RedisHash(List fieldsToSet) {
+this(fieldsToSet,
+default_hscan_snapshots_expire_check_frequency,
+default_hscan_snapshots_milliseconds_to_live);
+  }
+
+  // for serialization
   public RedisHash() {
-// for serialization
+this.hash = new HashMap<>();
+this.hScanSnapShots = new ConcurrentHashMap<>();
+this.hScanSnapShotCreationTimes = new ConcurrentHashMap<>();
+
+this.HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS =
+this.default_hscan_snapshots_expire_check_frequency;
+
+this.MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE =
+this.default_hscan_snapshots_milliseconds_to_live;
   }
 
+
+  private void expireHScanSnapshots() {
+
+this.hScanSnapShotCreationTimes.entrySet().forEach(entry -> {

Review comment:
   I was confused for a second, but then realized the above comment went 
with the comment that was in the `createKeySnapshot` method. Those changes look 
good!
   
   The conversation didn't propagate to this area, so here it is:
   ```
   @sabbey37 
   You could actually do this.hScanSnapShotCreationTimes.forEach((entry, 
creationTime) -> {...}, that way you wouldn't have to do the entry.getValue(); 
on the next line. Not necessary, just something cool IntelliJ suggested.
   
Tip
   @jhutchison
   o, wow- that's because I'm not making a copy like I thought I was- changed 
to this:
   List keySnapShot = new ArrayList<>();
   List hashKeysAsList = Arrays.asList(hash.keySet().toArray());
   Collections.copy(keySnapShot, hashKeysAsList);
   ```





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294214#comment-17294214
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r586017202



##
File path: 
geode-redis/src/test/java/org/apache/geode/redis/internal/data/RedisHashTest.java
##
@@ -161,4 +163,109 @@ public void 
setExpirationTimestamp_stores_delta_that_is_stable() throws IOExcept
 o2.fromDelta(in);
 assertThat(o2).isEqualTo(o1);
   }
+
+  @Test
+  public void hscanSnaphots_shouldBeEmpty_givenHscanHasNotBeenCalled() {
+RedisHash subject = createRedisHash(100);
+assertThat(subject.getHscanSnapShots()).isEmpty();
+  }
+
+  @Test
+  public void hscanSnaphots_shouldContainSnapshot_givenHscanHasBeenCalled() {
+
+final List FIELDS_AND_VALUES_FOR_HASH = 
createListOfDataElements(100);
+RedisHash subject = new RedisHash(FIELDS_AND_VALUES_FOR_HASH);
+UUID clientID = UUID.randomUUID();
+
+subject.hscan(clientID, null, 10, BigInteger.valueOf(0));
+
+ConcurrentHashMap> hscanSnapShotMap = 
subject.getHscanSnapShots();
+
+assertThat(hscanSnapShotMap.containsKey(clientID)).isTrue();
+
+List keyList = hscanSnapShotMap.get(clientID);
+assertThat(keyList).isNotEmpty();
+
+FIELDS_AND_VALUES_FOR_HASH.forEach((entry) -> {
+  if (entry.toString().contains("field")) {
+assertThat(keyList.contains(entry)).isTrue();
+  } else if (entry.toString().contains("value")) {
+assertThat(keyList.contains(entry)).isFalse();

Review comment:
   I think this got updated for the test below it, but not this one.
   
   the conversation wasn't propagated, so adding it here:
   ```
   you could do the following:
   
if (entry.toString().contains("field")) {
   assertThat(keyList).contains(entry);
} else if (entry.toString().contains("value")) {
   assertThat(keyList).doesNotContain(entry);
   }
   this will result in clearer failure messages.
   ```





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294212#comment-17294212
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585937669



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
##
@@ -44,26 +45,29 @@
   @Override
   public RedisResponse executeCommand(Command command,
   ExecutionHandlerContext context) {
+
+final UUID CLIENT_ID = context.getClientUUID();
+
 List commandElems = command.getProcessedCommand();
 
 String cursorString = Coder.bytesToString(commandElems.get(2));
-BigInteger cursor;
+int cursor;
 Pattern matchPattern;
 String globPattern = null;
 int count = DEFAULT_COUNT;
 
 try {
-  cursor = new BigInteger(cursorString).abs();
+  cursor = Integer.valueOf(cursorString);
 } catch (NumberFormatException e) {
   return RedisResponse.error(ERROR_CURSOR);
 }
 
-if (cursor.compareTo(UNSIGNED_LONG_CAPACITY) > 0) {
+if (cursor > Integer.MAX_VALUE) {
   return RedisResponse.error(ERROR_CURSOR);
 }

Review comment:
   You can actually remove this conditional block now.  We needed it before 
because the capacity of `BigInteger` is greater than the unsigned long capacity.

##
File path: 
geode-redis/src/distributedTest/java/org/apache/geode/redis/internal/executor/hash/HScanDunitTest.java
##
@@ -0,0 +1,241 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+
+package org.apache.geode.redis.internal.executor.hash;
+
+import static 
org.apache.geode.distributed.ConfigurationProperties.MAX_WAIT_TIME_RECONNECT;
+import static org.apache.geode.test.dunit.IgnoredException.addIgnoredException;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import io.lettuce.core.ClientOptions;
+import io.lettuce.core.MapScanCursor;
+import io.lettuce.core.RedisClient;
+import io.lettuce.core.RedisCommandExecutionException;
+import io.lettuce.core.RedisException;
+import io.lettuce.core.ScanCursor;
+import io.lettuce.core.api.StatefulRedisConnection;
+import io.lettuce.core.api.sync.RedisCommands;
+import io.lettuce.core.resource.ClientResources;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.geode.cache.control.RebalanceFactory;
+import org.apache.geode.cache.control.ResourceManager;
+import org.apache.geode.cache.execute.FunctionException;
+import org.apache.geode.internal.AvailablePortHelper;
+import 
org.apache.geode.redis.session.springRedisTestApplication.config.DUnitSocketAddressResolver;
+import org.apache.geode.test.dunit.rules.ClusterStartupRule;
+import org.apache.geode.test.dunit.rules.MemberVM;
+import org.apache.geode.test.dunit.rules.RedisClusterStartupRule;
+import org.apache.geode.test.junit.rules.ExecutorServiceRule;
+import org.apache.geode.test.junit.rules.GfshCommandRule;
+
+public class HScanDunitTest {
+
+  @ClassRule
+  public static RedisClusterStartupRule redisClusterStartupRule = new 
RedisClusterStartupRule(4);
+
+  @Rule
+  public ExecutorServiceRule executor = new ExecutorServiceRule();
+
+  @ClassRule
+  public static GfshCommandRule gfsh = new GfshCommandRule();
+
+  private static RedisCommands commands;
+  private RedisClient redisClient;
+  private StatefulRedisConnection connection;
+  private static Properties locatorProperties;
+
+  private static MemberVM locator;
+  private static MemberVM server1;
+  private static MemberVM server2;
+  private static MemberVM server3;
+
+  static final String HASH_KEY = "key";
+  static final String BASE_FIELD = "baseField_";

[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294207#comment-17294207
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r583054944



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -237,15 +316,40 @@ public void 
givenMultipleCounts_returnsAllEntriesWithoutDuplicates() {
 String cursor = "0";
 
 do {
-  result = (List) jedis.sendCommand(Protocol.Command.HSCAN, 
"colors", cursor, "COUNT",
-  "2", "COUNT", "1");
+  result = (List) jedis.sendCommand(Protocol.Command.HSCAN,
+  "colors",
+  cursor,
+  "COUNT", "2",
+  "COUNT", "1");
+
   allEntries.addAll((List) result.get(1));
   cursor = new String((byte[]) result.get(0));
 } while (!Arrays.equals((byte[]) result.get(0), "0".getBytes()));
 
 assertThat((byte[]) result.get(0)).isEqualTo("0".getBytes());
-assertThat(allEntries).containsExactlyInAnyOrder("1".getBytes(), 
"yellow".getBytes(),
-"12".getBytes(), "green".getBytes(), "3".getBytes(), 
"grey".getBytes());
+  }
+
+  @Test
+  public void givenCompleteIteration_shouldReturnCursorWithValueOfZero() {
+Map entryMap = new HashMap<>();
+entryMap.put("1", "yellow");
+entryMap.put("2", "green");
+entryMap.put("3", "orange");
+jedis.hmset("colors", entryMap);
+
+ScanParams scanParams = new ScanParams();
+scanParams.count(1);
+ScanResult> result;
+List> allEntries = new ArrayList<>();
+String cursor = "0";
+
+do {
+  result = jedis.hscan("colors", cursor, scanParams);
+  allEntries.addAll(result.getResult());
+  cursor = result.getCursor();
+} while (!result.isCompleteIteration());
+
+assertThat(result.getCursor()).isEqualTo("0");
   }
 
   @Test

Review comment:
   There are some other tests (that Darrel and I added) that check exact 
matches between what's expected and what's returned.  Given previous 
comments/changes (and knowing that native Redis doesn't guarantee an element 
will only be returned once), I'm wondering if it makes sense to change these as 
well to check `containsAll()` vs. `containsExactlyInAnyOrder()` or `equals()`, 
etc.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294192#comment-17294192
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r583045619



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -237,15 +316,40 @@ public void 
givenMultipleCounts_returnsAllEntriesWithoutDuplicates() {
 String cursor = "0";
 
 do {
-  result = (List) jedis.sendCommand(Protocol.Command.HSCAN, 
"colors", cursor, "COUNT",
-  "2", "COUNT", "1");
+  result = (List) jedis.sendCommand(Protocol.Command.HSCAN,
+  "colors",
+  cursor,
+  "COUNT", "2",
+  "COUNT", "1");
+
   allEntries.addAll((List) result.get(1));
   cursor = new String((byte[]) result.get(0));
 } while (!Arrays.equals((byte[]) result.get(0), "0".getBytes()));
 
 assertThat((byte[]) result.get(0)).isEqualTo("0".getBytes());
-assertThat(allEntries).containsExactlyInAnyOrder("1".getBytes(), 
"yellow".getBytes(),
-"12".getBytes(), "green".getBytes(), "3".getBytes(), 
"grey".getBytes());

Review comment:
   I know this was removed entirely, but maybe we could just change this to 
check that all the expected elements are there (`.containsAll()`)... since 
there may be duplicates, but it is guaranteed that all elements present for the 
full iteration will be returned at least once.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8905) Introduce JarDeploymentService

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294191#comment-17294191
 ] 

ASF subversion and git services commented on GEODE-8905:


Commit f2636e0fbfd898f8c213751381040500922ebdf8 in geode's branch 
refs/heads/develop from Udo Kohlmeyer
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=f2636e0 ]

Revert "GEODE-8905: Introduce JarDeploymentService (#5989)" (#6078)

This reverts commit e32c3076

> Introduce JarDeploymentService
> --
>
> Key: GEODE-8905
> URL: https://issues.apache.org/jira/browse/GEODE-8905
> Project: Geode
>  Issue Type: Improvement
>  Components: gfsh, management
>Reporter: Patrick Johnsn
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> Introduce a JarDeploymentService interface that will allow us to interchange 
> the current way of deploying jars with the new modular approach.
>  
> There will be an implementation that delegates to the existing JarDeployer 
> and will maintain current behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8905) Introduce JarDeploymentService

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294189#comment-17294189
 ] 

ASF GitHub Bot commented on GEODE-8905:
---

kohlmu-pivotal merged pull request #6078:
URL: https://github.com/apache/geode/pull/6078


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Introduce JarDeploymentService
> --
>
> Key: GEODE-8905
> URL: https://issues.apache.org/jira/browse/GEODE-8905
> Project: Geode
>  Issue Type: Improvement
>  Components: gfsh, management
>Reporter: Patrick Johnsn
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> Introduce a JarDeploymentService interface that will allow us to interchange 
> the current way of deploying jars with the new modular approach.
>  
> There will be an implementation that delegates to the existing JarDeployer 
> and will maintain current behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8995) Redis-compatibility: comply with legal

2021-03-02 Thread Hale Bales (Jira)
Hale Bales created GEODE-8995:
-

 Summary: Redis-compatibility: comply with legal
 Key: GEODE-8995
 URL: https://issues.apache.org/jira/browse/GEODE-8995
 Project: Geode
  Issue Type: Improvement
  Components: redis
Affects Versions: 1.14.0
Reporter: Hale Bales


change occurrences of "redis" to "redis-compatibility"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8979) CI Failure: SSLSocketHostNameVerificationIntegrationTest

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294069#comment-17294069
 ] 

ASF GitHub Bot commented on GEODE-8979:
---

echobravopapa commented on a change in pull request #6079:
URL: https://github.com/apache/geode/pull/6079#discussion_r586011011



##
File path: 
geode-core/src/integrationTest/java/org/apache/geode/internal/net/SSLSocketHostNameVerificationIntegrationTest.java
##
@@ -211,18 +211,17 @@ private Thread startServerNIO(final ServerSocket 
serverSocket, int timeoutMillis
   } catch (Throwable throwable) {
 serverException = throwable;
   } finally {
-if (engine != null && socket != null) {
+if (engine != null) {

Review comment:
   null check is no longer needed?





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> CI Failure: SSLSocketHostNameVerificationIntegrationTest
> 
>
> Key: GEODE-8979
> URL: https://issues.apache.org/jira/browse/GEODE-8979
> Project: Geode
>  Issue Type: Test
>  Components: membership, messaging
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Major
>  Labels: pull-request-available
>
> This test failed in a CI IntegrationTest run with this exception:
> {noformat}
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest > 
> nioHandshakeValidatesHostName[hasSAN=true and doEndPointIdentification=true] 
> FAILED
> org.apache.geode.GemFireIOException: exception closing SSL session
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:409)
> at 
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest.lambda$startServerNIO$3(SSLSocketHostNameVerificationIntegrationTest.java:216)
> Caused by:
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
> at sun.nio.ch.IOUtil.write(IOUtil.java:51)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:403)
> ... 1 more
> {noformat}
> It looks like the test needs to have a try/catch for IOException when closing 
> the NioSslEngine.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8671) Two threads calling get and retrieve the same PdxInstance, resulting in corruption

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294066#comment-17294066
 ] 

ASF GitHub Bot commented on GEODE-8671:
---

kirklund edited a comment on pull request #5925:
URL: https://github.com/apache/geode/pull/5925#issuecomment-789321362


   > Looks like you have a few small changes to make but I'll give my approval 
now. Please consider adding unit test coverage for the changes in LocalRegion. 
There is an existing `LocalRegionTest` that uses Mockito. I also suggest you 
remove the `tearDown` since it's doing the same thing that the 
`DistributedBlackboard` Rule does after every test method.
   
   By the way, I verified that you don't need to invoke 
`DUnitBlackboard.initBlackboard()` in the `tearDown`. The Rule completely 
dereferences the instance of `DUnitBlackboard` and so it becomes available to 
GC. The Rule effectively handles the initialization and cleanup of 
`DUnitBlackboard` so that a test doesn't need to do this.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Two threads calling get and retrieve the same PdxInstance, resulting in 
> corruption
> --
>
> Key: GEODE-8671
> URL: https://issues.apache.org/jira/browse/GEODE-8671
> Project: Geode
>  Issue Type: Improvement
>  Components: regions
>Reporter: Dan Smith
>Assignee: Jianxia Chen
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> Even if copy-on-read is set to true, two threads calling get on a partitioned 
> region can end up with the same PdxInstance object.
> This is problematic because some PdxInstances methods are not thread safe. 
> Although the underlying bytes are immutatable, the PDXInstance has a 
> ByteSource with a position field that changes. That means two threads doing 
> serialization or calling toString on the PdxInstance could result in one or 
> more threads getting a corrupt read.
> It looks like they are ending up with the same instance because of the 
> behavior in LocalRegion.optimizedGetObject. We use futures to make sure there 
> is only 1 get that goes through, and both threads receive the same value.
> 
> Ending up in optimizedGetObject requires a race with the put, because if the 
> value was in the cache at the beginning of the get it would be returned 
> earlier in the get process.
> I put a test that reproduces this issue here -   
> https://github.com/upthewaterspout/geode/pull/new/feature/pdx-instances-shared



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8671) Two threads calling get and retrieve the same PdxInstance, resulting in corruption

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294064#comment-17294064
 ] 

ASF GitHub Bot commented on GEODE-8671:
---

kirklund commented on pull request #5925:
URL: https://github.com/apache/geode/pull/5925#issuecomment-789321362


   > Looks like you have a few small changes to make but I'll give my approval 
now. Please consider adding unit test coverage for the changes in LocalRegion. 
There is an existing `LocalRegionTest` that uses Mockito. I also suggest you 
remove the `tearDown` since it's doing the same thing that the 
`DistributedBlackboard` Rule does after every test method.
   
   By the way, I verified that you don't need to invoke 
`DUnitBlackboard.initBlackboard()` in the `tearDown`. The Rule completely 
dereferences the instance of `DUnitBlackboard` and so it becomes available to 
GC. The Rule handles the initialization and cleanup of `DUnitBlackboard`.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Two threads calling get and retrieve the same PdxInstance, resulting in 
> corruption
> --
>
> Key: GEODE-8671
> URL: https://issues.apache.org/jira/browse/GEODE-8671
> Project: Geode
>  Issue Type: Improvement
>  Components: regions
>Reporter: Dan Smith
>Assignee: Jianxia Chen
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> Even if copy-on-read is set to true, two threads calling get on a partitioned 
> region can end up with the same PdxInstance object.
> This is problematic because some PdxInstances methods are not thread safe. 
> Although the underlying bytes are immutatable, the PDXInstance has a 
> ByteSource with a position field that changes. That means two threads doing 
> serialization or calling toString on the PdxInstance could result in one or 
> more threads getting a corrupt read.
> It looks like they are ending up with the same instance because of the 
> behavior in LocalRegion.optimizedGetObject. We use futures to make sure there 
> is only 1 get that goes through, and both threads receive the same value.
> 
> Ending up in optimizedGetObject requires a race with the put, because if the 
> value was in the cache at the beginning of the get it would be returned 
> earlier in the get process.
> I put a test that reproduces this issue here -   
> https://github.com/upthewaterspout/geode/pull/new/feature/pdx-instances-shared



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8097) ClientClusterManagementServiceTest expects 1 callback but gets 295

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294050#comment-17294050
 ] 

ASF subversion and git services commented on GEODE-8097:


Commit 8a0dc1aae8636a44c4fa4d5d30dcbc0efafb4430 in geode's branch 
refs/heads/support/1.14 from Jinmei Liao
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=8a0dc1a ]

GEODE-8097: expects at least one callback (#6049)

(cherry picked from commit e08cad4d7198f9bd82614ca9b7e631df36b38757)


> ClientClusterManagementServiceTest expects 1 callback but gets 295
> --
>
> Key: GEODE-8097
> URL: https://issues.apache.org/jira/browse/GEODE-8097
> Project: Geode
>  Issue Type: Bug
>  Components: management
>Reporter: Bill Burcham
>Assignee: Jinmei Liao
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
> Fix For: 1.15.0
>
>
> CI test failed here: 
> https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsUnitTestOpenJDK8/builds/138#A
> {code}
> org.apache.geode.management.internal.ClientClusterManagementServiceTest > 
> getOperationCallsSubmitMessageAndReturnsFuture FAILED
> org.awaitility.core.ConditionTimeoutException: Assertion condition 
> defined as a lambda expression in 
> org.apache.geode.management.internal.ClientClusterManagementServiceTest 
> clusterManagementServiceTransport.submitMessageForGetOperation(
> 
> same(org.apache.geode.management.operation.RebalanceOperation@6d6b2db0),
> same("opId")
> );
> Wanted 1 time:
> -> at 
> org.apache.geode.management.internal.ClientClusterManagementServiceTest.lambda$getOperationCallsSubmitMessageAndReturnsFuture$1(ClientClusterManagementServiceTest.java:170)
> But was 295 times:
> -> at 
> org.apache.geode.management.internal.ClientClusterManagementService.get(ClientClusterManagementService.java:114)
> -> at 
> org.apache.geode.management.internal.ClientClusterManagementService.get(ClientClusterManagementService.java:114)
> -> at 
> org.apache.geode.management.internal.ClientClusterManagementService.get(ClientClusterManagementService.java:114)
> …
> {code}
> Ran it 100 times in IntelliJ with no failures.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-7309) Upgrade Lucene from 6.6.2 to 8.2.0

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294042#comment-17294042
 ] 

ASF GitHub Bot commented on GEODE-7309:
---

kirklund commented on a change in pull request #6076:
URL: https://github.com/apache/geode/pull/6076#discussion_r585984716



##
File path: 
geode-lucene/src/upgradeTest/java/org/apache/geode/cache/lucene/LuceneQueryWithDifferentVersions.java
##
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.cache.lucene;
+
+import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.catchThrowable;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import org.apache.geode.cache.RegionShortcut;
+import org.apache.geode.distributed.internal.InternalLocator;
+import org.apache.geode.internal.AvailablePortHelper;
+import org.apache.geode.test.dunit.DistributedTestUtils;
+import org.apache.geode.test.dunit.Host;
+import org.apache.geode.test.dunit.NetworkUtils;
+import org.apache.geode.test.dunit.VM;
+
+public class LuceneQueryWithDifferentVersions
+extends LuceneSearchWithRollingUpgradeDUnit {
+
+  // 2 locator, 2 servers
+  @Test
+  public void luceneQueryCannotBeExecuted()
+  throws Exception {
+final Host host = Host.getHost(0);
+VM locator1 = host.getVM(oldVersion, 0);
+VM locator2 = host.getVM(oldVersion, 1);
+VM server1 = host.getVM(oldVersion, 2);
+VM server2 = host.getVM(oldVersion, 3);
+
+final String regionName = "aRegion";
+RegionShortcut shortcut = RegionShortcut.PARTITION_REDUNDANT;
+String regionType = "partitionedRedundant";
+
+int[] locatorPorts = AvailablePortHelper.getRandomAvailableTCPPorts(2);
+locator1.invoke(() -> 
DistributedTestUtils.deleteLocatorStateFile(locatorPorts));
+locator2.invoke(() -> 
DistributedTestUtils.deleteLocatorStateFile(locatorPorts));
+
+String hostName = NetworkUtils.getServerHostName(host);
+String locatorString = getLocatorString(locatorPorts);
+try {
+  locator1.invoke(
+  invokeStartLocator(hostName, locatorPorts[0], 
getLocatorPropertiesPre91(locatorString)));
+  locator2.invoke(
+  invokeStartLocator(hostName, locatorPorts[1], 
getLocatorPropertiesPre91(locatorString)));
+  
invokeRunnableInVMs(invokeCreateCache(getSystemProperties(locatorPorts)), 
server1, server2);
+
+  // Locators before 1.4 handled configuration asynchronously.
+  // We must wait for configuration configuration to be ready, or confirm 
that it is disabled.
+  locator1.invoke(
+  () -> await()

Review comment:
   I would get rid of the 
`!InternalLocator.getLocator().getConfig().getEnableClusterConfiguration()` 
unless you're parameterizing it to run both with and without cluster config. 
Then you can simplify it to:
   ```
   await().untilAsserted(() -> {
 
assertThat(InternalLocator.getLocator().isSharedConfigurationRunning()).isTrue();
   }
   ```

##
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/InternalCacheForClientAccess.java
##
@@ -1225,6 +1226,14 @@ public void unlockDiskStore(String diskStoreName) {
 
   }
 
+  @Override
+  public boolean hasMemberOlderThan(KnownVersion version) {
+return getMembers().stream()

Review comment:
   Can you just have this method delegate to `delegate` like all the other 
methods are doing?
   ```
   @Override
   public boolean hasMemberOlderThan(KnownVersion version) {
 return delegate.hasMemberOlderThan(version);
   }
   ```
   You should not have to add the same method body to both `GemFireCacheImpl` 
and `InternalCacheForClientAccess`.
   

##
File path: 
geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
##
@@ -143,8 +145,35 @@ public void delete(Object key) throws IOException {
   @Override
   public void query(Query query, int limit, IndexResultCollector collector) 
throws IOException {
 long start = stats.startRepositoryQuery(

[jira] [Resolved] (GEODE-8986) change benchmarks baseline to version 1.13.1

2021-03-02 Thread Hale Bales (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hale Bales resolved GEODE-8986.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

> change benchmarks baseline to version 1.13.1
> 
>
> Key: GEODE-8986
> URL: https://issues.apache.org/jira/browse/GEODE-8986
> Project: Geode
>  Issue Type: Task
>  Components: benchmarks, ci
>Reporter: Hale Bales
>Assignee: Hale Bales
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> In CI, the current baseline is 1.13.0. It should be changed to the most 
> recent version, which is currently 1.13.1



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8872) Add client option, to request locators internal host addresses

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294031#comment-17294031
 ] 

ASF GitHub Bot commented on GEODE-8872:
---

DonalEvans commented on a change in pull request #5948:
URL: https://github.com/apache/geode/pull/5948#discussion_r585940678



##
File path: geode-core/src/main/java/org/apache/geode/cache/client/Pool.java
##
@@ -207,6 +207,13 @@ default boolean getThreadLocalConnections() {
*/
   boolean getMultiuserAuthentication();
 
+  /**
+   * Returns true ir request locator internal address is enabled on this pool.
+   *
+   * @see PoolFactory#setRequestLocatorInternalAddress(boolean)
+   * @since Geode 1.14
+   */
+  boolean getRequestLocatorInternalAddress();

Review comment:
   This method name is a little confusing, as it might be mistaken for a 
getter for the locator internal address itself. It might be better as 
"isRequestLocatorInternalAddressEnabled", and the corresponding setter as 
"setRequestLocatorInternalAddressEnabled".

##
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/GridAdvisor.java
##
@@ -257,6 +257,9 @@ public Set adviseProfileRemove() {
 
 private String host;
 
+/** valid only for ControllerProfile */
+private String internalHost;

Review comment:
   It doesn't seem correct to have a field in a parent class that only 
belongs to one of its child classes. Can this be moved into ControllerProfile?

##
File path: 
geode-core/src/main/java/org/apache/geode/cache/client/PoolFactory.java
##
@@ -220,6 +220,14 @@
* @since GemFire 6.5
*/
   boolean DEFAULT_MULTIUSER_AUTHENTICATION = false;
+  /**
+   * The default value for whether to request locator internal address.

Review comment:
   Slightly more detail would be good here, explaining when exactly the 
locator internal address would be requested if this was set to true.

##
File path: geode-core/src/main/java/org/apache/geode/cache/client/Pool.java
##
@@ -207,6 +207,13 @@ default boolean getThreadLocalConnections() {
*/
   boolean getMultiuserAuthentication();
 
+  /**
+   * Returns true ir request locator internal address is enabled on this pool.

Review comment:
   Typo here, should be "Returns true if..."

##
File path: 
geode-dunit/src/main/java/org/apache/geode/cache/client/internal/LocatorTestBase.java
##
@@ -141,6 +141,34 @@ protected int startLocator(final String hostName, final 
String otherLocators) th
 return locator.getPort();
   }
 
+  protected int startLocator(final String hostName, final String otherLocators,

Review comment:
   This method is never used.

##
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/GridAdvisor.java
##
@@ -432,6 +447,17 @@ public boolean equals(Object obj) {
 if (this.gp.getPort() == other.gp.getPort()) {
   final String thisHost = this.gp.getHost();
   final String otherHost = other.gp.getHost();
+  final String thisInternalHost = this.gp.getInternalHost();

Review comment:
   If internalHost is being included in `equals()` calculations, it should 
probably also be included in hashCode()`.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Add client option, to request locators internal host addresses 
> ---
>
> Key: GEODE-8872
> URL: https://issues.apache.org/jira/browse/GEODE-8872
> Project: Geode
>  Issue Type: New Feature
>  Components: client/server
>Reporter: Mario Ivanac
>Assignee: Mario Ivanac
>Priority: Major
>  Labels: pull-request-available
>
> Additional option for clients, when pool is created, to request locators 
> internal host addresses.
> When sending LocatorListRequest in some cases we need to get internal host 
> addresses.
> To describe use case:
> When deploying geode, for locator we define hostname-for-clients. This is 
> external address used for WAN, and external clients.
> If we also deploy some clients in internal network (for example in the same 
> kubernetes cluster as geode), then for those clients to connect with locator, 
> communication will go from internal network to external, then from external 
> to internal. This increases latency, and we should communicate over the 
> shortest path.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8886) When performing a rolling upgrade to 1.14 from an older version some messages are not delivered

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294024#comment-17294024
 ] 

ASF subversion and git services commented on GEODE-8886:


Commit dcb1096130925e2794010c7a7ab8accfbf49cb3e in geode's branch 
refs/heads/develop from mhansonp
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=dcb1096 ]

GEODE-8886 fix (#6059)

Getting rid of a write and a read in the wrong place...
sanctionedDataSerializables.txt needed updating.
New test for encoding and decoding of packets.
New test for backwards compatibility


> When performing a rolling upgrade to 1.14 from an older version some messages 
> are not delivered
> ---
>
> Key: GEODE-8886
> URL: https://issues.apache.org/jira/browse/GEODE-8886
> Project: Geode
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
>Reporter: Mark Hanson
>Assignee: Mark Hanson
>Priority: Major
>  Labels: pull-request-available
>
> We are running a test where we are performing a rolling upgrade from an older 
> version to 1.14.0 and we are finding that for whatever reason in this test 
> that not all "updates" are being passed to all servers and clients while 
> using gateway senders. It is not clear that gateway senders are the cause, 
> but at this point, it is just an interesting point. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8886) When performing a rolling upgrade to 1.14 from an older version some messages are not delivered

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294023#comment-17294023
 ] 

ASF GitHub Bot commented on GEODE-8886:
---

mhansonp merged pull request #6059:
URL: https://github.com/apache/geode/pull/6059


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> When performing a rolling upgrade to 1.14 from an older version some messages 
> are not delivered
> ---
>
> Key: GEODE-8886
> URL: https://issues.apache.org/jira/browse/GEODE-8886
> Project: Geode
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.14.0
>Reporter: Mark Hanson
>Assignee: Mark Hanson
>Priority: Major
>  Labels: pull-request-available
>
> We are running a test where we are performing a rolling upgrade from an older 
> version to 1.14.0 and we are finding that for whatever reason in this test 
> that not all "updates" are being passed to all servers and clients while 
> using gateway senders. It is not clear that gateway senders are the cause, 
> but at this point, it is just an interesting point. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8605) Alter some GW senders attributes in runtime

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17294016#comment-17294016
 ] 

ASF GitHub Bot commented on GEODE-8605:
---

bschuchardt commented on a change in pull request #5630:
URL: https://github.com/apache/geode/pull/5630#discussion_r566211293



##
File path: 
geode-core/src/main/resources/org/apache/geode/internal/sanctioned-geode-core-serializables.txt
##
@@ -116,6 +116,7 @@ 
org/apache/geode/cache/client/internal/ContainsKeyOp$MODE,false
 org/apache/geode/cache/client/internal/TXSynchronizationOp$CompletionType,false
 
org/apache/geode/cache/client/internal/pooling/ConnectionDestroyedException,true,-6918516787578041316
 
org/apache/geode/cache/configuration/CacheConfig$AsyncEventQueue,false,asyncEventListener:org/apache/geode/cache/configuration/DeclarableType,batchSize:java/lang/String,batchTimeInterval:java/lang/String,diskStoreName:java/lang/String,diskSynchronous:java/lang/Boolean,dispatcherThreads:java/lang/String,enableBatchConflation:java/lang/Boolean,forwardExpirationDestroy:java/lang/Boolean,gatewayEventFilters:java/util/List,gatewayEventSubstitutionFilter:org/apache/geode/cache/configuration/DeclarableType,id:java/lang/String,maximumQueueMemory:java/lang/String,orderPolicy:java/lang/String,parallel:java/lang/Boolean,pauseEventProcessing:java/lang/Boolean,persistent:java/lang/Boolean
+org/apache/geode/cache/configuration/CacheConfig$GatewaySender,false,alertThreshold:java/lang/String,batchSize:java/lang/String,batchTimeInterval:java/lang/String,diskStoreName:java/lang/String,diskSynchronous:java/lang/Boolean,dispatcherThreads:java/lang/String,enableBatchConflation:java/lang/Boolean,enablePersistence:java/lang/Boolean,enforceThreadsConnectSameReceiver:java/lang/Boolean,gatewayEventFilters:java/util/List,gatewayEventSubstitutionFilter:org/apache/geode/cache/configuration/DeclarableType,gatewayTransportFilters:java/util/List,groupTransactionEvents:java/lang/Boolean,id:java/lang/String,manualStart:java/lang/Boolean,maximumQueueMemory:java/lang/String,orderPolicy:java/lang/String,parallel:java/lang/Boolean,remoteDistributedSystemId:java/lang/String,socketBufferSize:java/lang/String,socketReadTimeout:java/lang/String

Review comment:
   What are the circumstances where CacheConfig$GatewaySender is 
serialized?  Will this cause backward-compatibility issues during a rolling 
upgrade?
   
   Please add a serialversionuid field to GatewaySender.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Alter some GW senders attributes in runtime
> ---
>
> Key: GEODE-8605
> URL: https://issues.apache.org/jira/browse/GEODE-8605
> Project: Geode
>  Issue Type: New Feature
>  Components: docs, gfsh, wan
>Reporter: Mario Ivanac
>Assignee: Mario Ivanac
>Priority: Major
>  Labels: needs-review, pull-request-available
>
> We would like to introduce new command "alter gateway-sender" which would 
> update some parameters in runtime. For now parameters of interest are:
>  * {color:#6a8759}alert-threshold{color}
>  * {color:#6a8759}batch-size{color}
>  * {color:#6a8759}batch-time-interval{color}
>  * {color:#6a8759}group-transaction-events{color}
>  * {color:#6a8759}gateway-event-filter{color}
>  * {color:#6a8759}gateway-transport-filter{color}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8994) Log line for EventId ctor potentially contains garbage string

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293999#comment-17293999
 ] 

ASF GitHub Bot commented on GEODE-8994:
---

pdxcodemonkey opened a new pull request #756:
URL: https://github.com/apache/geode-native/pull/756


   - memId isn't a string, need to convert it first or we'll log garbage.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Log line for EventId ctor potentially contains garbage string
> -
>
> Key: GEODE-8994
> URL: https://issues.apache.org/jira/browse/GEODE-8994
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Reporter: Blake Bender
>Assignee: Blake Bender
>Priority: Major
>
> The following logging was recently added to geode-native for debugging:
> ```
> LOGDEBUG("EventId::EventId(%p) - memId=%s, memIdLen=%d, thr=%" PRId64
>  ", seq=%" PRId64, this, memId, memIdLen, thr, seq);
> ```
> The variable `memId` in this case is of type `char*` but is NOT a valid 
> string, rather just a byte buffer.  Logging it this way can potentially print 
> out garbage, causing errors in parsing tools like gnmsg or other apps when 
> attempting to read it.  `memId` needs to be decoded into a string 
> representation of the bytes, and that logged, rather than attempting to print 
> it out raw.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8979) CI Failure: SSLSocketHostNameVerificationIntegrationTest

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293998#comment-17293998
 ] 

ASF GitHub Bot commented on GEODE-8979:
---

bschuchardt opened a new pull request #6079:
URL: https://github.com/apache/geode/pull/6079


   This test was closing a client socket before ensuring that a thread it
   had created was finished.  If the socket is closed quickly enough it
   could cause that thread to get an IOException and cause the test to
   fail.
   
   The fix is to ensure that the thread is finished before closing the
   client socket.
   
   @kamilla1201 
   
   Thank you for submitting a contribution to Apache Geode.
   
   In order to streamline the review of the contribution we ask you
   to ensure the following steps have been taken:
   
   ### For all changes:
   - [x] Is there a JIRA ticket associated with this PR? Is it referenced in 
the commit message?
   
   - [x] Has your PR been rebased against the latest commit within the target 
branch (typically `develop`)?
   
   - [x] Is your initial contribution a single, squashed commit?
   
   - [x] Does `gradlew build` run cleanly?
   
   - [ ] Have you written or updated unit tests to verify your changes?
   
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   
   ### Note:
   Please ensure that once the PR is submitted, check Concourse for build 
issues and
   submit an update to your PR as soon as possible. If you need help, please 
send an
   email to d...@geode.apache.org.
   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> CI Failure: SSLSocketHostNameVerificationIntegrationTest
> 
>
> Key: GEODE-8979
> URL: https://issues.apache.org/jira/browse/GEODE-8979
> Project: Geode
>  Issue Type: Test
>  Components: membership, messaging
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Major
>
> This test failed in a CI IntegrationTest run with this exception:
> {noformat}
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest > 
> nioHandshakeValidatesHostName[hasSAN=true and doEndPointIdentification=true] 
> FAILED
> org.apache.geode.GemFireIOException: exception closing SSL session
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:409)
> at 
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest.lambda$startServerNIO$3(SSLSocketHostNameVerificationIntegrationTest.java:216)
> Caused by:
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
> at sun.nio.ch.IOUtil.write(IOUtil.java:51)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:403)
> ... 1 more
> {noformat}
> It looks like the test needs to have a try/catch for IOException when closing 
> the NioSslEngine.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8979) CI Failure: SSLSocketHostNameVerificationIntegrationTest

2021-03-02 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-8979:
--
Labels: pull-request-available  (was: )

> CI Failure: SSLSocketHostNameVerificationIntegrationTest
> 
>
> Key: GEODE-8979
> URL: https://issues.apache.org/jira/browse/GEODE-8979
> Project: Geode
>  Issue Type: Test
>  Components: membership, messaging
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Major
>  Labels: pull-request-available
>
> This test failed in a CI IntegrationTest run with this exception:
> {noformat}
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest > 
> nioHandshakeValidatesHostName[hasSAN=true and doEndPointIdentification=true] 
> FAILED
> org.apache.geode.GemFireIOException: exception closing SSL session
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:409)
> at 
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest.lambda$startServerNIO$3(SSLSocketHostNameVerificationIntegrationTest.java:216)
> Caused by:
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
> at sun.nio.ch.IOUtil.write(IOUtil.java:51)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:403)
> ... 1 more
> {noformat}
> It looks like the test needs to have a try/catch for IOException when closing 
> the NioSslEngine.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8994) Log line for EventId ctor potentially contains garbage string

2021-03-02 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated GEODE-8994:
--
Labels: pull-request-available  (was: )

> Log line for EventId ctor potentially contains garbage string
> -
>
> Key: GEODE-8994
> URL: https://issues.apache.org/jira/browse/GEODE-8994
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Reporter: Blake Bender
>Assignee: Blake Bender
>Priority: Major
>  Labels: pull-request-available
>
> The following logging was recently added to geode-native for debugging:
> ```
> LOGDEBUG("EventId::EventId(%p) - memId=%s, memIdLen=%d, thr=%" PRId64
>  ", seq=%" PRId64, this, memId, memIdLen, thr, seq);
> ```
> The variable `memId` in this case is of type `char*` but is NOT a valid 
> string, rather just a byte buffer.  Logging it this way can potentially print 
> out garbage, causing errors in parsing tools like gnmsg or other apps when 
> attempting to read it.  `memId` needs to be decoded into a string 
> representation of the bytes, and that logged, rather than attempting to print 
> it out raw.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-8994) Log line for EventId ctor potentially contains garbage string

2021-03-02 Thread Blake Bender (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Blake Bender reassigned GEODE-8994:
---

Assignee: Blake Bender

> Log line for EventId ctor potentially contains garbage string
> -
>
> Key: GEODE-8994
> URL: https://issues.apache.org/jira/browse/GEODE-8994
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Reporter: Blake Bender
>Assignee: Blake Bender
>Priority: Major
>
> The following logging was recently added to geode-native for debugging:
> ```
> LOGDEBUG("EventId::EventId(%p) - memId=%s, memIdLen=%d, thr=%" PRId64
>  ", seq=%" PRId64, this, memId, memIdLen, thr, seq);
> ```
> The variable `memId` in this case is of type `char*` but is NOT a valid 
> string, rather just a byte buffer.  Logging it this way can potentially print 
> out garbage, causing errors in parsing tools like gnmsg or other apps when 
> attempting to read it.  `memId` needs to be decoded into a string 
> representation of the bytes, and that logged, rather than attempting to print 
> it out raw.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8994) Log line for EventId ctor potentially contains garbage string

2021-03-02 Thread Blake Bender (Jira)
Blake Bender created GEODE-8994:
---

 Summary: Log line for EventId ctor potentially contains garbage 
string
 Key: GEODE-8994
 URL: https://issues.apache.org/jira/browse/GEODE-8994
 Project: Geode
  Issue Type: Bug
  Components: native client
Reporter: Blake Bender


The following logging was recently added to geode-native for debugging:

```

LOGDEBUG("EventId::EventId(%p) - memId=%s, memIdLen=%d, thr=%" PRId64
 ", seq=%" PRId64, this, memId, memIdLen, thr, seq);

```

The variable `memId` in this case is of type `char*` but is NOT a valid string, 
rather just a byte buffer.  Logging it this way can potentially print out 
garbage, causing errors in parsing tools like gnmsg or other apps when 
attempting to read it.  `memId` needs to be decoded into a string 
representation of the bytes, and that logged, rather than attempting to print 
it out raw.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-8972) remove shunnedMembers collection from GMSMembership

2021-03-02 Thread Kamilla Aslami (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami reassigned GEODE-8972:
-

Assignee: Kamilla Aslami

> remove shunnedMembers collection from GMSMembership
> ---
>
> Key: GEODE-8972
> URL: https://issues.apache.org/jira/browse/GEODE-8972
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>
> GMSMembership has a _shunnedMembers_ collection that is used to track the IDs 
> of nodes that are no longer part of the cluster.  This collection is no 
> longer needed since we can tell if a node is old by comparing the view ID in 
> its identifier to that of the current view (called _latestView_ in that 
> class.  Checks like this are already in place in some parts of the code.
> All uses of _shunnedMembers_ should be replaced with this check.
> MembershipView view = latestView;
> boolean shunned = memberId.getVmViewId() <= view.getViewId() && 
> !view.contains(memberId);



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Closed] (GEODE-8993) Need Access to BuildBot for Storing Daily Builds

2021-03-02 Thread Michael Martell (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Martell closed GEODE-8993.
--

> Need Access to BuildBot for Storing Daily Builds
> 
>
> Key: GEODE-8993
> URL: https://issues.apache.org/jira/browse/GEODE-8993
> Project: Geode
>  Issue Type: Wish
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>
> The Apache geode-native project would like to host daily build artifacts at 
> ci.apache.org using Buildbot.
> Refiled as INFRA ticket, so closing this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8993) Need Access to BuildBot for Storing Daily Builds

2021-03-02 Thread Michael Martell (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Martell updated GEODE-8993:
---
Description: 
The Apache geode-native project would like to host daily build artifacts at 
ci.apache.org using Buildbot.

Refiled as INFRA ticket, so closing this.

  was:The Apache geode-native project would like to host daily build artifacts 
at ci.apache.org using Buildbot.


> Need Access to BuildBot for Storing Daily Builds
> 
>
> Key: GEODE-8993
> URL: https://issues.apache.org/jira/browse/GEODE-8993
> Project: Geode
>  Issue Type: Wish
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>
> The Apache geode-native project would like to host daily build artifacts at 
> ci.apache.org using Buildbot.
> Refiled as INFRA ticket, so closing this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-8993) Need Access to BuildBot for Storing Daily Builds

2021-03-02 Thread Michael Martell (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8993?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Martell resolved GEODE-8993.

Resolution: Invalid

> Need Access to BuildBot for Storing Daily Builds
> 
>
> Key: GEODE-8993
> URL: https://issues.apache.org/jira/browse/GEODE-8993
> Project: Geode
>  Issue Type: Wish
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>
> The Apache geode-native project would like to host daily build artifacts at 
> ci.apache.org using Buildbot.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-8979) CI Failure: SSLSocketHostNameVerificationIntegrationTest

2021-03-02 Thread Bruce J Schuchardt (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruce J Schuchardt reassigned GEODE-8979:
-

Assignee: Bruce J Schuchardt

> CI Failure: SSLSocketHostNameVerificationIntegrationTest
> 
>
> Key: GEODE-8979
> URL: https://issues.apache.org/jira/browse/GEODE-8979
> Project: Geode
>  Issue Type: Test
>  Components: membership, messaging
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Major
>
> This test failed in a CI IntegrationTest run with this exception:
> {noformat}
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest > 
> nioHandshakeValidatesHostName[hasSAN=true and doEndPointIdentification=true] 
> FAILED
> org.apache.geode.GemFireIOException: exception closing SSL session
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:409)
> at 
> org.apache.geode.internal.net.SSLSocketHostNameVerificationIntegrationTest.lambda$startServerNIO$3(SSLSocketHostNameVerificationIntegrationTest.java:216)
> Caused by:
> java.io.IOException: Connection reset by peer
> at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
> at sun.nio.ch.IOUtil.write(IOUtil.java:51)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470)
> at 
> org.apache.geode.internal.net.NioSslEngine.close(NioSslEngine.java:403)
> ... 1 more
> {noformat}
> It looks like the test needs to have a try/catch for IOException when closing 
> the NioSslEngine.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8905) Introduce JarDeploymentService

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293949#comment-17293949
 ] 

ASF GitHub Bot commented on GEODE-8905:
---

kohlmu-pivotal opened a new pull request #6078:
URL: https://github.com/apache/geode/pull/6078


   This reverts commit e32c3076
   
   Thank you for submitting a contribution to Apache Geode.
   
   In order to streamline the review of the contribution we ask you
   to ensure the following steps have been taken:
   
   ### For all changes:
   - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in 
the commit message?
   
   - [ ] Has your PR been rebased against the latest commit within the target 
branch (typically `develop`)?
   
   - [ ] Is your initial contribution a single, squashed commit?
   
   - [ ] Does `gradlew build` run cleanly?
   
   - [ ] Have you written or updated unit tests to verify your changes?
   
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   
   ### Note:
   Please ensure that once the PR is submitted, check Concourse for build 
issues and
   submit an update to your PR as soon as possible. If you need help, please 
send an
   email to d...@geode.apache.org.
   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Introduce JarDeploymentService
> --
>
> Key: GEODE-8905
> URL: https://issues.apache.org/jira/browse/GEODE-8905
> Project: Geode
>  Issue Type: Improvement
>  Components: gfsh, management
>Reporter: Patrick Johnsn
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> Introduce a JarDeploymentService interface that will allow us to interchange 
> the current way of deploying jars with the new modular approach.
>  
> There will be an implementation that delegates to the existing JarDeployer 
> and will maintain current behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8949) Create a Continuous Integration Pipeline

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293944#comment-17293944
 ] 

ASF GitHub Bot commented on GEODE-8949:
---

pdxcodemonkey merged pull request #754:
URL: https://github.com/apache/geode-native/pull/754


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create a Continuous Integration Pipeline
> 
>
> Key: GEODE-8949
> URL: https://issues.apache.org/jira/browse/GEODE-8949
> Project: Geode
>  Issue Type: Improvement
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>  Labels: pull-request-available
>
> This will be our open source CI for publishing to the Apache Software 
> Foundation. Two primary tenets are:
>  * based on Concourse
>  * PRs will trigger the CI pipeline and can't be merged until they pass the CI
> Note: The bulk of this work has been completed in draft [PR 
> #716|http://github.com/apache/geode-native/pull/716]. See that PR for further 
> details.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8949) Create a Continuous Integration Pipeline

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293943#comment-17293943
 ] 

ASF subversion and git services commented on GEODE-8949:


Commit 38fa9eef45da2a0743410d24c5852e8dd3a69494 in geode-native's branch 
refs/heads/develop from Jacob Barrett
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=38fa9ee ]

GEODE-8949: Versioning improvements (#754)

* Download latest Geode.
* Don't bake Geode into images.
* Trigger packer images.
* Configurable version for semver and geode resource.
* Adds version bump.
* Uses geode latest in source checks.

> Create a Continuous Integration Pipeline
> 
>
> Key: GEODE-8949
> URL: https://issues.apache.org/jira/browse/GEODE-8949
> Project: Geode
>  Issue Type: Improvement
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>  Labels: pull-request-available
>
> This will be our open source CI for publishing to the Apache Software 
> Foundation. Two primary tenets are:
>  * based on Concourse
>  * PRs will trigger the CI pipeline and can't be merged until they pass the CI
> Note: The bulk of this work has been completed in draft [PR 
> #716|http://github.com/apache/geode-native/pull/716]. See that PR for further 
> details.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-8975) Correct naming in SnapshotOptions

2021-03-02 Thread Jacob Barrett (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8975?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacob Barrett resolved GEODE-8975.
--
Fix Version/s: 1.15.0
   Resolution: Fixed

> Correct naming in SnapshotOptions
> -
>
> Key: GEODE-8975
> URL: https://issues.apache.org/jira/browse/GEODE-8975
> Project: Geode
>  Issue Type: Improvement
>  Components: snapshot
>Reporter: Jacob Barrett
>Assignee: Jacob Barrett
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> SnapshotOptions uses the pre-Geode product name. Correct this to use Geode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8975) Correct naming in SnapshotOptions

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293928#comment-17293928
 ] 

ASF subversion and git services commented on GEODE-8975:


Commit a9b25a14f71edcd4cf4072f5e2148c21abd64a02 in geode's branch 
refs/heads/develop from Jacob Barrett
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=a9b25a14 ]

GEODE-8975: Deprecate old format. (#6058)

Deprecates old format name.
Creates new format name.

> Correct naming in SnapshotOptions
> -
>
> Key: GEODE-8975
> URL: https://issues.apache.org/jira/browse/GEODE-8975
> Project: Geode
>  Issue Type: Improvement
>  Components: snapshot
>Reporter: Jacob Barrett
>Assignee: Jacob Barrett
>Priority: Major
>  Labels: pull-request-available
>
> SnapshotOptions uses the pre-Geode product name. Correct this to use Geode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8975) Correct naming in SnapshotOptions

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293927#comment-17293927
 ] 

ASF GitHub Bot commented on GEODE-8975:
---

pivotal-jbarrett merged pull request #6058:
URL: https://github.com/apache/geode/pull/6058


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Correct naming in SnapshotOptions
> -
>
> Key: GEODE-8975
> URL: https://issues.apache.org/jira/browse/GEODE-8975
> Project: Geode
>  Issue Type: Improvement
>  Components: snapshot
>Reporter: Jacob Barrett
>Assignee: Jacob Barrett
>Priority: Major
>  Labels: pull-request-available
>
> SnapshotOptions uses the pre-Geode product name. Correct this to use Geode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8856) Persist gateway-sender state within Cluster Configuration

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293925#comment-17293925
 ] 

ASF GitHub Bot commented on GEODE-8856:
---

mhansonp commented on pull request #6036:
URL: https://github.com/apache/geode/pull/6036#issuecomment-789133902


   Restarted concourse-ci/DistributedTestOpenJDK11 run.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Persist gateway-sender state within Cluster Configuration
> -
>
> Key: GEODE-8856
> URL: https://issues.apache.org/jira/browse/GEODE-8856
> Project: Geode
>  Issue Type: Improvement
>Reporter: Jakov Varenina
>Assignee: Jakov Varenina
>Priority: Major
>  Labels: pull-request-available
>
> More details in following RFC: 
> https://cwiki.apache.org/confluence/display/GEODE/Persist+gateway-sender+state+within+Cluster+Configuration?moved=true
> All changes or findings during development will be reflected in above RFC. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8949) Create a Continuous Integration Pipeline

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293919#comment-17293919
 ] 

ASF GitHub Bot commented on GEODE-8949:
---

pivotal-jbarrett commented on a change in pull request #754:
URL: https://github.com/apache/geode-native/pull/754#discussion_r585822577



##
File path: ci/lib/templates.lib.txt
##
@@ -90,7 +90,7 @@ run-clang-tidy -j $(nproc) -quiet
 
 (@ def clang_format_bash_task(): -@)
 set -ueo pipefail
-export GEODE_HOME=$(pwd)/geode/expanded/apache-geode-$(cat geode/version)
+export GEODE_HOME=$(pwd)/geode

Review comment:
   Sort of out of scope for this PR. I agree making them consistent would 
be nice.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create a Continuous Integration Pipeline
> 
>
> Key: GEODE-8949
> URL: https://issues.apache.org/jira/browse/GEODE-8949
> Project: Geode
>  Issue Type: Improvement
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>  Labels: pull-request-available
>
> This will be our open source CI for publishing to the Apache Software 
> Foundation. Two primary tenets are:
>  * based on Concourse
>  * PRs will trigger the CI pipeline and can't be merged until they pass the CI
> Note: The bulk of this work has been completed in draft [PR 
> #716|http://github.com/apache/geode-native/pull/716]. See that PR for further 
> details.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8993) Need Access to BuildBot for Storing Daily Builds

2021-03-02 Thread Michael Martell (Jira)
Michael Martell created GEODE-8993:
--

 Summary: Need Access to BuildBot for Storing Daily Builds
 Key: GEODE-8993
 URL: https://issues.apache.org/jira/browse/GEODE-8993
 Project: Geode
  Issue Type: Wish
  Components: native client
Reporter: Michael Martell


The Apache geode-native project would like to host daily build artifacts at 
ci.apache.org using Buildbot.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8950) Benchmark failure - P2pPartitionedPutLongBenchmark

2021-03-02 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293905#comment-17293905
 ] 

Geode Integration commented on GEODE-8950:
--

Seen in [Benchmark_base 
#45|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/Benchmark_base/builds/45].

> Benchmark failure - P2pPartitionedPutLongBenchmark
> --
>
> Key: GEODE-8950
> URL: https://issues.apache.org/jira/browse/GEODE-8950
> Project: Geode
>  Issue Type: Bug
>  Components: benchmarks
>Affects Versions: 1.15.0
>Reporter: Donal Evans
>Assignee: Hale Bales
>Priority: Major
>
> Multiple benchmark failures due to P2pPartitionedPutLongBenchmark have been 
> seen recently.
> This run saw 3 out of the 5 repeats fail due to flagged degradations in 
> P2pPartitionedPutLongBenchmark: 
> [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/Benchmark_base/builds/16|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/Benchmark_base/builds/16#L601ed52d:5552]
> This run saw 1 out of the 5 repeats fail due to flagged degradations in 
> P2pPartitionedPutLongBenchmark: 
> [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/Benchmark_base/builds/20]
> This run saw 4 out of the 5 repeats fail due to flagged degradations in 
> P2pPartitionedPutLongBenchmark: 
> [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/Benchmark_base/builds/27]
> In all the above benchmarks, the other failed runs were due to EOFExceptions 
> rather than flagged degradations.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8862) DLockRecoverGrantorProcessor.recoverLockGrantor sometimes hangs

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293902#comment-17293902
 ] 

ASF GitHub Bot commented on GEODE-8862:
---

pivotal-eshu commented on a change in pull request #6051:
URL: https://github.com/apache/geode/pull/6051#discussion_r585803394



##
File path: 
geode-core/src/main/java/org/apache/geode/internal/cache/DistributedCacheOperation.java
##
@@ -1107,6 +1107,10 @@ protected void process(final ClusterDistributionManager 
dm) {
 
 final LocalRegion lclRgn = getLocalRegionForProcessing(dm);
 sendReply = false;
+if (lclRgn != null && lclRgn.getScope().isDistributedNoAck()) {
+  dm.getExecutors().getWaitingThreadPool().execute(() -> 
basicProcess(dm, lclRgn));

Review comment:
   I believe it is intentional. We do not want to pollute the user logging.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> DLockRecoverGrantorProcessor.recoverLockGrantor sometimes hangs
> ---
>
> Key: GEODE-8862
> URL: https://issues.apache.org/jira/browse/GEODE-8862
> Project: Geode
>  Issue Type: Bug
>  Components: distributed lock service
>Affects Versions: 1.14.0
>Reporter: Eric Shu
>Assignee: Eric Shu
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> "vm_9_thr_27_persist8_host1_29953" #1448 daemon prio=5 os_prio=0 cpu=45.99ms 
> elapsed=698.42s tid=0x7f8d0c052800 nid=0x2ee8 waiting on condition  
> [0x7f8c354f6000]
>java.lang.Thread.State: TIMED_WAITING (parking)
> at jdk.internal.misc.Unsafe.park(java.base@11.0.9/Native Method)
> - parking to wait for  <0xfb7bb488> (a 
> java.util.concurrent.CountDownLatch$Sync)
> at 
> java.util.concurrent.locks.LockSupport.parkNanos(java.base@11.0.9/LockSupport.java:234)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:1079)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(java.base@11.0.9/AbstractQueuedSynchronizer.java:1369)
> at 
> java.util.concurrent.CountDownLatch.await(java.base@11.0.9/CountDownLatch.java:278)
> at 
> org.apache.geode.internal.util.concurrent.StoppableCountDownLatch.await(StoppableCountDownLatch.java:72)
> at 
> org.apache.geode.distributed.internal.ReplyProcessor21.basicWait(ReplyProcessor21.java:723)
> at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:794)
> at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:771)
> at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:857)
> at 
> org.apache.geode.distributed.internal.locks.DLockRecoverGrantorProcessor.recoverLockGrantor(DLockRecoverGrantorProcessor.java:100)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.makeLocalGrantor(DLockService.java:447)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.createLocalGrantor(DLockService.java:392)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.getLockGrantorId(DLockService.java:337)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.lockInterruptibly(DLockService.java:1445)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1241)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1232)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1227)
> at 
> org.apache.geode.distributed.internal.locks.DLockService.lock(DLockService.java:1223)
> at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.lock(PeerTypeRegistration.java:314)
> at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.defineEnum(PeerTypeRegistration.java:646)
> at 
> org.apache.geode.pdx.internal.PeerTypeRegistration.getEnumId(PeerTypeRegistration.java:601)
> at 
> org.apache.geode.pdx.internal.TypeRegistry.getEnumId(TypeRegistry.java:363)
> at 
> org.apache.geode.internal.InternalDataSerializer.writePdxEnum(InternalDataSerializer.java:2071)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1610)
> at 
> org

[jira] [Commented] (GEODE-8983) CI Failure: DeploymentManagementRedployDUnitTest.hotDeployShouldNotResultInAnyFailedFunctionExecutions

2021-03-02 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293901#comment-17293901
 ] 

Geode Integration commented on GEODE-8983:
--

Seen in [DistributedTestOpenJDK11 
#52|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/DistributedTestOpenJDK11/builds/52]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-results/distributedTest/1614650146/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-artifacts/1614650146/distributedtestfiles-OpenJDK11-1.15.0-build.0024.tgz].

> CI Failure: 
> DeploymentManagementRedployDUnitTest.hotDeployShouldNotResultInAnyFailedFunctionExecutions
> --
>
> Key: GEODE-8983
> URL: https://issues.apache.org/jira/browse/GEODE-8983
> Project: Geode
>  Issue Type: Bug
>  Components: functions, management
>Affects Versions: 1.15.0
>Reporter: Donal Evans
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> {noformat}
> org.apache.geode.management.internal.rest.DeploymentManagementRedployDUnitTest
>  > hotDeployShouldNotResultInAnyFailedFunctionExecutions FAILED
> org.apache.geode.test.dunit.RMIException: While invoking 
> org.apache.geode.management.internal.rest.DeploymentManagementRedployDUnitTest$$Lambda$422/0x00010059f840.run
>  in VM 1 running on Host 91f54af25dd2 with 4 VMs
> at org.apache.geode.test.dunit.VM.executeMethodOnObject(VM.java:631)
> at org.apache.geode.test.dunit.VM.invoke(VM.java:448)
> at 
> org.apache.geode.test.junit.rules.VMProvider.invoke(VMProvider.java:94)
> at 
> org.apache.geode.management.internal.rest.DeploymentManagementRedployDUnitTest.hotDeployShouldNotResultInAnyFailedFunctionExecutions(DeploymentManagementRedployDUnitTest.java:184)
> Caused by:
> org.apache.geode.cache.execute.FunctionException: Function named 
> DeployCommandRedeployDUnitFunctionA is not registered to FunctionService
> 371 tests completed, 1 failed
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=  Test Results URI 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0021/test-results/distributedTest/1614547395/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Test report artifacts from this job are available at:
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0021/test-artifacts/1614547395/distributedtestfiles-OpenJDK11-1.15.0-build.0021.tgz
> {noformat}
> This failure was also seen in a previous run, along with an instance of 
> GEODE-8984. Artifacts for that failure can be found here:
> {noformat}
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=  Test Results URI 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0021/test-results/distributedTest/1614538872/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Test report artifacts from this job are available at:
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0021/test-artifacts/1614538872/distributedtestfiles-OpenJDK11-1.15.0-build.0021.tgz
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8990) CI Failure: Jetty9CachingClientServerTest.shouldCacheSessionOnClient

2021-03-02 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293900#comment-17293900
 ] 

Geode Integration commented on GEODE-8990:
--

Seen in [DistributedTestOpenJDK8 
#47|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/DistributedTestOpenJDK8/builds/47]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-results/distributedTest/1614649633/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-artifacts/1614649633/distributedtestfiles-OpenJDK8-1.15.0-build.0024.tgz].

> CI Failure: Jetty9CachingClientServerTest.shouldCacheSessionOnClient
> 
>
> Key: GEODE-8990
> URL: https://issues.apache.org/jira/browse/GEODE-8990
> Project: Geode
>  Issue Type: Bug
>Affects Versions: 1.15.0
>Reporter: Donal Evans
>Priority: Major
>
> {noformat}
> org.apache.geode.session.tests.Jetty9CachingClientServerTest > 
> shouldCacheSessionOnClient FAILED
> org.junit.ComparisonFailure: expected:<[Foo]> but was:<[bogus]>
> at org.junit.Assert.assertEquals(Assert.java:117)
> at org.junit.Assert.assertEquals(Assert.java:146)
> at 
> org.apache.geode.session.tests.Jetty9CachingClientServerTest.shouldCacheSessionOnClient(Jetty9CachingClientServerTest.java:65)
> 371 tests completed, 1 failed
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=  Test Results URI 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0023/test-results/distributedTest/1614646829/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Test report artifacts from this job are available at:
> http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0023/test-artifacts/1614646829/distributedtestfiles-OpenJDK8-1.15.0-build.0023.tgz
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-8963) separate client/server compatibility from server/server version compatibility

2021-03-02 Thread Bruce J Schuchardt (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bruce J Schuchardt resolved GEODE-8963.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

> separate client/server compatibility from server/server version compatibility
> -
>
> Key: GEODE-8963
> URL: https://issues.apache.org/jira/browse/GEODE-8963
> Project: Geode
>  Issue Type: Improvement
>  Components: serialization
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> A client's version is used for deserializing data received from the client 
> and for serializing data sent to the client. It is also used to locate the 
> map of Commands used to process client requests. Every time we cut a new 
> release we bump this version in KnownVersions and create a new map of 
> Commands, even though client/server communications protocols rarely change.
>  We should have each KnownVersion hold a client/server compatibility number 
> that is used to identify clients rather than the KnownVersion's ordinal.
> For instance,
> {code:java}
>   public static final KnownVersion GEODE_1_15_0 =
>   new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_15_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
>   
> public static final KnownVersion GEODE_1_16_0 =
>   new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_16_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> public static final KnownVersion GEODE_1_17_0 =
>   new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_17_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> {code}
> In the above KnownVersions the client/server serialization is known to have 
> not changed since v1.15.0 and so there is no need to use a newer KnownVersion 
> for clients.
> Client handshake code will need to be changed to use the client/server 
> ordinal when identifying clients and servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8963) separate client/server compatibility from server/server version compatibility

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293898#comment-17293898
 ] 

ASF subversion and git services commented on GEODE-8963:


Commit dc3ed8c1af4389f60c8ad8e35c43a72731869dcc in geode's branch 
refs/heads/develop from Bruce Schuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=dc3ed8c ]

GEODE-8963: separate client/server compatibility from server/server version 
compatibility (#6050)

* GEODE-8963: separate client/server compatibility from server/server version 
compatibility

A client's version is used for deserializing data received from the client and 
for
serializing data sent to the client. It is also used to locate the map of 
Commands
used to process client requests. Every time we cut a new release we bump this 
version
in KnownVersions and create a new map of Commands, even though client/server
communications protocols rarely change.

This PR changes KnownVersions to hold a client/server protocol version that is
used to identify clients for command-table selection and serialization rather 
than
the client's CURRENT_VERSION.

* Donal's comments addressed and WAN problem fixed

* refactored a method with Bill and made ServerConnection code clearer

Altered KnownVersions to just mark each version that has client/server
protocol changes rather than store the last one having changes in the
more recent instances.  Release managers can continue to use the old
constructor and coders can change to the new constructor if necessary
during the course of a release.

> separate client/server compatibility from server/server version compatibility
> -
>
> Key: GEODE-8963
> URL: https://issues.apache.org/jira/browse/GEODE-8963
> Project: Geode
>  Issue Type: Improvement
>  Components: serialization
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> A client's version is used for deserializing data received from the client 
> and for serializing data sent to the client. It is also used to locate the 
> map of Commands used to process client requests. Every time we cut a new 
> release we bump this version in KnownVersions and create a new map of 
> Commands, even though client/server communications protocols rarely change.
>  We should have each KnownVersion hold a client/server compatibility number 
> that is used to identify clients rather than the KnownVersion's ordinal.
> For instance,
> {code:java}
>   public static final KnownVersion GEODE_1_15_0 =
>   new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_15_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
>   
> public static final KnownVersion GEODE_1_16_0 =
>   new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_16_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> public static final KnownVersion GEODE_1_17_0 =
>   new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_17_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> {code}
> In the above KnownVersions the client/server serialization is known to have 
> not changed since v1.15.0 and so there is no need to use a newer KnownVersion 
> for clients.
> Client handshake code will need to be changed to use the client/server 
> ordinal when identifying clients and servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8963) separate client/server compatibility from server/server version compatibility

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293899#comment-17293899
 ] 

ASF subversion and git services commented on GEODE-8963:


Commit dc3ed8c1af4389f60c8ad8e35c43a72731869dcc in geode's branch 
refs/heads/develop from Bruce Schuchardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=dc3ed8c ]

GEODE-8963: separate client/server compatibility from server/server version 
compatibility (#6050)

* GEODE-8963: separate client/server compatibility from server/server version 
compatibility

A client's version is used for deserializing data received from the client and 
for
serializing data sent to the client. It is also used to locate the map of 
Commands
used to process client requests. Every time we cut a new release we bump this 
version
in KnownVersions and create a new map of Commands, even though client/server
communications protocols rarely change.

This PR changes KnownVersions to hold a client/server protocol version that is
used to identify clients for command-table selection and serialization rather 
than
the client's CURRENT_VERSION.

* Donal's comments addressed and WAN problem fixed

* refactored a method with Bill and made ServerConnection code clearer

Altered KnownVersions to just mark each version that has client/server
protocol changes rather than store the last one having changes in the
more recent instances.  Release managers can continue to use the old
constructor and coders can change to the new constructor if necessary
during the course of a release.

> separate client/server compatibility from server/server version compatibility
> -
>
> Key: GEODE-8963
> URL: https://issues.apache.org/jira/browse/GEODE-8963
> Project: Geode
>  Issue Type: Improvement
>  Components: serialization
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Minor
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> A client's version is used for deserializing data received from the client 
> and for serializing data sent to the client. It is also used to locate the 
> map of Commands used to process client requests. Every time we cut a new 
> release we bump this version in KnownVersions and create a new map of 
> Commands, even though client/server communications protocols rarely change.
>  We should have each KnownVersion hold a client/server compatibility number 
> that is used to identify clients rather than the KnownVersion's ordinal.
> For instance,
> {code:java}
>   public static final KnownVersion GEODE_1_15_0 =
>   new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_15_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
>   
> public static final KnownVersion GEODE_1_16_0 =
>   new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_16_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> public static final KnownVersion GEODE_1_17_0 =
>   new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_17_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> {code}
> In the above KnownVersions the client/server serialization is known to have 
> not changed since v1.15.0 and so there is no need to use a newer KnownVersion 
> for clients.
> Client handshake code will need to be changed to use the client/server 
> ordinal when identifying clients and servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8963) separate client/server compatibility from server/server version compatibility

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293897#comment-17293897
 ] 

ASF GitHub Bot commented on GEODE-8963:
---

bschuchardt merged pull request #6050:
URL: https://github.com/apache/geode/pull/6050


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> separate client/server compatibility from server/server version compatibility
> -
>
> Key: GEODE-8963
> URL: https://issues.apache.org/jira/browse/GEODE-8963
> Project: Geode
>  Issue Type: Improvement
>  Components: serialization
>Reporter: Bruce J Schuchardt
>Assignee: Bruce J Schuchardt
>Priority: Minor
>  Labels: pull-request-available
>
> A client's version is used for deserializing data received from the client 
> and for serializing data sent to the client. It is also used to locate the 
> map of Commands used to process client requests. Every time we cut a new 
> release we bump this version in KnownVersions and create a new map of 
> Commands, even though client/server communications protocols rarely change.
>  We should have each KnownVersion hold a client/server compatibility number 
> that is used to identify clients rather than the KnownVersion's ordinal.
> For instance,
> {code:java}
>   public static final KnownVersion GEODE_1_15_0 =
>   new KnownVersion("GEODE", "1.15.0", (byte) 1, (byte) 15, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_15_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
>   
> public static final KnownVersion GEODE_1_16_0 =
>   new KnownVersion("GEODE", "1.16.0", (byte) 1, (byte) 16, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_16_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> public static final KnownVersion GEODE_1_17_0 =
>   new KnownVersion("GEODE", "1.17.0", (byte) 1, (byte) 17, (byte) 0, 
> (byte) 0,
>   /*server/server version*/GEODE_1_17_0_ORDINAL, 
>   /*client/server version*/GEODE_1_15_0_ORDINAL);
> {code}
> In the above KnownVersions the client/server serialization is known to have 
> not changed since v1.15.0 and so there is no need to use a newer KnownVersion 
> for clients.
> Client handshake code will need to be changed to use the client/server 
> ordinal when identifying clients and servers.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8905) Introduce JarDeploymentService

2021-03-02 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293896#comment-17293896
 ] 

Geode Integration commented on GEODE-8905:
--

Seen in [WindowsAcceptanceTestOpenJDK11 
#44|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsAcceptanceTestOpenJDK11/builds/44]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-results/acceptanceTest/1614652592/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-artifacts/1614652592/windows-acceptancetestfiles-OpenJDK11-1.15.0-build.0024.tgz].

> Introduce JarDeploymentService
> --
>
> Key: GEODE-8905
> URL: https://issues.apache.org/jira/browse/GEODE-8905
> Project: Geode
>  Issue Type: Improvement
>  Components: gfsh, management
>Reporter: Patrick Johnsn
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> Introduce a JarDeploymentService interface that will allow us to interchange 
> the current way of deploying jars with the new modular approach.
>  
> There will be an implementation that delegates to the existing JarDeployer 
> and will maintain current behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8905) Introduce JarDeploymentService

2021-03-02 Thread Geode Integration (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293895#comment-17293895
 ] 

Geode Integration commented on GEODE-8905:
--

Seen in [WindowsAcceptanceTestOpenJDK8 
#43|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsAcceptanceTestOpenJDK8/builds/43]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-results/acceptanceTest/1614649652/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.15.0-build.0024/test-artifacts/1614649652/windows-acceptancetestfiles-OpenJDK8-1.15.0-build.0024.tgz].

> Introduce JarDeploymentService
> --
>
> Key: GEODE-8905
> URL: https://issues.apache.org/jira/browse/GEODE-8905
> Project: Geode
>  Issue Type: Improvement
>  Components: gfsh, management
>Reporter: Patrick Johnsn
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> Introduce a JarDeploymentService interface that will allow us to interchange 
> the current way of deploying jars with the new modular approach.
>  
> There will be an implementation that delegates to the existing JarDeployer 
> and will maintain current behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8920) Modify debug logging to make it easier to trace a message

2021-03-02 Thread Kamilla Aslami (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami updated GEODE-8920:
--
Fix Version/s: 1.14.0

> Modify debug logging to make it easier to trace a message
> -
>
> Key: GEODE-8920
> URL: https://issues.apache.org/jira/browse/GEODE-8920
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.14.0, 1.15.0
>
>
> Debug logging in DirectChannel lets us know the IDs of receivers of a message 
> and the toString of the message but it's very difficult to figure out what 
> thread on the receiving end is supposed to process that message.
> Here's an example of what we currently have:
> [debug 2021/02/01 16:15:17.492 PST persistgemfire8_host1_8586 
>  tid=0x4f0] Sending 
> (DLockRequestProcessor.DLockResponseMessage responding GRANT; 
> serviceName=__PDX(version 4); objectName=PDX_LOCK; responseCode=0; 
> keyIfFailed=null; leaseExpireTime=9223372036854775807; processorId=509; 
> lockId=509) to 1 peers 
> ([rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire9_host1_8517:8517):41005])
>  via tcp/ip
> This does not tell you anything about the receiver except its ID.  On the 
> receiving side the thread that, in this run, would handle that message is 
> this:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *uid=1036* dom #1 local port=47207 remote port=42068> 
> tid=0x51
> I've highlighted the *uid* here because that is the _uniqueId_ of the sending 
> Connection.  If you looked through the logs or stack traces of the receiver 
> and knew the uniqueId of the sending Connection you could easily locate the 
> thread that should receive this DLockResponseMessage.  Currently this is much 
> harder than it needs to be because the DirectChannel _Sending_ log message 
> doesn't include the _uniqueId_ of the Connections it is using to send the 
> message.
> Let's change that log message to include the _uniqueId_ of each outgoing 
> Connection.  Maybe something like this:
> Sending (message.toString()) to 1 peers (peer ID)*, uid=1036* via tcp/ip
> and on the receiving side we could be clearer about what the *uid* in the 
> thread's name means:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *sender uid=1036* dom #1 local port=47207 remote 
> port=42068> tid=0x51
> or something like that.
> Now we can look at the _Sending_ message and know that the receiving thread 
> will have _uid=1036_ in its name.  Knowing this it ought to be possible to 
> write a program/script to trace a message and its consequences from one node 
> to another.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Resolved] (GEODE-7245) Remove most uses of latestViewReadLock in GMSMembershipManager

2021-03-02 Thread Kamilla Aslami (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-7245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami resolved GEODE-7245.
---
Fix Version/s: 1.15.0
   Resolution: Fixed

> Remove most uses of latestViewReadLock in GMSMembershipManager
> --
>
> Key: GEODE-7245
> URL: https://issues.apache.org/jira/browse/GEODE-7245
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> Changes for GEODE-7196 made the latestView immutable so there is no reason, 
> in most cases, to use the latestViewReadlock when accessing the view. A 
> simple volatile read of the field & storing the value in a method variable 
> can replace most uses of the latestViewReadLock, especially those uses that 
> are in the path of sending or receiving messages.
> Performance could be measured with our benchmarks to see if this change helps.
>  
> latestViewReadLock is currently used in getCoordinator(), memberExists(), 
> getMembersNotShuttingDown(), getAllMembers(), isShunnedOrNew(), 
> isSurpriseMember(), doWithViewLocked().
> doWithViewLocked() is used to add membership listeners, and we don't want the 
> view to change until this operation completes. Therefore, we should keep the 
> lock in this method.
> getCoordinator(), memberExists(), getMembersNotShuttingDown(), 
> getAllMembers() use latestViewReadLock to access latestView. In these methods 
> we can replace the lock with a volatile read of the latestView and storing 
> the value in a method variable.
> isShunnedOrNew() accesses latestView, and 2 ConcurrentHashMaps - 
> shunnedMembers and surpriseMembers. Since the hashmaps are concurrent and 
> latestView is unmodifiable, a volatile read could replace the lock. Same for 
> isSurpriseMember(), which uses surpriseMembers hashmap.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (GEODE-7245) Remove most uses of latestViewReadLock in GMSMembershipManager

2021-03-02 Thread Kamilla Aslami (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-7245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kamilla Aslami reassigned GEODE-7245:
-

Assignee: Kamilla Aslami

> Remove most uses of latestViewReadLock in GMSMembershipManager
> --
>
> Key: GEODE-7245
> URL: https://issues.apache.org/jira/browse/GEODE-7245
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: pull-request-available
>
> Changes for GEODE-7196 made the latestView immutable so there is no reason, 
> in most cases, to use the latestViewReadlock when accessing the view. A 
> simple volatile read of the field & storing the value in a method variable 
> can replace most uses of the latestViewReadLock, especially those uses that 
> are in the path of sending or receiving messages.
> Performance could be measured with our benchmarks to see if this change helps.
>  
> latestViewReadLock is currently used in getCoordinator(), memberExists(), 
> getMembersNotShuttingDown(), getAllMembers(), isShunnedOrNew(), 
> isSurpriseMember(), doWithViewLocked().
> doWithViewLocked() is used to add membership listeners, and we don't want the 
> view to change until this operation completes. Therefore, we should keep the 
> lock in this method.
> getCoordinator(), memberExists(), getMembersNotShuttingDown(), 
> getAllMembers() use latestViewReadLock to access latestView. In these methods 
> we can replace the lock with a volatile read of the latestView and storing 
> the value in a method variable.
> isShunnedOrNew() accesses latestView, and 2 ConcurrentHashMaps - 
> shunnedMembers and surpriseMembers. Since the hashmaps are concurrent and 
> latestView is unmodifiable, a volatile read could replace the lock. Same for 
> isSurpriseMember(), which uses surpriseMembers hashmap.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8920) Modify debug logging to make it easier to trace a message

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293886#comment-17293886
 ] 

ASF subversion and git services commented on GEODE-8920:


Commit bce7a19b55b51a8809e71c9a2c776eba31a4e92c in geode's branch 
refs/heads/support/1.14 from Kamilla Aslami
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=bce7a19 ]

GEODE-8920: Modify debug logging to make it easier to trace a message (#6041) 
(#6071)

(cherry picked from commit fc2fc9f890c5673bd6d0954048efb525b0098126)

> Modify debug logging to make it easier to trace a message
> -
>
> Key: GEODE-8920
> URL: https://issues.apache.org/jira/browse/GEODE-8920
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.15.0
>
>
> Debug logging in DirectChannel lets us know the IDs of receivers of a message 
> and the toString of the message but it's very difficult to figure out what 
> thread on the receiving end is supposed to process that message.
> Here's an example of what we currently have:
> [debug 2021/02/01 16:15:17.492 PST persistgemfire8_host1_8586 
>  tid=0x4f0] Sending 
> (DLockRequestProcessor.DLockResponseMessage responding GRANT; 
> serviceName=__PDX(version 4); objectName=PDX_LOCK; responseCode=0; 
> keyIfFailed=null; leaseExpireTime=9223372036854775807; processorId=509; 
> lockId=509) to 1 peers 
> ([rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire9_host1_8517:8517):41005])
>  via tcp/ip
> This does not tell you anything about the receiver except its ID.  On the 
> receiving side the thread that, in this run, would handle that message is 
> this:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *uid=1036* dom #1 local port=47207 remote port=42068> 
> tid=0x51
> I've highlighted the *uid* here because that is the _uniqueId_ of the sending 
> Connection.  If you looked through the logs or stack traces of the receiver 
> and knew the uniqueId of the sending Connection you could easily locate the 
> thread that should receive this DLockResponseMessage.  Currently this is much 
> harder than it needs to be because the DirectChannel _Sending_ log message 
> doesn't include the _uniqueId_ of the Connections it is using to send the 
> message.
> Let's change that log message to include the _uniqueId_ of each outgoing 
> Connection.  Maybe something like this:
> Sending (message.toString()) to 1 peers (peer ID)*, uid=1036* via tcp/ip
> and on the receiving side we could be clearer about what the *uid* in the 
> thread's name means:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *sender uid=1036* dom #1 local port=47207 remote 
> port=42068> tid=0x51
> or something like that.
> Now we can look at the _Sending_ message and know that the receiving thread 
> will have _uid=1036_ in its name.  Knowing this it ought to be possible to 
> write a program/script to trace a message and its consequences from one node 
> to another.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8920) Modify debug logging to make it easier to trace a message

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293883#comment-17293883
 ] 

ASF GitHub Bot commented on GEODE-8920:
---

Bill merged pull request #6071:
URL: https://github.com/apache/geode/pull/6071


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Modify debug logging to make it easier to trace a message
> -
>
> Key: GEODE-8920
> URL: https://issues.apache.org/jira/browse/GEODE-8920
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Kamilla Aslami
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.15.0
>
>
> Debug logging in DirectChannel lets us know the IDs of receivers of a message 
> and the toString of the message but it's very difficult to figure out what 
> thread on the receiving end is supposed to process that message.
> Here's an example of what we currently have:
> [debug 2021/02/01 16:15:17.492 PST persistgemfire8_host1_8586 
>  tid=0x4f0] Sending 
> (DLockRequestProcessor.DLockResponseMessage responding GRANT; 
> serviceName=__PDX(version 4); objectName=PDX_LOCK; responseCode=0; 
> keyIfFailed=null; leaseExpireTime=9223372036854775807; processorId=509; 
> lockId=509) to 1 peers 
> ([rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire9_host1_8517:8517):41005])
>  via tcp/ip
> This does not tell you anything about the receiver except its ID.  On the 
> receiving side the thread that, in this run, would handle that message is 
> this:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *uid=1036* dom #1 local port=47207 remote port=42068> 
> tid=0x51
> I've highlighted the *uid* here because that is the _uniqueId_ of the sending 
> Connection.  If you looked through the logs or stack traces of the receiver 
> and knew the uniqueId of the sending Connection you could easily locate the 
> thread that should receive this DLockResponseMessage.  Currently this is much 
> harder than it needs to be because the DirectChannel _Sending_ log message 
> doesn't include the _uniqueId_ of the Connections it is using to send the 
> message.
> Let's change that log message to include the _uniqueId_ of each outgoing 
> Connection.  Maybe something like this:
> Sending (message.toString()) to 1 peers (peer ID)*, uid=1036* via tcp/ip
> and on the receiving side we could be clearer about what the *uid* in the 
> thread's name means:
> persistgemfire9_host1_8517  rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586):41006
>  unshared ordered *sender uid=1036* dom #1 local port=47207 remote 
> port=42068> tid=0x51
> or something like that.
> Now we can look at the _Sending_ message and know that the receiving thread 
> will have _uid=1036_ in its name.  Knowing this it ought to be possible to 
> write a program/script to trace a message and its consequences from one node 
> to another.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8992) When a GatewaySenderEventImpl is serialized, its operationDetail field is not included

2021-03-02 Thread Nabarun Nag (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nabarun Nag updated GEODE-8992:
---
Labels: blocks-1.15.0​  (was: )

> When a GatewaySenderEventImpl is serialized, its operationDetail field is not 
> included
> --
>
> Key: GEODE-8992
> URL: https://issues.apache.org/jira/browse/GEODE-8992
> Project: Geode
>  Issue Type: Bug
>  Components: wan
>Reporter: Barrett Oglesby
>Priority: Major
>  Labels: blocks-1.15.0​
>
> This causes the operation to become less specific when the 
> {{GatewaySenderEventImpl}} is deserialized.
> Here is an example.
> If the original {{GatewaySenderEventImpl}} is a *PUTALL_CREATE* like:
> {noformat}
> GatewaySenderEventImpl[id=EventID[id=31 
> bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=PUTALL_CREATE;region=/data;key=0;value=0;...]
> {noformat}
> Then, when the {{GatewaySenderEventImpl}} is serialized and deserialized, its 
> operation becomes a *CREATE*:
> {noformat}
> GatewaySenderEventImpl[id=EventID[id=31 
> bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=CREATE;region=/data;key=0;value=0;...]
> {noformat}
> Thats because {{GatewaySenderEventImpl.getOperation}} uses both *action* and 
> *operationDetail* to determine its operation:
> {noformat}
> public Operation getOperation() {
>   Operation op = null;
>   switch (this.action) {
> case CREATE_ACTION:
>   switch (this.operationDetail) {
> case ...
> case OP_DETAIL_PUTALL:
>   op = Operation.PUTALL_CREATE;
>   break;
> default:
>   op = Operation.CREATE;
>   break;
>   }
> ...
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8986) change benchmarks baseline to version 1.13.1

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293880#comment-17293880
 ] 

ASF subversion and git services commented on GEODE-8986:


Commit 57666f64b418bf09795318fd4e2c3f2b312dfb9e in geode's branch 
refs/heads/develop from Hale Bales
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=57666f6 ]

GEODE-8986: bump benchmark baseline version (#6072)

- bump benchmark baseline version to most recent release
- change release script to automatically keep the baseline for develop at the 
latest released version

> change benchmarks baseline to version 1.13.1
> 
>
> Key: GEODE-8986
> URL: https://issues.apache.org/jira/browse/GEODE-8986
> Project: Geode
>  Issue Type: Task
>  Components: benchmarks, ci
>Reporter: Hale Bales
>Assignee: Hale Bales
>Priority: Major
>  Labels: pull-request-available
>
> In CI, the current baseline is 1.13.0. It should be changed to the most 
> recent version, which is currently 1.13.1



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8986) change benchmarks baseline to version 1.13.1

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293878#comment-17293878
 ] 

ASF GitHub Bot commented on GEODE-8986:
---

onichols-pivotal merged pull request #6072:
URL: https://github.com/apache/geode/pull/6072


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> change benchmarks baseline to version 1.13.1
> 
>
> Key: GEODE-8986
> URL: https://issues.apache.org/jira/browse/GEODE-8986
> Project: Geode
>  Issue Type: Task
>  Components: benchmarks, ci
>Reporter: Hale Bales
>Assignee: Hale Bales
>Priority: Major
>  Labels: pull-request-available
>
> In CI, the current baseline is 1.13.0. It should be changed to the most 
> recent version, which is currently 1.13.1



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8980) bump dependencies for 1.15.0

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293876#comment-17293876
 ] 

ASF subversion and git services commented on GEODE-8980:


Commit 0da3718f30bf749b29572b7017ea581b7279cefb in geode's branch 
refs/heads/develop from Owen Nichols
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0da3718 ]

GEODE-8980: bump dependencies (#6062)

* Bump spring (except spring-test) from 5.3.3 to 5.3.4
* Bump spring-security from 5.4.2 to 5.4.5
* Bump spring-hateoas from 1.2.3 to 1.2.4
* Bump spring-boot-starter from 2.4.2 to 2.4.3
* Bump HikariCP from 4.0.1 to 4.0.2
* Bump micrometer-core from 1.6.3 to 1.6.4
* Bump jetty from 9.4.36.v20210114 to 9.4.37.v20210219
* Bump junit from 4.13.1 to 4.13.2
* Bump mockito-core from 3.7.7 to 3.8.0
* Bump jna from 5.6.0 to 5.7.0
* Bump jproc from 2.4.0 to 2.5.1
* Bump spotless from 5.10.0 to 5.10.2

> bump dependencies for 1.15.0
> 
>
> Key: GEODE-8980
> URL: https://issues.apache.org/jira/browse/GEODE-8980
> Project: Geode
>  Issue Type: Improvement
>  Components: build
>Affects Versions: 1.15.0
>Reporter: Owen Nichols
>Priority: Major
>  Labels: pull-request-available
>
> keeping up with the latest versions of 3rd-party libraries used by Geode is a 
> proactive way to reduce bugs and avoid security vulnerabilities.  this ticket 
> will be used for ~monthly dependency bumps on develop until we get close to 
> cutting support/1.15



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8964) Entry created via TX putIfAbsent with null value can write incorrect data to cache

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293875#comment-17293875
 ] 

ASF GitHub Bot commented on GEODE-8964:
---

luissson closed pull request #6067:
URL: https://github.com/apache/geode/pull/6067


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Entry created via TX putIfAbsent with null value can write incorrect data to 
> cache
> --
>
> Key: GEODE-8964
> URL: https://issues.apache.org/jira/browse/GEODE-8964
> Project: Geode
>  Issue Type: Bug
>  Components: client/server
>Affects Versions: 1.10.0, 1.14.0
>Reporter: Louis R. Jacome
>Assignee: Louis R. Jacome
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.15.0
>
>
> In backwards compatibility testing, an error was seen wherein a putIfAbsent 
> with a null value was being processed by a server but interrupted by a GII 
> with the same key. The operation was subsequently enqueued in the client's HA 
> Region Queue as an update with a null value rather than a create with a null 
> value -- a path that's not supported -- resulting in erroneous data sometimes 
> being written to the client cache.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8980) bump dependencies for 1.15.0

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293873#comment-17293873
 ] 

ASF GitHub Bot commented on GEODE-8980:
---

onichols-pivotal merged pull request #6062:
URL: https://github.com/apache/geode/pull/6062


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> bump dependencies for 1.15.0
> 
>
> Key: GEODE-8980
> URL: https://issues.apache.org/jira/browse/GEODE-8980
> Project: Geode
>  Issue Type: Improvement
>  Components: build
>Affects Versions: 1.15.0
>Reporter: Owen Nichols
>Priority: Major
>  Labels: pull-request-available
>
> keeping up with the latest versions of 3rd-party libraries used by Geode is a 
> proactive way to reduce bugs and avoid security vulnerabilities.  this ticket 
> will be used for ~monthly dependency bumps on develop until we get close to 
> cutting support/1.15



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-7245) Remove most uses of latestViewReadLock in GMSMembershipManager

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293874#comment-17293874
 ] 

ASF subversion and git services commented on GEODE-7245:


Commit 477ffba8e155dca0bdeeefd312b6b32b4b481100 in geode's branch 
refs/heads/develop from Kamilla Aslami
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=477ffba ]

GEODE-7245: Remove most uses of latestViewReadLock in GMSMembership (#6037)

* Remove most uses of latestViewReadLock in GMSMembership
* make MembershipView immutable
* Constructor consolidation and better naming of add/remove
* Tighten constructor chaining

Co-authored-by: Bill Burcham 

> Remove most uses of latestViewReadLock in GMSMembershipManager
> --
>
> Key: GEODE-7245
> URL: https://issues.apache.org/jira/browse/GEODE-7245
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Priority: Major
>  Labels: pull-request-available
>
> Changes for GEODE-7196 made the latestView immutable so there is no reason, 
> in most cases, to use the latestViewReadlock when accessing the view. A 
> simple volatile read of the field & storing the value in a method variable 
> can replace most uses of the latestViewReadLock, especially those uses that 
> are in the path of sending or receiving messages.
> Performance could be measured with our benchmarks to see if this change helps.
>  
> latestViewReadLock is currently used in getCoordinator(), memberExists(), 
> getMembersNotShuttingDown(), getAllMembers(), isShunnedOrNew(), 
> isSurpriseMember(), doWithViewLocked().
> doWithViewLocked() is used to add membership listeners, and we don't want the 
> view to change until this operation completes. Therefore, we should keep the 
> lock in this method.
> getCoordinator(), memberExists(), getMembersNotShuttingDown(), 
> getAllMembers() use latestViewReadLock to access latestView. In these methods 
> we can replace the lock with a volatile read of the latestView and storing 
> the value in a method variable.
> isShunnedOrNew() accesses latestView, and 2 ConcurrentHashMaps - 
> shunnedMembers and surpriseMembers. Since the hashmaps are concurrent and 
> latestView is unmodifiable, a volatile read could replace the lock. Same for 
> isSurpriseMember(), which uses surpriseMembers hashmap.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-7245) Remove most uses of latestViewReadLock in GMSMembershipManager

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293872#comment-17293872
 ] 

ASF GitHub Bot commented on GEODE-7245:
---

Bill merged pull request #6037:
URL: https://github.com/apache/geode/pull/6037


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Remove most uses of latestViewReadLock in GMSMembershipManager
> --
>
> Key: GEODE-7245
> URL: https://issues.apache.org/jira/browse/GEODE-7245
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Priority: Major
>  Labels: pull-request-available
>
> Changes for GEODE-7196 made the latestView immutable so there is no reason, 
> in most cases, to use the latestViewReadlock when accessing the view. A 
> simple volatile read of the field & storing the value in a method variable 
> can replace most uses of the latestViewReadLock, especially those uses that 
> are in the path of sending or receiving messages.
> Performance could be measured with our benchmarks to see if this change helps.
>  
> latestViewReadLock is currently used in getCoordinator(), memberExists(), 
> getMembersNotShuttingDown(), getAllMembers(), isShunnedOrNew(), 
> isSurpriseMember(), doWithViewLocked().
> doWithViewLocked() is used to add membership listeners, and we don't want the 
> view to change until this operation completes. Therefore, we should keep the 
> lock in this method.
> getCoordinator(), memberExists(), getMembersNotShuttingDown(), 
> getAllMembers() use latestViewReadLock to access latestView. In these methods 
> we can replace the lock with a volatile read of the latestView and storing 
> the value in a method variable.
> isShunnedOrNew() accesses latestView, and 2 ConcurrentHashMaps - 
> shunnedMembers and surpriseMembers. Since the hashmaps are concurrent and 
> latestView is unmodifiable, a volatile read could replace the lock. Same for 
> isSurpriseMember(), which uses surpriseMembers hashmap.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8992) When a GatewaySenderEventImpl is serialized, its operationDetail field is not included

2021-03-02 Thread Barrett Oglesby (Jira)
Barrett Oglesby created GEODE-8992:
--

 Summary: When a GatewaySenderEventImpl is serialized, its 
operationDetail field is not included
 Key: GEODE-8992
 URL: https://issues.apache.org/jira/browse/GEODE-8992
 Project: Geode
  Issue Type: Bug
  Components: wan
Reporter: Barrett Oglesby


This causes the operation to become less specific when the 
{{GatewaySenderEventImpl}} is deserialized.

Here is an example.

If the original {{GatewaySenderEventImpl}} is a *PUTALL_CREATE* like:
{noformat}
GatewaySenderEventImpl[id=EventID[id=31 
bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=PUTALL_CREATE;region=/data;key=0;value=0;...]
{noformat}
Then, when the {{GatewaySenderEventImpl}} is serialized and deserialized, its 
operation becomes a *CREATE*:
{noformat}
GatewaySenderEventImpl[id=EventID[id=31 
bytes;threadID=0x10063|1;sequenceID=0;bucketId=99];action=0;operation=CREATE;region=/data;key=0;value=0;...]
{noformat}
Thats because {{GatewaySenderEventImpl.getOperation}} uses both *action* and 
*operationDetail* to determine its operation:
{noformat}
public Operation getOperation() {
  Operation op = null;
  switch (this.action) {
case CREATE_ACTION:
  switch (this.operationDetail) {
case ...
case OP_DETAIL_PUTALL:
  op = Operation.PUTALL_CREATE;
  break;
default:
  op = Operation.CREATE;
  break;
  }
...
{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8671) Two threads calling get and retrieve the same PdxInstance, resulting in corruption

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293871#comment-17293871
 ] 

ASF GitHub Bot commented on GEODE-8671:
---

kirklund commented on a change in pull request #5925:
URL: https://github.com/apache/geode/pull/5925#discussion_r585774910



##
File path: 
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionConcurrentOperationDUnitTest.java
##
@@ -61,9 +63,14 @@ private static DUnitBlackboard getBlackboard() {
   @Rule
   public ExecutorServiceRule executorServiceRule = new ExecutorServiceRule();
 
+  @Rule
+  public DistributedBlackboard blackboard = new DistributedBlackboard();
+
   @After
   public void tearDown() {
-blackboard.initBlackboard();
+if (blackboard != null) {

Review comment:
   You can delete this `tearDown`. The `DistributedBlackboard` Rule handles 
this for you. (If it doesn't, that's a bug that I need to know about.)





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Two threads calling get and retrieve the same PdxInstance, resulting in 
> corruption
> --
>
> Key: GEODE-8671
> URL: https://issues.apache.org/jira/browse/GEODE-8671
> Project: Geode
>  Issue Type: Improvement
>  Components: regions
>Reporter: Dan Smith
>Assignee: Jianxia Chen
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> Even if copy-on-read is set to true, two threads calling get on a partitioned 
> region can end up with the same PdxInstance object.
> This is problematic because some PdxInstances methods are not thread safe. 
> Although the underlying bytes are immutatable, the PDXInstance has a 
> ByteSource with a position field that changes. That means two threads doing 
> serialization or calling toString on the PdxInstance could result in one or 
> more threads getting a corrupt read.
> It looks like they are ending up with the same instance because of the 
> behavior in LocalRegion.optimizedGetObject. We use futures to make sure there 
> is only 1 get that goes through, and both threads receive the same value.
> 
> Ending up in optimizedGetObject requires a race with the put, because if the 
> value was in the cache at the beginning of the get it would be returned 
> earlier in the get process.
> I put a test that reproduces this issue here -   
> https://github.com/upthewaterspout/geode/pull/new/feature/pdx-instances-shared



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8671) Two threads calling get and retrieve the same PdxInstance, resulting in corruption

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293870#comment-17293870
 ] 

ASF GitHub Bot commented on GEODE-8671:
---

kirklund commented on a change in pull request #5925:
URL: https://github.com/apache/geode/pull/5925#discussion_r585774024



##
File path: 
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/RegionConcurrentOperationDUnitTest.java
##
@@ -131,6 +140,49 @@ public void 
getOnPreLoadedRegionFromMultipleThreadsReturnSameObject() throws Exc
 assertThat(cacheRule.getCache().getRegion(regionName).size()).isEqualTo(1);
   }
 
+  @Test
+  public void 
getOnPartitionedRegionFromMultipleThreadsReturnsDifferentPdxInstances()
+  throws Exception {
+String regionName = getClass().getSimpleName();
+CacheFactory cacheFactory = new CacheFactory();
+cacheFactory.setPdxReadSerialized(true);
+cacheRule.createCache(cacheFactory);
+InternalCache cache = cacheRule.getCache();
+cache.setCopyOnRead(true);
+Region region = cache.createRegionFactory(PARTITION)
+.create(regionName);
+
+// Keep doing this concurrency test for 30 seconds.
+long endTime = Duration.ofSeconds(30).toMillis() + 
System.currentTimeMillis();
+
+while (System.currentTimeMillis() < endTime) {
+  Callable getValue = () -> {
+while (true) {
+  Object value = region.get(key);
+  if (value != null) {
+return value;
+  }
+}
+  };
+
+  // In this test, two threads are doing gets. One thread puts the value
+  // We expect that the threads will *always* get different PdxInstance 
values
+  Future get1 = executorServiceRule.submit(getValue);
+  Future get2 = executorServiceRule.submit(getValue);
+  Future put = executorServiceRule.submit(() -> region.put(key, new 
TestValue()));

Review comment:
   If the Future is not going to have a result then go with `Future`.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Two threads calling get and retrieve the same PdxInstance, resulting in 
> corruption
> --
>
> Key: GEODE-8671
> URL: https://issues.apache.org/jira/browse/GEODE-8671
> Project: Geode
>  Issue Type: Improvement
>  Components: regions
>Reporter: Dan Smith
>Assignee: Jianxia Chen
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>
> Even if copy-on-read is set to true, two threads calling get on a partitioned 
> region can end up with the same PdxInstance object.
> This is problematic because some PdxInstances methods are not thread safe. 
> Although the underlying bytes are immutatable, the PDXInstance has a 
> ByteSource with a position field that changes. That means two threads doing 
> serialization or calling toString on the PdxInstance could result in one or 
> more threads getting a corrupt read.
> It looks like they are ending up with the same instance because of the 
> behavior in LocalRegion.optimizedGetObject. We use futures to make sure there 
> is only 1 get that goes through, and both threads receive the same value.
> 
> Ending up in optimizedGetObject requires a race with the put, because if the 
> value was in the cache at the beginning of the get it would be returned 
> earlier in the get process.
> I put a test that reproduces this issue here -   
> https://github.com/upthewaterspout/geode/pull/new/feature/pdx-instances-shared



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8919) revert renaming of GMS processMessage methods

2021-03-02 Thread Ernest Burghardt (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ernest Burghardt updated GEODE-8919:

Fix Version/s: 1.14.0

> revert renaming of GMS processMessage methods
> -
>
> Key: GEODE-8919
> URL: https://issues.apache.org/jira/browse/GEODE-8919
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Ernest Burghardt
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.14.0, 1.15.0
>
>
> [~upthewaterspout] modified methods in the membership module that process 
> membership methods so that they are now all named *processMessage*, but this 
> make it more difficult to read stack traces and know what type of message a 
> thread is processing.  Let's make life easier for us and revert that change.  
> Let's name each method after the type of message it processes so that we 
> don't have to look at source code to figure it out.
> This method, for instance, could be named *processInstallViewMessage* and we 
> would know, without looking at source code, which type of message is being 
> processed.
> {noformat}
> at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1053)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1330)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1269)
> > at org.jgroups.JChannel.invokeCallback(JChannel.java:816)
> > at org.jgroups.JChannel.up(JChannel.java:741)
> > at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030)
> > at org.jgroups.protocols.FRAG2.up(FRAG2.java:165)
> > at org.jgroups.protocols.FlowControl.up(FlowControl.java:390)
> > at 
> > org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1077)
> > at 
> > org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:792)
> > at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:433)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder.up(StatRecorder.java:73)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:72)
> > at org.jgroups.protocols.TP.passMessageUp(TP.java:1658)
> > at 
> > org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)
> > at 
> > org.jgroups.util.DirectExecutor.execute(DirectExecutor.java:10)
> > at org.jgroups.protocols.TP.handleSingleMessage(TP.java:1789)
> > at org.jgroups.protocols.TP.receive(TP.java:1714)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.Transport.receive(Transport.java:152)
> > at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
> > at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8919) revert renaming of GMS processMessage methods

2021-03-02 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293865#comment-17293865
 ] 

ASF subversion and git services commented on GEODE-8919:


Commit f6e3f13aa65036d890fd1faa7e2ca403f87c9fc0 in geode's branch 
refs/heads/support/1.14 from Ernie Burghardt
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=f6e3f13 ]

GEODE-8919: undid polymorphic naming for processMessage methods. (#6055) (#6070)

(cherry picked from commit 6edf69546b784f67ed125bc4b1d592496ee1f5ee)

> revert renaming of GMS processMessage methods
> -
>
> Key: GEODE-8919
> URL: https://issues.apache.org/jira/browse/GEODE-8919
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Ernest Burghardt
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.15.0
>
>
> [~upthewaterspout] modified methods in the membership module that process 
> membership methods so that they are now all named *processMessage*, but this 
> make it more difficult to read stack traces and know what type of message a 
> thread is processing.  Let's make life easier for us and revert that change.  
> Let's name each method after the type of message it processes so that we 
> don't have to look at source code to figure it out.
> This method, for instance, could be named *processInstallViewMessage* and we 
> would know, without looking at source code, which type of message is being 
> processed.
> {noformat}
> at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1053)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1330)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1269)
> > at org.jgroups.JChannel.invokeCallback(JChannel.java:816)
> > at org.jgroups.JChannel.up(JChannel.java:741)
> > at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030)
> > at org.jgroups.protocols.FRAG2.up(FRAG2.java:165)
> > at org.jgroups.protocols.FlowControl.up(FlowControl.java:390)
> > at 
> > org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1077)
> > at 
> > org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:792)
> > at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:433)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder.up(StatRecorder.java:73)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:72)
> > at org.jgroups.protocols.TP.passMessageUp(TP.java:1658)
> > at 
> > org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)
> > at 
> > org.jgroups.util.DirectExecutor.execute(DirectExecutor.java:10)
> > at org.jgroups.protocols.TP.handleSingleMessage(TP.java:1789)
> > at org.jgroups.protocols.TP.receive(TP.java:1714)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.Transport.receive(Transport.java:152)
> > at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
> > at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8919) revert renaming of GMS processMessage methods

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293864#comment-17293864
 ] 

ASF GitHub Bot commented on GEODE-8919:
---

echobravopapa merged pull request #6070:
URL: https://github.com/apache/geode/pull/6070


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> revert renaming of GMS processMessage methods
> -
>
> Key: GEODE-8919
> URL: https://issues.apache.org/jira/browse/GEODE-8919
> Project: Geode
>  Issue Type: Improvement
>  Components: membership
>Reporter: Bruce J Schuchardt
>Assignee: Ernest Burghardt
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
> Fix For: 1.15.0
>
>
> [~upthewaterspout] modified methods in the membership module that process 
> membership methods so that they are now all named *processMessage*, but this 
> make it more difficult to read stack traces and know what type of message a 
> thread is processing.  Let's make life easier for us and revert that change.  
> Let's name each method after the type of message it processes so that we 
> don't have to look at source code to figure it out.
> This method, for instance, could be named *processInstallViewMessage* and we 
> would know, without looking at source code, which type of message is being 
> processed.
> {noformat}
> at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1053)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1330)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1269)
> > at org.jgroups.JChannel.invokeCallback(JChannel.java:816)
> > at org.jgroups.JChannel.up(JChannel.java:741)
> > at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1030)
> > at org.jgroups.protocols.FRAG2.up(FRAG2.java:165)
> > at org.jgroups.protocols.FlowControl.up(FlowControl.java:390)
> > at 
> > org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1077)
> > at 
> > org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:792)
> > at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:433)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.StatRecorder.up(StatRecorder.java:73)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:72)
> > at org.jgroups.protocols.TP.passMessageUp(TP.java:1658)
> > at 
> > org.jgroups.protocols.TP$SingleMessageHandler.run(TP.java:1876)
> > at 
> > org.jgroups.util.DirectExecutor.execute(DirectExecutor.java:10)
> > at org.jgroups.protocols.TP.handleSingleMessage(TP.java:1789)
> > at org.jgroups.protocols.TP.receive(TP.java:1714)
> > at 
> > org.apache.geode.distributed.internal.membership.gms.messenger.Transport.receive(Transport.java:152)
> > at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
> > at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8793) Fix PdxTypeRegistry cleanup upon cluster disconnection

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293861#comment-17293861
 ] 

ASF GitHub Bot commented on GEODE-8793:
---

gaussianrecurrence commented on a change in pull request #715:
URL: https://github.com/apache/geode-native/pull/715#discussion_r585764332



##
File path: cppcache/integration/test/PdxTypeRegistryTest.cpp
##
@@ -0,0 +1,159 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more *
+ * contributor license agreements.  See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include "framework/Cluster.h"
+#include "framework/Framework.h"
+#include "framework/Gfsh.h"
+
+namespace {
+
+using apache::geode::client::Cache;
+using apache::geode::client::CacheableInt16;
+using apache::geode::client::CacheFactory;
+using apache::geode::client::CacheListener;
+using apache::geode::client::NotConnectedException;
+using apache::geode::client::PdxInstance;
+using apache::geode::client::Region;
+using apache::geode::client::RegionEvent;
+using apache::geode::client::RegionShortcut;
+using apache::geode::client::SelectResults;
+
+static bool isDisconnected = false;
+
+class RegionListener : public CacheListener {
+ public:
+  void waitConnected() {
+std::unique_lock lock{mutex_};
+status_cv_.wait(lock, [this] { return status_; });
+  }
+
+  void waitDisconnected() {
+std::unique_lock lock{mutex_};
+status_cv_.wait(lock, [this] { return !status_; });
+  }
+
+ protected:
+  void afterRegionDisconnected(Region&) override {
+std::unique_lock lock{mutex_};
+
+status_ = false;
+status_cv_.notify_all();
+  }
+
+  void afterRegionLive(const RegionEvent&) override {
+std::unique_lock lock{mutex_};
+
+status_ = true;
+status_cv_.notify_all();
+  }
+
+ protected:
+  bool status_;
+  std::mutex mutex_;
+  std::condition_variable status_cv_;
+};
+
+Cache createTestCache() {
+  CacheFactory cacheFactory;
+  return cacheFactory.set("log-level", "none")
+  .set("connect-timeout", "2s")
+  .set("statistic-sampling-enabled", "false")
+  .set("on-client-disconnect-clear-pdxType-Ids", "true")
+  .setPdxReadSerialized(true)
+  .create();
+}
+
+void createTestPool(Cluster& cluster, Cache& cache) {
+  auto poolFactory = cache.getPoolManager()
+ .createFactory()
+ .setReadTimeout(std::chrono::seconds{1})
+ .setPingInterval(std::chrono::seconds{5})
+ .setSubscriptionEnabled(true);
+
+  cluster.applyLocators(poolFactory);
+  poolFactory.create("pool");
+}
+
+std::shared_ptr createTestRegion(
+Cache& cache, std::shared_ptr listener) {
+  auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
+  return regionFactory.setPoolName("pool").setCacheListener(listener).create(
+  "region");
+}
+
+std::shared_ptr createTestPdxInstance(Cache& cache,
+   const std::string& entry) {
+  auto factory = cache.createPdxInstanceFactory("__GEMFIRE_JSON", false);
+  return factory.writeString("entryName", entry)
+  .writeInt("int-value", -1)
+  .create();
+}
+
+TEST(PdxTypeRegistryTest, cleanupOnClusterRestart) {
+  Cluster cluster{LocatorCount{1}, ServerCount{2}};
+  cluster.start();
+
+  auto& gfsh = cluster.getGfsh();
+  gfsh.create().region().withName("region").withType("PARTITION").execute();
+
+  bool running = true;

Review comment:
   Ups, thanks for pointing it out. I must have left it there from a 
previous IT implementation.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Fix PdxTypeRegistry cleanup upon cluster disconnection
> --
>
> Key: GEODE-8793
> URL: https://issues.apache.org/jira/browse/GEODE-8793
> Project: Geode
>  Issue 

[jira] [Commented] (GEODE-8793) Fix PdxTypeRegistry cleanup upon cluster disconnection

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293860#comment-17293860
 ] 

ASF GitHub Bot commented on GEODE-8793:
---

moleske commented on a change in pull request #715:
URL: https://github.com/apache/geode-native/pull/715#discussion_r585762028



##
File path: cppcache/integration/test/PdxTypeRegistryTest.cpp
##
@@ -0,0 +1,159 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more *
+ * contributor license agreements.  See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include "framework/Cluster.h"
+#include "framework/Framework.h"
+#include "framework/Gfsh.h"
+
+namespace {
+
+using apache::geode::client::Cache;
+using apache::geode::client::CacheableInt16;
+using apache::geode::client::CacheFactory;
+using apache::geode::client::CacheListener;
+using apache::geode::client::NotConnectedException;
+using apache::geode::client::PdxInstance;
+using apache::geode::client::Region;
+using apache::geode::client::RegionEvent;
+using apache::geode::client::RegionShortcut;
+using apache::geode::client::SelectResults;
+
+static bool isDisconnected = false;
+
+class RegionListener : public CacheListener {
+ public:
+  void waitConnected() {
+std::unique_lock lock{mutex_};
+status_cv_.wait(lock, [this] { return status_; });
+  }
+
+  void waitDisconnected() {
+std::unique_lock lock{mutex_};
+status_cv_.wait(lock, [this] { return !status_; });
+  }
+
+ protected:
+  void afterRegionDisconnected(Region&) override {
+std::unique_lock lock{mutex_};
+
+status_ = false;
+status_cv_.notify_all();
+  }
+
+  void afterRegionLive(const RegionEvent&) override {
+std::unique_lock lock{mutex_};
+
+status_ = true;
+status_cv_.notify_all();
+  }
+
+ protected:
+  bool status_;
+  std::mutex mutex_;
+  std::condition_variable status_cv_;
+};
+
+Cache createTestCache() {
+  CacheFactory cacheFactory;
+  return cacheFactory.set("log-level", "none")
+  .set("connect-timeout", "2s")
+  .set("statistic-sampling-enabled", "false")
+  .set("on-client-disconnect-clear-pdxType-Ids", "true")
+  .setPdxReadSerialized(true)
+  .create();
+}
+
+void createTestPool(Cluster& cluster, Cache& cache) {
+  auto poolFactory = cache.getPoolManager()
+ .createFactory()
+ .setReadTimeout(std::chrono::seconds{1})
+ .setPingInterval(std::chrono::seconds{5})
+ .setSubscriptionEnabled(true);
+
+  cluster.applyLocators(poolFactory);
+  poolFactory.create("pool");
+}
+
+std::shared_ptr createTestRegion(
+Cache& cache, std::shared_ptr listener) {
+  auto regionFactory = cache.createRegionFactory(RegionShortcut::PROXY);
+  return regionFactory.setPoolName("pool").setCacheListener(listener).create(
+  "region");
+}
+
+std::shared_ptr createTestPdxInstance(Cache& cache,
+   const std::string& entry) {
+  auto factory = cache.createPdxInstanceFactory("__GEMFIRE_JSON", false);
+  return factory.writeString("entryName", entry)
+  .writeInt("int-value", -1)
+  .create();
+}
+
+TEST(PdxTypeRegistryTest, cleanupOnClusterRestart) {
+  Cluster cluster{LocatorCount{1}, ServerCount{2}};
+  cluster.start();
+
+  auto& gfsh = cluster.getGfsh();
+  gfsh.create().region().withName("region").withType("PARTITION").execute();
+
+  bool running = true;

Review comment:
   I believe this is unused





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Fix PdxTypeRegistry cleanup upon cluster disconnection
> --
>
> Key: GEODE-8793
> URL: https://issues.apache.org/jira/browse/GEODE-8793
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Affects Versions: 1.13.0, 1.1

[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293844#comment-17293844
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585746972



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/data/RedisHash.java
##
@@ -203,49 +279,122 @@ public int hstrlen(ByteArrayWrapper field) {
 return new ArrayList<>(hash.keySet());
   }
 
-  public Pair> hscan(Pattern matchPattern, int count, 
BigInteger cursor) {
-List returnList = new ArrayList();
-int size = hash.size();
-BigInteger beforeCursor = new BigInteger("0");
-int numElements = 0;
-int i = -1;
-for (Map.Entry entry : 
hash.entrySet()) {
-  ByteArrayWrapper key = entry.getKey();
-  ByteArrayWrapper value = entry.getValue();
-  i++;
-  if (beforeCursor.compareTo(cursor) < 0) {
-beforeCursor = beforeCursor.add(new BigInteger("1"));
+  public ImmutablePair> hscan(UUID clientID, Pattern 
matchPattern,
+  int count,
+  BigInteger cursorParameter) {
+
+int startCursor = cursorParameter.intValue();
+
+List keysToScan = getSnapShotOfKeySet(clientID);
+
+Pair> resultsPair =
+getResultsPair(keysToScan, startCursor, count, matchPattern);
+
+List resultList = resultsPair.getRight();
+
+Integer numberOfIterationsCompleted = resultsPair.getLeft();
+
+int returnCursorValueAsInt =
+getCursorValueToReturn(startCursor, numberOfIterationsCompleted, 
keysToScan);
+
+if (returnCursorValueAsInt == 0) {
+  removeHSCANSnapshot(clientID);
+}
+
+return new ImmutablePair<>(BigInteger.valueOf(returnCursorValueAsInt),
+resultList);
+  }
+
+  private void removeHSCANSnapshot(UUID clientID) {
+this.hScanSnapShots.remove(clientID);
+this.hScanSnapShotCreationTimes.remove(clientID);
+
+if (this.hScanSnapShots.isEmpty()) {
+  shutDownHscanSnapshotScheduledRemoval();
+}
+  }
+
+  @SuppressWarnings("unchecked")
+  private Pair> getResultsPair(List 
keysSnapShot,
+  int startCursor,
+  int count,
+  Pattern matchPattern) {
+
+int indexOfKeys = startCursor;
+
+List resultList = new ArrayList<>();
+
+for (int index = startCursor; index < keysSnapShot.size(); index++) {
+
+  if ((index - startCursor) == count) {
+break;
+  }
+
+  ByteArrayWrapper key = keysSnapShot.get(index);
+  indexOfKeys++;
+
+  ByteArrayWrapper value = hash.get(key);
+  if (value == null) {
 continue;
   }
 
   if (matchPattern != null) {
 if (matchPattern.matcher(key.toString()).matches()) {
-  returnList.add(key);
-  returnList.add(value);
-  numElements++;
+  resultList.add(key);
+  resultList.add(value);
 }
   } else {
-returnList.add(key);
-returnList.add(value);
-numElements++;
+resultList.add(key);
+resultList.add(value);
   }
+}
 
-  if (numElements == count) {
-break;
-  }
+Integer numberOfIterationsCompleted = indexOfKeys - startCursor;
+
+Pair resultsPair = new ImmutablePair(numberOfIterationsCompleted, 
resultList);
+
+return resultsPair;
+  }
+
+  private int getCursorValueToReturn(int startCursor,
+  int numberOfIterationsCompleted,
+  List keySnapshot) {
+
+if (startCursor + numberOfIterationsCompleted >= keySnapshot.size()) {
+  return 0;
 }
 
-Pair> scanResult;
-if (i >= size - 1) {
-  scanResult = new ImmutablePair<>(new BigInteger("0"), returnList);
-} else {
-  scanResult = new ImmutablePair<>(new BigInteger(String.valueOf(i + 1)), 
returnList);
+return (startCursor + numberOfIterationsCompleted);
+  }
+
+  @SuppressWarnings("unchecked")
+  private List getSnapShotOfKeySet(UUID clientID) {
+List keySnapShot = this.hScanSnapShots.get(clientID);
+
+if (keySnapShot == null) {
+  if (this.hScanSnapShots.isEmpty()) {
+startHscanSnapshotScheduledRemoval();
+  }
+  keySnapShot = createKeySnapShot(clientID);
 }
-return scanResult;
+return keySnapShot;
+  }
+
+
+  private List createKeySnapShot(UUID clientID) {
+List keySnapShot = new ArrayList<>();
+keySnapShot.addAll(hash.keySet());

Review comment:
   Meant to be copying these.  changed to this (I think I added this 
comment to the wrong place before) 
   
   List keySnapShot = new ArrayList<>();
   List hashKeysAsList = Arrays.asList(hash.keySet().toArray());
   Collections.copy(keySnapShot, hashKeysAsList);





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293837#comment-17293837
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585740970



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -336,48 +441,136 @@ public void 
givenMultipleCountsAndMatches_returnsEntriesMatchingLastMatchParamet
   }
 
   @Test
-  public void givenNegativeCursor_returnsEntriesUsingAbsoluteValueOfCursor() {
-Map entryMap = new HashMap<>();
-entryMap.put("1", "yellow");
-entryMap.put("2", "green");
-entryMap.put("3", "orange");
-jedis.hmset("colors", entryMap);
+  public void should_notReturnValue_givenValueWasRemovedBeforeHSCANISCalled() {
 
-String cursor = "-100";
-ScanResult> result;
-List> allEntries = new ArrayList<>();
+Map data = new HashMap<>();
+data.put("field_1", "yellow");
+data.put("field_2", "green");
+data.put("field_3", "grey");
+jedis.hmset("colors", data);
 
-do {
-  result = jedis.hscan("colors", cursor);
-  allEntries.addAll(result.getResult());
-  cursor = result.getCursor();
-} while (!result.isCompleteIteration());
+jedis.hdel("colors", "field_3");
+data.remove("field_3");
 
-assertThat(allEntries).hasSize(3);
-assertThat(new HashSet<>(allEntries)).isEqualTo(entryMap.entrySet());
+GeodeAwaitility.await().untilAsserted(
+() -> assertThat(jedis.hget("colors", "field_3")).isNull());
+
+ScanResult> result = jedis.hscan("colors", "0");
+
+assertThat(new HashSet<>(result.getResult()))
+.containsExactlyInAnyOrderElementsOf(data.entrySet());
   }
 
   @Test
-  public void givenCursorGreaterThanUnsignedLongCapacity_returnsCursorError() {
-assertThatThrownBy(() -> jedis.hscan("a", "18446744073709551616"))
-.hasMessageContaining(ERROR_CURSOR);
+  public void should_retun_not_error_given_non_zero_cursor_on_first_call() {
+
+Map data = new HashMap<>();
+data.put("field_1", "yellow");
+data.put("field_2", "green");
+data.put("field_3", "grey");
+jedis.hmset("colors", data);
+
+
+ScanResult> result = jedis.hscan("colors", "5");
+
+assertThat(new HashSet<>(result.getResult()))
+.containsExactlyInAnyOrderElementsOf(data.entrySet());
   }
 
+  / Concurrency ***/
+
+  private final int SIZE_OF_INITIAL_HASH_DATA = 100;
+  final String HASH_KEY = "key";
+  final String BASE_FIELD = "baseField_";
+
   @Test
-  public void 
givenNegativeCursorGreaterThanUnsignedLongCapacity_returnsCursorError() {
-assertThatThrownBy(() -> jedis.hscan("a", "-18446744073709551616"))
-.hasMessageContaining(ERROR_CURSOR);
+  public void 
should_notLoseFields_givenConcurrentThreadsDoingHScansAndChangingValues() {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnSizeOfResultSet(jedis, 
INITIAL_HASH_DATA),
+(i) -> multipleHScanAndAssertOnSizeOfResultSet(jedis2, 
INITIAL_HASH_DATA),
+(i) -> {
+  int fieldSuffix = i % SIZE_OF_INITIAL_HASH_DATA;
+  jedis3.hset(HASH_KEY, BASE_FIELD + fieldSuffix, "new_value_" + i);
+}).run();
+
   }
 
   @Test
-  public void givenInvalidRegexSyntax_returnsEmptyArray() {
-jedis.hset("a", "1", "green");
-ScanParams scanParams = new ScanParams();
-scanParams.count(1);
-scanParams.match("\\p");
+  public void 
should_notLoseKeysForConsistentlyPresentFields_givenConcurrentThreadsAddingAndRemovingFields()
 {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis, 
INITIAL_HASH_DATA),
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis2, 
INITIAL_HASH_DATA),
+(i) -> {
+  String field = "new_" + BASE_FIELD + i;
+  jedis3.hset(HASH_KEY, field, "whatever");
+  jedis3.hdel(HASH_KEY, field);
+}).run();
 
-ScanResult> result = jedis.hscan("a", "0", 
scanParams);
+  }
 
-assertThat(result.getResult()).isEmpty();
+  @Test
+  public void should_notAlterUnderlyingData_givenMultipleConcurrentHscans() {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis, 
INITIAL_

[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293836#comment-17293836
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585739838



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/data/RedisHash.java
##
@@ -46,19 +53,88 @@
 public class RedisHash extends AbstractRedisData {
   public static final RedisHash NULL_REDIS_HASH = new NullRedisHash();
   private HashMap hash;
+  private ConcurrentHashMap> hScanSnapShots;
+  private ConcurrentHashMap hScanSnapShotCreationTimes;
+  private ScheduledExecutorService HSCANSnapshotExpirationExecutor = null;
+
+  private static int default_hscan_snapshots_expire_check_frequency =
+  Integer.getInteger("redis.hscan-snapshot-cleanup-interval", 3);
+
+  private static int default_hscan_snapshots_milliseconds_to_live =
+  Integer.getInteger("redis.hscan-snapshot-expiry", 3);
+
+  private int HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS;
+  private int MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE;
+
+  @VisibleForTesting
+  public RedisHash(List fieldsToSet, int 
hscanSnapShotExpirationCheckFrequency,
+  int minimumLifeForHscanSnaphot) {
+this();
+
+this.HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS =
+hscanSnapShotExpirationCheckFrequency;
+this.MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE = 
minimumLifeForHscanSnaphot;
 
-  public RedisHash(List fieldsToSet) {
-hash = new HashMap<>();
 Iterator iterator = fieldsToSet.iterator();
 while (iterator.hasNext()) {
   hashPut(iterator.next(), iterator.next());
 }
   }
 
+  public RedisHash(List fieldsToSet) {
+this(fieldsToSet,
+default_hscan_snapshots_expire_check_frequency,
+default_hscan_snapshots_milliseconds_to_live);
+  }
+
+  // for serialization
   public RedisHash() {
-// for serialization
+this.hash = new HashMap<>();
+this.hScanSnapShots = new ConcurrentHashMap<>();
+this.hScanSnapShotCreationTimes = new ConcurrentHashMap<>();
+
+this.HSCAN_SNAPSHOTS_EXPIRE_CHECK_FREQUENCY_MILLISECONDS =
+this.default_hscan_snapshots_expire_check_frequency;
+
+this.MINIMUM_MILLISECONDS_FOR_HSCAN_SNAPSHOTS_TO_LIVE =
+this.default_hscan_snapshots_milliseconds_to_live;
   }
 
+
+  private void expireHScanSnapshots() {
+
+this.hScanSnapShotCreationTimes.entrySet().forEach(entry -> {

Review comment:
   o, wow-  that's because I'm not making a copy like I thought I was-  
changed to this: 
List keySnapShot = new ArrayList<>();
   List hashKeysAsList = Arrays.asList(hash.keySet().toArray());
   Collections.copy(keySnapShot, hashKeysAsList);





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293822#comment-17293822
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585722123



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -36,58 +38,86 @@
 import redis.clients.jedis.ScanParams;
 import redis.clients.jedis.ScanResult;
 
+import org.apache.geode.redis.ConcurrentLoopingThreads;
 import org.apache.geode.test.awaitility.GeodeAwaitility;
 import org.apache.geode.test.dunit.rules.RedisPortSupplier;
 
 public abstract class AbstractHScanIntegrationTest implements 
RedisPortSupplier {
 
   protected Jedis jedis;
+  private static Jedis jedis2;
+  private static Jedis jedis3;
+
   private static final int REDIS_CLIENT_TIMEOUT =
   Math.toIntExact(GeodeAwaitility.getTimeout().toMillis());
 
   @Before
   public void setUp() {
 jedis = new Jedis("localhost", getPort(), REDIS_CLIENT_TIMEOUT);
+jedis2 = new Jedis("localhost", getPort(), REDIS_CLIENT_TIMEOUT);
+jedis3 = new Jedis("localhost", getPort(), REDIS_CLIENT_TIMEOUT);
   }
 
   @After
   public void flushAll() {
 jedis.flushAll();
+jedis2.flushAll();
+jedis3.flushAll();
   }
 
   @After
   public void tearDown() {
 jedis.close();
+jedis2.close();
+jedis3.close();
   }
 
+  /* Parameter Checks **/
+
   @Test
-  public void givenNoKeyArgument_returnsWrongNumberOfArgumentsError() {
+  public void givenLessThanTwoArguments_returnsWrongNumberOfArgumentsError() {

Review comment:
   done





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8949) Create a Continuous Integration Pipeline

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293821#comment-17293821
 ] 

ASF GitHub Bot commented on GEODE-8949:
---

pdxcodemonkey commented on a change in pull request #754:
URL: https://github.com/apache/geode-native/pull/754#discussion_r585704872



##
File path: ci/lib/templates.lib.txt
##
@@ -90,7 +90,7 @@ run-clang-tidy -j $(nproc) -quiet
 
 (@ def clang_format_bash_task(): -@)
 set -ueo pipefail
-export GEODE_HOME=$(pwd)/geode/expanded/apache-geode-$(cat geode/version)
+export GEODE_HOME=$(pwd)/geode

Review comment:
   Why set GEODE_HOME here, and use -DGEODE_ROOT in cmake configure line 
below?  It'd be great to do this consistently, probably using cmake variable in 
both cases.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Create a Continuous Integration Pipeline
> 
>
> Key: GEODE-8949
> URL: https://issues.apache.org/jira/browse/GEODE-8949
> Project: Geode
>  Issue Type: Improvement
>  Components: native client
>Reporter: Michael Martell
>Priority: Major
>  Labels: pull-request-available
>
> This will be our open source CI for publishing to the Apache Software 
> Foundation. Two primary tenets are:
>  * based on Concourse
>  * PRs will trigger the CI pipeline and can't be merged until they pass the CI
> Note: The bulk of this work has been completed in draft [PR 
> #716|http://github.com/apache/geode-native/pull/716]. See that PR for further 
> details.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293820#comment-17293820
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585714865



##
File path: 
geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/executor/hash/AbstractHScanIntegrationTest.java
##
@@ -336,48 +441,136 @@ public void 
givenMultipleCountsAndMatches_returnsEntriesMatchingLastMatchParamet
   }
 
   @Test
-  public void givenNegativeCursor_returnsEntriesUsingAbsoluteValueOfCursor() {
-Map entryMap = new HashMap<>();
-entryMap.put("1", "yellow");
-entryMap.put("2", "green");
-entryMap.put("3", "orange");
-jedis.hmset("colors", entryMap);
+  public void should_notReturnValue_givenValueWasRemovedBeforeHSCANISCalled() {
 
-String cursor = "-100";
-ScanResult> result;
-List> allEntries = new ArrayList<>();
+Map data = new HashMap<>();
+data.put("field_1", "yellow");
+data.put("field_2", "green");
+data.put("field_3", "grey");
+jedis.hmset("colors", data);
 
-do {
-  result = jedis.hscan("colors", cursor);
-  allEntries.addAll(result.getResult());
-  cursor = result.getCursor();
-} while (!result.isCompleteIteration());
+jedis.hdel("colors", "field_3");
+data.remove("field_3");
 
-assertThat(allEntries).hasSize(3);
-assertThat(new HashSet<>(allEntries)).isEqualTo(entryMap.entrySet());
+GeodeAwaitility.await().untilAsserted(
+() -> assertThat(jedis.hget("colors", "field_3")).isNull());
+
+ScanResult> result = jedis.hscan("colors", "0");
+
+assertThat(new HashSet<>(result.getResult()))
+.containsExactlyInAnyOrderElementsOf(data.entrySet());
   }
 
   @Test
-  public void givenCursorGreaterThanUnsignedLongCapacity_returnsCursorError() {
-assertThatThrownBy(() -> jedis.hscan("a", "18446744073709551616"))
-.hasMessageContaining(ERROR_CURSOR);
+  public void should_retun_not_error_given_non_zero_cursor_on_first_call() {
+
+Map data = new HashMap<>();
+data.put("field_1", "yellow");
+data.put("field_2", "green");
+data.put("field_3", "grey");
+jedis.hmset("colors", data);
+
+
+ScanResult> result = jedis.hscan("colors", "5");
+
+assertThat(new HashSet<>(result.getResult()))
+.containsExactlyInAnyOrderElementsOf(data.entrySet());
   }
 
+  / Concurrency ***/
+
+  private final int SIZE_OF_INITIAL_HASH_DATA = 100;
+  final String HASH_KEY = "key";
+  final String BASE_FIELD = "baseField_";
+
   @Test
-  public void 
givenNegativeCursorGreaterThanUnsignedLongCapacity_returnsCursorError() {
-assertThatThrownBy(() -> jedis.hscan("a", "-18446744073709551616"))
-.hasMessageContaining(ERROR_CURSOR);
+  public void 
should_notLoseFields_givenConcurrentThreadsDoingHScansAndChangingValues() {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnSizeOfResultSet(jedis, 
INITIAL_HASH_DATA),
+(i) -> multipleHScanAndAssertOnSizeOfResultSet(jedis2, 
INITIAL_HASH_DATA),
+(i) -> {
+  int fieldSuffix = i % SIZE_OF_INITIAL_HASH_DATA;
+  jedis3.hset(HASH_KEY, BASE_FIELD + fieldSuffix, "new_value_" + i);
+}).run();
+
   }
 
   @Test
-  public void givenInvalidRegexSyntax_returnsEmptyArray() {
-jedis.hset("a", "1", "green");
-ScanParams scanParams = new ScanParams();
-scanParams.count(1);
-scanParams.match("\\p");
+  public void 
should_notLoseKeysForConsistentlyPresentFields_givenConcurrentThreadsAddingAndRemovingFields()
 {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis, 
INITIAL_HASH_DATA),
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis2, 
INITIAL_HASH_DATA),
+(i) -> {
+  String field = "new_" + BASE_FIELD + i;
+  jedis3.hset(HASH_KEY, field, "whatever");
+  jedis3.hdel(HASH_KEY, field);
+}).run();
 
-ScanResult> result = jedis.hscan("a", "0", 
scanParams);
+  }
 
-assertThat(result.getResult()).isEmpty();
+  @Test
+  public void should_notAlterUnderlyingData_givenMultipleConcurrentHscans() {
+final Map INITIAL_HASH_DATA = 
makeEntrySet(SIZE_OF_INITIAL_HASH_DATA);
+jedis.hset(HASH_KEY, INITIAL_HASH_DATA);
+final int ITERATION_COUNT = 500;
+
+new ConcurrentLoopingThreads(ITERATION_COUNT,
+(i) -> multipleHScanAndAssertOnContentOfResultSet(jedis, 
INITIAL_

[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293816#comment-17293816
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585709795



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/data/RedisHash.java
##
@@ -203,49 +279,122 @@ public int hstrlen(ByteArrayWrapper field) {
 return new ArrayList<>(hash.keySet());
   }
 
-  public Pair> hscan(Pattern matchPattern, int count, 
BigInteger cursor) {
-List returnList = new ArrayList();
-int size = hash.size();
-BigInteger beforeCursor = new BigInteger("0");
-int numElements = 0;
-int i = -1;
-for (Map.Entry entry : 
hash.entrySet()) {
-  ByteArrayWrapper key = entry.getKey();
-  ByteArrayWrapper value = entry.getValue();
-  i++;
-  if (beforeCursor.compareTo(cursor) < 0) {
-beforeCursor = beforeCursor.add(new BigInteger("1"));
+  public ImmutablePair> hscan(UUID clientID, Pattern 
matchPattern,
+  int count,
+  BigInteger cursorParameter) {
+
+int startCursor = cursorParameter.intValue();

Review comment:
   That makes sense. Thanks for discussing this!





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293808#comment-17293808
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

sabbey37 commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585703860



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
##
@@ -44,6 +45,9 @@
   @Override
   public RedisResponse executeCommand(Command command,
   ExecutionHandlerContext context) {
+
+final UUID CLIENT_ID = context.getClientUUID();
+
 List commandElems = command.getProcessedCommand();

Review comment:
   I think it makes sense to leave it as an `int` given the cursor 
parameter will be an `int`  and max size of a hash is the same as an `int`. 
Thanks for discussing this with everyone!





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8864) finish implementation of Redis HScan Command

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293798#comment-17293798
 ] 

ASF GitHub Bot commented on GEODE-8864:
---

jhutchison commented on a change in pull request #5954:
URL: https://github.com/apache/geode/pull/5954#discussion_r585691296



##
File path: 
geode-redis/src/main/java/org/apache/geode/redis/internal/executor/hash/HScanExecutor.java
##
@@ -44,6 +45,9 @@
   @Override
   public RedisResponse executeCommand(Command command,
   ExecutionHandlerContext context) {
+
+final UUID CLIENT_ID = context.getClientUUID();
+
 List commandElems = command.getProcessedCommand();

Review comment:
   I made a story to look into this parameters for all the scans and 
document differences.  Going to leave this as an int for now.  Yell at me if 
you strongly disagree.  





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> finish implementation of Redis HScan Command
> 
>
> Key: GEODE-8864
> URL: https://issues.apache.org/jira/browse/GEODE-8864
> Project: Geode
>  Issue Type: New Feature
>  Components: redis
>Reporter: John Hutchison
>Priority: Major
>  Labels: blocks-1.14.0​, pull-request-available
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8442) Exception in server not identified correctly in client

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293782#comment-17293782
 ] 

ASF GitHub Bot commented on GEODE-8442:
---

pdxcodemonkey commented on pull request #713:
URL: https://github.com/apache/geode-native/pull/713#issuecomment-788999841


   The test output is a little tricky to see clearly, but the issue in this PR 
is not `RegisterKeysTest.RegisterAllWithConsistencyDisabled`.  If you grep for 
it, you see the following:
   
   ```
 Start 55: RegisterKeysTest.RegisterAllWithConsistencyDisabled
   18/78 Test #55: RegisterKeysTest.RegisterAllWithConsistencyDisabled 
..***Failed  152.70 sec
   Note: Google Test filter = 
RegisterKeysTest.RegisterAllWithConsistencyDisabled
   [ RUN  ] RegisterKeysTest.RegisterAllWithConsistencyDisabled
   [2021-03-01 12:46:10.389389] [0x2d58] [info]Gfsh::execute: start 
locator --log-level=INFO 
--dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/locator/0 
--name=RegisterKeysTest_RegisterAllWithConsistencyDisabled_locator_0 
--bind-address=localhost --port=50311 --max-heap=256m 
--J=-Dgemfire.jmx-manager-port=50310 --http-service-port=0 
--J=-Dgemfire.jmx-manager-start=true
   [2021-03-01 12:46:15.701819] [0x2d58] [trace]   Gfsh::execute: (1) 
Executing - start locator --log-level=INFO 
--dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/locator/0 
--name=RegisterKeysTest_RegisterAllWithConsistencyDisabled_locator_0 
--bind-address=localhost --port=50311 --max-heap=256m 
--J=-Dgemfire.jmx-manager-port=50310 --http-service-port=0 
--J=-Dgemfire.jmx-manager-start=true
   [2021-03-01 12:46:33.904986] [0x2d58] [trace]   Gfsh::execute: Locator 
in 
C:\Users\build\build\cppcache\integration\test\RegisterKeysTest\RegisterAllWithConsistencyDisabled\locator\0
 on 127.0.0.1[50311] as 
RegisterKeysTest_RegisterAllWithConsistencyDisabled_locator_0 is currently 
online.
   [2021-03-01 12:46:33.904986] [0x2d58] [trace]   Gfsh::execute: Log File: 
C:\Users\build\build\cppcache\integration\test\RegisterKeysTest\RegisterAllWithConsistencyDisabled\locator\0\RegisterKeysTest_RegisterAllWithConsistencyDisabled_locator_0.log
   [2021-03-01 12:46:44.793326] [0x2d58] [info]Gfsh::execute: start 
server --dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/server/0 
--name=RegisterKeysTest_RegisterAllWithConsistencyDisabled_server_0 
--bind-address=localhost --server-port=0 --max-heap=1g 
--locators=localhost[50311]
   [2021-03-01 12:46:55.904964] [0x2d58] [trace]   Gfsh::execute: (2) 
Executing - start server 
--dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/server/0 
--name=RegisterKeysTest_RegisterAllWithConsistencyDisabled_server_0 
--bind-address=localhost --server-port=0 --max-heap=1g 
--locators=localhost[50311]
   [2021-03-01 12:47:10.389461] [0x2d58] [trace]   Gfsh::execute: Server in 
C:\Users\build\build\cppcache\integration\test\RegisterKeysTest\RegisterAllWithConsistencyDisabled\server\0
 on build-7876be09-a95c-4725-b2d3-4cb99aabd716.c.apachegeode-ci.internal[50533] 
as RegisterKeysTest_RegisterAllWithConsistencyDisabled_server_0 is currently 
online.
   [2021-03-01 12:47:10.389461] [0x2d58] [trace]   Gfsh::execute: Log File: 
C:\Users\build\build\cppcache\integration\test\RegisterKeysTest\RegisterAllWithConsistencyDisabled\server\0\RegisterKeysTest_RegisterAllWithConsistencyDisabled_server_0.log
   [2021-03-01 12:47:24.217552] [0x28ec] [trace]   Gfsh::execute: 
RegisterKeysTest_RegisterAllWithConsistencyDisabled_server_0 | OK | Region 
"/region" created o..
   [2021-03-01 12:48:28.451760] [0x1b0c] [info]Gfsh::execute: stop 
server --dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/server/0
   [2021-03-01 12:48:28.451760] [0x13a4] [info]Gfsh::execute: stop 
locator --dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/locator/0
   [2021-03-01 12:48:39.288256] [0x1b0c] [trace]   Gfsh::execute: (2) 
Executing - stop server 
--dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/server/0
   [2021-03-01 12:48:39.320492] [0x13a4] [trace]   Gfsh::execute: (2) 
Executing - stop locator 
--dir=RegisterKeysTest/RegisterAllWithConsistencyDisabled/locator/0
   [  FAILED  ] RegisterKeysTest.RegisterAllWithConsistencyDisabled (152546 ms)
   [  FAILED  ] RegisterKeysTest.RegisterAllWithConsistencyDisabled
 Start 55: RegisterKeysTest.RegisterAllWithConsistencyDisabled
   Test #55: RegisterKeysTest.RegisterAllWithConsistencyDisabled 
..   Passed   96.14 sec
   ```
   
   So, that test re-ran and passed the second time.  The problem is that the 
run is timing out because one test is stuck.  I have a rudimentary Python 
script that matches the "Start X:" output lines with "Test #X:" result lines, 
that shows which ones are unmatched, i.e. never completed.  Here's the ou

[jira] [Commented] (GEODE-7309) Upgrade Lucene from 6.6.2 to 8.2.0

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293694#comment-17293694
 ] 

ASF GitHub Bot commented on GEODE-7309:
---

mkevo commented on a change in pull request #6076:
URL: https://github.com/apache/geode/pull/6076#discussion_r585509589



##
File path: geode-lucene/build.gradle
##
@@ -71,6 +71,7 @@ dependencies {
 
   upgradeTestImplementation(project(':geode-dunit'))
   upgradeTestImplementation('commons-io:commons-io')
+  upgradeTestImplementation('org.apache.lucene:lucene-backward-codecs')

Review comment:
   I read some articles about Lucene and its similarities and only find 
that this backward-codecs is needed for test. So I'm not sure that we need to 
ship it with Geode.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Upgrade Lucene from 6.6.2 to 8.2.0
> --
>
> Key: GEODE-7309
> URL: https://issues.apache.org/jira/browse/GEODE-7309
> Project: Geode
>  Issue Type: Sub-task
>Reporter: Mario Kevo
>Assignee: Mario Kevo
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-7309) Upgrade Lucene from 6.6.2 to 8.2.0

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293663#comment-17293663
 ] 

ASF GitHub Bot commented on GEODE-7309:
---

mkevo commented on a change in pull request #6076:
URL: https://github.com/apache/geode/pull/6076#discussion_r585509589



##
File path: geode-lucene/build.gradle
##
@@ -71,6 +71,7 @@ dependencies {
 
   upgradeTestImplementation(project(':geode-dunit'))
   upgradeTestImplementation('commons-io:commons-io')
+  upgradeTestImplementation('org.apache.lucene:lucene-backward-codecs')

Review comment:
   I read some articles about Lucene and its similarities and only find 
that this backward-codecs is needed for test. So I'm not sure taht we need to 
ship it with Geode.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Upgrade Lucene from 6.6.2 to 8.2.0
> --
>
> Key: GEODE-7309
> URL: https://issues.apache.org/jira/browse/GEODE-7309
> Project: Geode
>  Issue Type: Sub-task
>Reporter: Mario Kevo
>Assignee: Mario Kevo
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8793) Fix PdxTypeRegistry cleanup upon cluster disconnection

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293662#comment-17293662
 ] 

ASF GitHub Bot commented on GEODE-8793:
---

gaussianrecurrence edited a comment on pull request #715:
URL: https://github.com/apache/geode-native/pull/715#issuecomment-788809853


   Maybe if @moleske @mmartell @pdxcodemonkey @mivanac @mkevo @albertogpz want 
to jump it and throw some commments, I'll be appreciated :)



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Fix PdxTypeRegistry cleanup upon cluster disconnection
> --
>
> Key: GEODE-8793
> URL: https://issues.apache.org/jira/browse/GEODE-8793
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Affects Versions: 1.13.0, 1.13.1
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Major
>  Labels: pull-request-available
>
> *GIVEN* A native client cache with on-client-disconnect-clear-pdxType-Ids is 
> set to "true" (not the best name if you ask me)
> *WHEN* the connection towards the cluster is lost
> *THEN* PdxTypeRegistry should be cleaned up straight away.
> 
> *Additional information*
> **Instead of being cleaned up straight away, PdxTypeRegistry it's cleaned up 
> every 2 cluster disconnections.
> Probably the issue is that semaphores in place are missused.
> Consider additionally to change the callback name "cliCallback" as it does 
> not represent the actual functionality here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8793) Fix PdxTypeRegistry cleanup upon cluster disconnection

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293658#comment-17293658
 ] 

ASF GitHub Bot commented on GEODE-8793:
---

albertogpz commented on pull request #715:
URL: https://github.com/apache/geode-native/pull/715#issuecomment-788843627


   Looks good to me!



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Fix PdxTypeRegistry cleanup upon cluster disconnection
> --
>
> Key: GEODE-8793
> URL: https://issues.apache.org/jira/browse/GEODE-8793
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Affects Versions: 1.13.0, 1.13.1
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Major
>  Labels: pull-request-available
>
> *GIVEN* A native client cache with on-client-disconnect-clear-pdxType-Ids is 
> set to "true" (not the best name if you ask me)
> *WHEN* the connection towards the cluster is lost
> *THEN* PdxTypeRegistry should be cleaned up straight away.
> 
> *Additional information*
> **Instead of being cleaned up straight away, PdxTypeRegistry it's cleaned up 
> every 2 cluster disconnections.
> Probably the issue is that semaphores in place are missused.
> Consider additionally to change the callback name "cliCallback" as it does 
> not represent the actual functionality here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8793) Fix PdxTypeRegistry cleanup upon cluster disconnection

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293647#comment-17293647
 ] 

ASF GitHub Bot commented on GEODE-8793:
---

gaussianrecurrence commented on pull request #715:
URL: https://github.com/apache/geode-native/pull/715#issuecomment-788809853


   Maybe if @moleske @mmartell @pdxcodemonkey @mivanac @mkevo @albertogpz want 
to jump it and throw some commments, they will be appreciated :)



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Fix PdxTypeRegistry cleanup upon cluster disconnection
> --
>
> Key: GEODE-8793
> URL: https://issues.apache.org/jira/browse/GEODE-8793
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Affects Versions: 1.13.0, 1.13.1
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Major
>  Labels: pull-request-available
>
> *GIVEN* A native client cache with on-client-disconnect-clear-pdxType-Ids is 
> set to "true" (not the best name if you ask me)
> *WHEN* the connection towards the cluster is lost
> *THEN* PdxTypeRegistry should be cleaned up straight away.
> 
> *Additional information*
> **Instead of being cleaned up straight away, PdxTypeRegistry it's cleaned up 
> every 2 cluster disconnections.
> Probably the issue is that semaphores in place are missused.
> Consider additionally to change the callback name "cliCallback" as it does 
> not represent the actual functionality here.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (GEODE-8991) Cached regions are not cleaned up whenever the connection to the cluster is lost

2021-03-02 Thread Mario Salazar de Torres (Jira)
Mario Salazar de Torres created GEODE-8991:
--

 Summary: Cached regions are not cleaned up whenever the connection 
to the cluster is lost
 Key: GEODE-8991
 URL: https://issues.apache.org/jira/browse/GEODE-8991
 Project: Geode
  Issue Type: Bug
  Components: native client
Affects Versions: 1.15.0
Reporter: Mario Salazar de Torres


Under a cluster restart scenario it can't be guaranteed that all the entries 
that existed before, exist after the restart. Hence if geode-native client has 
any cached region registered it should be cleared after the connection is lost 
towards the cluster in order to ensure cache consistency.

This is happenig in the case of the Java client, as described in this part of 
the documentation: 
[https://geode.apache.org/docs/guide/12/developing/events/how_client_server_distribution_works.html#how_client_server_distribution_works__section_928BB60066414BEB9FAA7FB3120334A3]

However, this is not the case for the native client



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-8877) Configurable membership bind address

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-8877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293589#comment-17293589
 ] 

ASF GitHub Bot commented on GEODE-8877:
---

alb3rtobr commented on pull request #6066:
URL: https://github.com/apache/geode/pull/6066#issuecomment-788773355


   > Many Distributed Tests are failing with the same problem you're hitting 
with this PR Alberto. People are looking into it.
   
   ok, lets wait then, thanks!



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Configurable membership bind address
> 
>
> Key: GEODE-8877
> URL: https://issues.apache.org/jira/browse/GEODE-8877
> Project: Geode
>  Issue Type: Improvement
>Reporter: Alberto Bustamante Reyes
>Assignee: Alberto Bustamante Reyes
>Priority: Major
>  Labels: pull-request-available
>
> Geode binds the locator and server traffic port by default to 0.0.0.0, but 
> the membership ports are bound to the local address.
> There is a use case that needs this binding to be configurable ([link to the 
> conversation in the dev list|http://markmail.org/thread/7dwtygtgfcitboy3]):
> We would like to use Istio with Geode. For that, a sidecar container (Envoy) 
> has to be added in each Geode pod. That sidecar container intercepts and 
> handles all incoming and outgoing traffic for that pod. One of the 
> requirements set by Istio towards applications trying to integrate with it is 
> that the application listening ports need to be bound to either localhost or 
> 0.0.0.0 address (which listens on all interfaces).
>  
> Geode binds the locator and server traffic port by default to 0.0.0.0, but 
> the membership ports are bound to the pod IP.
>  And with Envoy listening on the pod IP for incoming traffic and proxying 
> everything towards localhost, applications binding to pod IPs won't receive 
> any traffic.
>  We have tried using the "bind-address" parameter, but that doesn't work for 
> our case. Geode binds the listening ports to the configured address, but it 
> also shares that same address to other members in the system as the address 
> to be used to reach it. If we configure that address to localhost, it just 
> won't work.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (GEODE-8872) Add client option, to request locators internal host addresses

2021-03-02 Thread Mario Ivanac (Jira)


 [ 
https://issues.apache.org/jira/browse/GEODE-8872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mario Ivanac updated GEODE-8872:

Description: 
Additional option for clients, when pool is created, to request locators 
internal host addresses.

When sending LocatorListRequest in some cases we need to get internal host 
addresses.

To describe use case:

When deploying geode, for locator we define hostname-for-clients. This is 
external address used for WAN, and external clients.
If we also deploy some clients in internal network (for example in the same 
kubernetes cluster as geode), then for those clients to connect with locator, 
communication will go from internal network to external, then from external to 
internal. This increases latency, and we should communicate over the shortest 
path.

  was:
Additional option for clients, when pool is created, to request locators 
internal host addresses.

When sending LocatorListRequest in some cases we need to get internal host 
addresses.


> Add client option, to request locators internal host addresses 
> ---
>
> Key: GEODE-8872
> URL: https://issues.apache.org/jira/browse/GEODE-8872
> Project: Geode
>  Issue Type: New Feature
>  Components: client/server
>Reporter: Mario Ivanac
>Assignee: Mario Ivanac
>Priority: Major
>  Labels: pull-request-available
>
> Additional option for clients, when pool is created, to request locators 
> internal host addresses.
> When sending LocatorListRequest in some cases we need to get internal host 
> addresses.
> To describe use case:
> When deploying geode, for locator we define hostname-for-clients. This is 
> external address used for WAN, and external clients.
> If we also deploy some clients in internal network (for example in the same 
> kubernetes cluster as geode), then for those clients to connect with locator, 
> communication will go from internal network to external, then from external 
> to internal. This increases latency, and we should communicate over the 
> shortest path.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (GEODE-7309) Upgrade Lucene from 6.6.2 to 8.2.0

2021-03-02 Thread ASF GitHub Bot (Jira)


[ 
https://issues.apache.org/jira/browse/GEODE-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17293480#comment-17293480
 ] 

ASF GitHub Bot commented on GEODE-7309:
---

onichols-pivotal commented on a change in pull request #6076:
URL: https://github.com/apache/geode/pull/6076#discussion_r585337063



##
File path: geode-lucene/build.gradle
##
@@ -71,6 +71,7 @@ dependencies {
 
   upgradeTestImplementation(project(':geode-dunit'))
   upgradeTestImplementation('commons-io:commons-io')
+  upgradeTestImplementation('org.apache.lucene:lucene-backward-codecs')

Review comment:
   just checking, is backward-codecs really only required by tests, not 
end-users too?  I would naively assume it needs to be shipped with Geode as 
well.





This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Upgrade Lucene from 6.6.2 to 8.2.0
> --
>
> Key: GEODE-7309
> URL: https://issues.apache.org/jira/browse/GEODE-7309
> Project: Geode
>  Issue Type: Sub-task
>Reporter: Mario Kevo
>Assignee: Mario Kevo
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)