[jira] [Created] (GEODE-8693) C++ native client Function.execute() with onServers does not throw exception if one of the servers goes down while executing the function.

2020-11-10 Thread Alberto Gomez (Jira)
Alberto Gomez created GEODE-8693:


 Summary: C++ native client Function.execute() with onServers does 
not throw exception if one of the servers goes down while executing the 
function.
 Key: GEODE-8693
 URL: https://issues.apache.org/jira/browse/GEODE-8693
 Project: Geode
  Issue Type: Bug
  Components: native client
Reporter: Alberto Gomez


According to the Apache Geode Native C++ API documentation, the 
FunctionService.onServers() function will throw an Exception if one of the 
servers goes down while dispatching or executing the function on the server.

Nevertheless, currently no exception is thrown in that case.



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


[jira] [Assigned] (GEODE-8693) C++ native client Function.execute() with onServers does not throw exception if one of the servers goes down while executing the function.

2020-11-10 Thread Alberto Gomez (Jira)


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

Alberto Gomez reassigned GEODE-8693:


Assignee: Alberto Gomez

> C++ native client Function.execute() with onServers does not throw exception 
> if one of the servers goes down while executing the function.
> --
>
> Key: GEODE-8693
> URL: https://issues.apache.org/jira/browse/GEODE-8693
> Project: Geode
>  Issue Type: Bug
>  Components: native client
>Reporter: Alberto Gomez
>Assignee: Alberto Gomez
>Priority: Major
>
> According to the Apache Geode Native C++ API documentation, the 
> FunctionService.onServers() function will throw an Exception if one of the 
> servers goes down while dispatching or executing the function on the server.
> Nevertheless, currently no exception is thrown in that case.



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


[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

gaussianrecurrence opened a new pull request #5725:
URL: https://github.com/apache/geode/pull/5725


- If while calling DistributionImpl.start there was either a
  MembershipConfigurationException or MemberStartupException exceptions, its
  original cause was not propagated, therefore being unable to properly
  tackling issues on startup.
- This commit propagates the cause for both exceptions.
- Also 2 JUint test were added to make sure this is working.
   
   ---
   
   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?
   
   - [ ] Does `gradlew build` run cleanly?
   
   - [x] Have you written or updated unit tests to verify your changes?
   
   - [x] **(N/A)** 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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apach

[jira] [Updated] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3034)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217)
> Caused by: java.lang.Exception: failed to open a port in range 53-53
> at org.jgroups.protocols.UDP.createMulticastSocketWithBindPort(UDP.java:503)
> at org.jgroups.protocols.UDP.createSockets(UDP.java:348)
> at org.jgroups.protocols.UDP.start(UDP.java:266)
> at org.jgroups.stack.P

[jira] [Resolved] (GEODE-8691) Add test to cover native redis hits and misses statistics

2020-11-10 Thread Jens Deppe (Jira)


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

Jens Deppe resolved GEODE-8691.
---
Fix Version/s: 1.14.0
   Resolution: Fixed

> Add test to cover native redis hits and misses statistics
> -
>
> Key: GEODE-8691
> URL: https://issues.apache.org/jira/browse/GEODE-8691
> Project: Geode
>  Issue Type: Test
>  Components: redis
>Reporter: Jens Deppe
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.14.0
>
>




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


[jira] [Commented] (GEODE-8626) Omitting field-mapping tag of cache.xml when using Simple JDBC Connector

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

masaki-yamakawa commented on a change in pull request #5637:
URL: https://github.com/apache/geode/pull/5637#discussion_r520637876



##
File path: 
geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceImpl.java
##
@@ -210,4 +224,152 @@ private TableMetaDataView 
getTableMetaDataView(RegionMapping regionMapping,
   + regionMapping.getDataSourceName() + "\": ", ex);
 }
   }
+
+  @Override
+  public TableMetaDataView getTableMetaDataView(RegionMapping regionMapping) {
+DataSource dataSource = getDataSource(regionMapping.getDataSourceName());
+if (dataSource == null) {
+  throw new JdbcConnectorException("No datasource \"" + 
regionMapping.getDataSourceName()
+  + "\" found when getting table meta data \"" + 
regionMapping.getRegionName() + "\"");

Review comment:
   Thank you.
   I would like to fix it as you suggested.





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


> Omitting field-mapping tag of cache.xml when using Simple JDBC Connector
> 
>
> Key: GEODE-8626
> URL: https://issues.apache.org/jira/browse/GEODE-8626
> Project: Geode
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Masaki Yamakawa
>Priority: Minor
>  Labels: pull-request-available
>
> When configuring Simple JDBC Connector with gfsh, I don't need to create 
> field-mapping, the default field-mapping will be created from pdx and table 
> meta data.
> On the other hand, when using cache.xml(cluster.xml), pdx and table meta data 
> cannot be used, and field-mapping must be described in cache.xml.
> I would like to create field-mapping defaults based on pdx and table meta 
> data when using cache.xml.
> If field-mapping is specified in cache.xml, the xml setting has priority, and 
> only if there are no field-mapping tags.
> cache.xml will be as follows:
> {code:java}
> 
>  data-source="TestDataSource"
> table="employees"
> pdx-name="org.apache.geode.connectors.jdbc.Employee"
> ids="id">
> 
> 
> 
> {code}



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


[jira] [Commented] (GEODE-8626) Omitting field-mapping tag of cache.xml when using Simple JDBC Connector

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

masaki-yamakawa commented on a change in pull request #5637:
URL: https://github.com/apache/geode/pull/5637#discussion_r520637605



##
File path: 
geode-connectors/src/acceptanceTest/java/org/apache/geode/connectors/jdbc/GfshJdbcMappingIntegrationTest.java
##
@@ -0,0 +1,208 @@
+/*
+ * 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.connectors.jdbc;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.geode.cache.CacheFactory;
+import org.apache.geode.cache.configuration.JndiBindingsType;
+import org.apache.geode.cache.configuration.RegionConfig;
+import org.apache.geode.cache.execute.Function;
+import org.apache.geode.cache.execute.ResultCollector;
+import org.apache.geode.connectors.jdbc.internal.cli.CreateMappingFunction;
+import 
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingPreconditionCheckFunction;
+import org.apache.geode.connectors.jdbc.internal.configuration.FieldMapping;
+import org.apache.geode.connectors.jdbc.internal.configuration.RegionMapping;
+import org.apache.geode.distributed.DistributedMember;
+import org.apache.geode.internal.cache.InternalCache;
+import org.apache.geode.management.configuration.RegionType;
+import 
org.apache.geode.management.internal.cli.commands.CreateJndiBindingCommand;
+import 
org.apache.geode.management.internal.cli.functions.CreateJndiBindingFunction;
+import 
org.apache.geode.management.internal.cli.functions.CreateRegionFunctionArgs;
+import org.apache.geode.management.internal.cli.functions.RegionCreateFunction;
+import 
org.apache.geode.management.internal.configuration.converters.RegionConverter;
+import org.apache.geode.management.internal.functions.CliFunctionResult;
+import org.apache.geode.management.internal.util.ManagementUtils;
+
+public class GfshJdbcMappingIntegrationTest extends JdbcMappingIntegrationTest 
{
+
+  @Override
+  protected InternalCache createCacheAndCreateJdbcMapping(String 
cacheXmlTestName)
+  throws Exception {
+InternalCache cache =
+(InternalCache) new CacheFactory().set("locators", 
"").set("mcast-port", "0").create();
+Set targetMembers = findMembers(cache, null, null);
+
+CliFunctionResult createRegionFuncResult = 
executeCreateRegionFunction(targetMembers);

Review comment:
   OK, I will try to implement the test using gfsh commands.





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


> Omitting field-mapping tag of cache.xml when using Simple JDBC Connector
> 
>
> Key: GEODE-8626
> URL: https://issues.apache.org/jira/browse/GEODE-8626
> Project: Geode
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Masaki Yamakawa
>Priority: Minor
>  Labels: pull-request-available
>
> When configuring Simple JDBC Connector with gfsh, I don't need to create 
> field-mapping, the default field-mapping will be created from pdx and table 
> meta data.
> On the other hand, when using cache.xml(cluster.xml), pdx and table meta data 
> cannot be used, and field-mapping must be described in cache.xml.
> I would like to create field-mapping defaults based on pdx and table meta 
> data when using cache.xml.
> If field-mapping is specified in cache.xml, the xml setting has priority, and 
> only if there are no field-mapping tags.
> cache.xml will be as follows:
> {code:java}
> 
>  data-source="TestDataSource"
> table="employees"
> pdx-name="org.apache.geode.connectors.jdbc.Employee"

[jira] [Commented] (GEODE-8626) Omitting field-mapping tag of cache.xml when using Simple JDBC Connector

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

masaki-yamakawa commented on a change in pull request #5637:
URL: https://github.com/apache/geode/pull/5637#discussion_r520638425



##
File path: 
geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingPreconditionCheckFunctionTest.java
##
@@ -306,45 +292,10 @@ public void 
executeFunctionThrowsGivenPdxSerializableWithNoZeroArgConstructor()
 "Could not generate a PdxType for the class 
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingPreconditionCheckFunctionTest$PdxClassDummyNoZeroArg
 because it did not have a public zero arg constructor. Details: 
java.lang.NoSuchMethodException: 
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingPreconditionCheckFunctionTest$PdxClassDummyNoZeroArg.()");
   }
 
-  @Test

Review comment:
   I will add the test using the `ReflectionBasedAutoSerializer` and verify 
the field mapping.





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


> Omitting field-mapping tag of cache.xml when using Simple JDBC Connector
> 
>
> Key: GEODE-8626
> URL: https://issues.apache.org/jira/browse/GEODE-8626
> Project: Geode
>  Issue Type: Improvement
>  Components: jdbc
>Reporter: Masaki Yamakawa
>Priority: Minor
>  Labels: pull-request-available
>
> When configuring Simple JDBC Connector with gfsh, I don't need to create 
> field-mapping, the default field-mapping will be created from pdx and table 
> meta data.
> On the other hand, when using cache.xml(cluster.xml), pdx and table meta data 
> cannot be used, and field-mapping must be described in cache.xml.
> I would like to create field-mapping defaults based on pdx and table meta 
> data when using cache.xml.
> If field-mapping is specified in cache.xml, the xml setting has priority, and 
> only if there are no field-mapping tags.
> cache.xml will be as follows:
> {code:java}
> 
>  data-source="TestDataSource"
> table="employees"
> pdx-name="org.apache.geode.connectors.jdbc.Employee"
> ids="id">
> 
> 
> 
> {code}



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


[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

sabbey37 commented on pull request #5722:
URL: https://github.com/apache/geode/pull/5722#issuecomment-724801298


   > Looks good. Can you add a unit test and add coverage of the new code to it?
   
   Just added a couple of unit tests @dschneider-pivotal.  Let me know what you 
think.



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


> ArrayIndexOutOfBoundsException may be thrown in 
> RegionAdvisor.processProfilesQueuedDuringInitialization
> ---
>
> Key: GEODE-8692
> URL: https://issues.apache.org/jira/browse/GEODE-8692
> Project: Geode
>  Issue Type: Bug
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Minor
>  Labels: pull-request-available
>
> If {{RegionAdvisor.buckets == null}} at the time the value of {{serials}} is 
> generated, an {{ArrayIndexOutOfBoundsException}} may be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization}} if buckets have 
> been initialized at that point.
> Code where {{ArrayIndexOutOfBoundsException}} might be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization():}}
> {code:java}
> for (int i = 0; i < buckets.length; i++) {
>   BucketAdvisor ba = buckets[i].getBucketAdvisor();
>   int serial = qbp.serials[i]; <<< Exception thrown here
>   if (serial != ILLEGAL_SERIAL) {
> ba.removeIdWithSerial(qbp.memberId, serial, qbp.destroyed);
>   }
> }
> {code}
>  



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


[jira] [Commented] (GEODE-8684) Setting a session's maxInactiveInterval does not work when the commit valve is disabled

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/Tomcat9CachingClientServerValveDisabledTest.java
##
@@ -0,0 +1,28 @@
+/*
+ * 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.session.tests;
+
+import static 
org.apache.geode.session.tests.ContainerInstall.ConnectionType.CACHING_CLIENT_SERVER;
+import static 
org.apache.geode.session.tests.TomcatInstall.TomcatVersion.TOMCAT9;
+
+import java.util.function.IntSupplier;
+
+public class Tomcat9CachingClientServerValveDisabledTest extends 
TomcatClientServerTest {

Review comment:
   Should we add a ValveDisabled test for other versions of Tomcat? Or is 
it unnecessary?





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


> Setting a session's maxInactiveInterval does not work when the commit valve 
> is disabled
> ---
>
> Key: GEODE-8684
> URL: https://issues.apache.org/jira/browse/GEODE-8684
> Project: Geode
>  Issue Type: Bug
>  Components: http session
>Affects Versions: 1.14.0
>Reporter: Jens Deppe
>Assignee: Jens Deppe
>Priority: Major
>  Labels: pull-request-available
>
> I was using the {{CommandServlet}}, in an external test, and noticed that 
> when the commit valve is disabled, attempting to set the session's 
> maxInactiveInterval does not cause the session's maxInactiveInterval to be 
> changed and it remains at the default.
> My setup consisted of 2 Geode servers and a single Tomcat instance (9.0.39). 
> I was checking the sessions with the following gfsh query:
> {code:java}
> query --query="select e.key,e.value.maxInactiveInterval from 
> /gemfire_modules_sessions.entries as e
> {code}
> My {{context.xml}} includes the following:
> {code:xml}
>className="org.apache.geode.modules.session.catalina.Tomcat8DeltaSessionManager"
>   enableLocalCache="false"
>   enableCommitValve="false"
>   regionAttributesId="PARTITION_REDUNDANT"
>   />
> {code}



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


[jira] [Created] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread Sarah Abbey (Jira)
Sarah Abbey created GEODE-8694:
--

 Summary: Use fork of Redis in Gemfire org to run Redis tests in CI
 Key: GEODE-8694
 URL: https://issues.apache.org/jira/browse/GEODE-8694
 Project: Geode
  Issue Type: Improvement
  Components: redis
Reporter: Sarah Abbey


Currently, we are using a contributor's personal fork of Redis to run tests 
against Geode Redis in CI.  This should be switched to the fork of Redis in the 
Gemfire org.  Ideally, we will eventually be able to run tests from the root 
Redis repo (currently we are unable to since we are not implementing all the 
necessary commands).



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


[jira] [Updated] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread Sarah Abbey (Jira)


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

Sarah Abbey updated GEODE-8694:
---
Priority: Trivial  (was: Major)

> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Priority: Trivial
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Assigned] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread Sarah Abbey (Jira)


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

Sarah Abbey reassigned GEODE-8694:
--

Assignee: Sarah Abbey

> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Trivial
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Commented] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

sabbey37 opened a new pull request #5726:
URL: https://github.com/apache/geode/pull/5726


   Currently, we are using a contributor's personal fork of Redis to run tests 
against Geode Redis in CI.  This should be switched to the fork of Redis in the 
Gemfire org.  Ideally, we will eventually be able to run tests from the root 
Redis repo (currently we are unable to since we are not implementing all the 
necessary commands).
   
   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?
   
   - [ x] Have you written or updated unit tests to verify your changes?
   
   - [ x] 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


> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Trivial
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Updated] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Trivial
>  Labels: pull-request-available
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

DonalEvans merged pull request #5707:
URL: https://github.com/apache/geode/pull/5707


   



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


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Resolved] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread Donal Evans (Jira)


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

Donal Evans resolved GEODE-8686.

Fix Version/s: 1.14.0
   Resolution: Fixed

> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.14.0
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit 70b1ee8b98f1458620539c4a962e82f8ef35707b in geode's branch 
refs/heads/develop from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=70b1ee8 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 

> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.14.0
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-7710) JMXMBeanReconnectDUnitTest fails intermittently because one locator is missing the LockServiceMXBean

2020-11-10 Thread Geode Integration (Jira)


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

Geode Integration commented on GEODE-7710:
--

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

> JMXMBeanReconnectDUnitTest fails intermittently because one locator is 
> missing the LockServiceMXBean
> 
>
> Key: GEODE-7710
> URL: https://issues.apache.org/jira/browse/GEODE-7710
> Project: Geode
>  Issue Type: Bug
>  Components: tests
>Affects Versions: 1.13.0
>Reporter: Kirk Lund
>Assignee: Kirk Lund
>Priority: Major
>  Labels: flaky
>  Time Spent: 5h
>  Remaining Estimate: 0h
>
> Multiple tests in JMXMBeanReconnectDUnitTest may fail an await due to one of 
> the locators missing the LockServiceMXBean for the cluster config service.
> {noformat}
> but could not find:
>  
> <[GemFire:service=LockService,name=__CLUSTER_CONFIG_LS,type=Member,member=locator1]>
> {noformat}
> These test failures are caused by *GEODE-7739*.



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


[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

moleske commented on a change in pull request #5725:
URL: https://github.com/apache/geode/pull/5725#discussion_r520744117



##
File path: 
geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionTest.java
##
@@ -204,4 +207,30 @@ public void testSendToEmptyListIsRejected() throws 
Exception {
 distribution.send(emptyList, m);
 verify(membership, never()).send(any(), any());
   }
+
+  @Test
+  public void testExceptionNestedOnStartConfigError() throws Exception {
+Throwable cause = new RuntimeException("Exception cause");
+Throwable exception = new MembershipConfigurationException("Test 
exception", cause);
+doThrow(exception).when(membership).start();
+try {

Review comment:
   JUnit has 
[ExpectedException](https://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html)
 which I think works better than `try` `catch` statements.  There are some 
examples in the Geode code base if you want some inspiration





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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.

[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

gaussianrecurrence commented on a change in pull request #5725:
URL: https://github.com/apache/geode/pull/5725#discussion_r520747246



##
File path: 
geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionTest.java
##
@@ -204,4 +207,30 @@ public void testSendToEmptyListIsRejected() throws 
Exception {
 distribution.send(emptyList, m);
 verify(membership, never()).send(any(), any());
   }
+
+  @Test
+  public void testExceptionNestedOnStartConfigError() throws Exception {
+Throwable cause = new RuntimeException("Exception cause");
+Throwable exception = new MembershipConfigurationException("Test 
exception", cause);
+doThrow(exception).when(membership).start();
+try {

Review comment:
   Thanks for the comment! TBH I’ve never used JUnit or mockito before, so 
any comments are welcome!





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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distri

[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

moleske commented on a change in pull request #5725:
URL: https://github.com/apache/geode/pull/5725#discussion_r520750337



##
File path: 
geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionTest.java
##
@@ -204,4 +207,30 @@ public void testSendToEmptyListIsRejected() throws 
Exception {
 distribution.send(emptyList, m);
 verify(membership, never()).send(any(), any());
   }
+
+  @Test
+  public void testExceptionNestedOnStartConfigError() throws Exception {
+Throwable cause = new RuntimeException("Exception cause");
+Throwable exception = new MembershipConfigurationException("Test 
exception", cause);
+doThrow(exception).when(membership).start();
+try {

Review comment:
   Always glad to provide new learning opportunities for folks 😄
   Plus no time like the present to learn new things!





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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.

[jira] [Commented] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

sabbey37 commented on pull request #5726:
URL: https://github.com/apache/geode/pull/5726#issuecomment-724869478


   Will find a different way to test Geode Redis compatibility.



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


> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Trivial
>  Labels: pull-request-available
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Commented] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

sabbey37 closed pull request #5726:
URL: https://github.com/apache/geode/pull/5726


   



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


> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Trivial
>  Labels: pull-request-available
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.BucketAdvisor;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.ProxyBucketRegion;
+
+public class RegionAdvisorJUnitTest {
+
+  private PartitionedRegion partitionedRegion;
+  private RegionAdvisor regionAdvisor;
+  private final int[] serials = new int[] {ILLEGAL_SERIAL, ILLEGAL_SERIAL, 
ILLEGAL_SERIAL};
+
+  @Before
+  public void setUp() throws Exception {
+partitionedRegion = mock(PartitionedRegion.class);
+regionAdvisor = new RegionAdvisor(partitionedRegion);
+  }
+
+  @Test
+  public void 
getBucketSerials_shouldReturnAnArrayOfIllegalSerials_whenBucketsAreNull() {
+RegionAttributes regionAttributes = mock(RegionAttributes.class);
+PartitionAttributes partitionAttributes = mock(PartitionAttributes.class);
+when(partitionedRegion.getAttributes()).thenReturn(regionAttributes);
+
when(regionAttributes.getPartitionAttributes()).thenReturn(partitionAttributes);
+when(partitionAttributes.getTotalNumBuckets()).thenReturn(3);
+
+assertThat(regionAdvisor.getBucketSerials()).containsExactly(serials);
+  }
+
+  @Test
+  public void 
processProfilesQueuedDuringInitialization_shouldNotThrowIndexOutOfBoundsException()
 {

Review comment:
   Two of the variable names in this test, `qbp` and `pbr` could be a bit 
more descriptive. I don't think there's anything wrong with long variable 
names, providing it's providing extra clarity.

##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geo

[jira] [Updated] (GEODE-8695) CI should not run Redis tests from fork

2020-11-10 Thread Sarah Abbey (Jira)


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

Sarah Abbey updated GEODE-8695:
---
Priority: Minor  (was: Major)

> CI should not run Redis tests from fork
> ---
>
> Key: GEODE-8695
> URL: https://issues.apache.org/jira/browse/GEODE-8695
> Project: Geode
>  Issue Type: Improvement
>  Components: ci, redis
>Reporter: Sarah Abbey
>Priority: Minor
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to use the root Redis 
> repo.



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


[jira] [Assigned] (GEODE-8695) CI should not run Redis tests from fork

2020-11-10 Thread Sarah Abbey (Jira)


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

Sarah Abbey reassigned GEODE-8695:
--

Assignee: Helena Bales

> CI should not run Redis tests from fork
> ---
>
> Key: GEODE-8695
> URL: https://issues.apache.org/jira/browse/GEODE-8695
> Project: Geode
>  Issue Type: Improvement
>  Components: ci, redis
>Reporter: Sarah Abbey
>Assignee: Helena Bales
>Priority: Minor
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to use the root Redis 
> repo.



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


[jira] [Created] (GEODE-8695) CI should not run Redis tests from fork

2020-11-10 Thread Sarah Abbey (Jira)
Sarah Abbey created GEODE-8695:
--

 Summary: CI should not run Redis tests from fork
 Key: GEODE-8695
 URL: https://issues.apache.org/jira/browse/GEODE-8695
 Project: Geode
  Issue Type: Improvement
  Components: ci, redis
Reporter: Sarah Abbey


Currently, we are using a contributor's personal fork of Redis to run tests 
against Geode Redis in CI.  This should be switched to use the root Redis repo.



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


[jira] [Resolved] (GEODE-8694) Use fork of Redis in Gemfire org to run Redis tests in CI

2020-11-10 Thread Sarah Abbey (Jira)


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

Sarah Abbey resolved GEODE-8694.

  Assignee: Helena Bales  (was: Sarah Abbey)
Resolution: Duplicate

> Use fork of Redis in Gemfire org to run Redis tests in CI
> -
>
> Key: GEODE-8694
> URL: https://issues.apache.org/jira/browse/GEODE-8694
> Project: Geode
>  Issue Type: Improvement
>  Components: redis
>Reporter: Sarah Abbey
>Assignee: Helena Bales
>Priority: Trivial
>  Labels: pull-request-available
>
> Currently, we are using a contributor's personal fork of Redis to run tests 
> against Geode Redis in CI.  This should be switched to the fork of Redis in 
> the Gemfire org.  Ideally, we will eventually be able to run tests from the 
> root Redis repo (currently we are unable to since we are not implementing all 
> the necessary commands).



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


[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.BucketAdvisor;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.ProxyBucketRegion;
+
+public class RegionAdvisorJUnitTest {
+
+  private PartitionedRegion partitionedRegion;
+  private RegionAdvisor regionAdvisor;
+  private final int[] serials = new int[] {ILLEGAL_SERIAL, ILLEGAL_SERIAL, 
ILLEGAL_SERIAL};
+
+  @Before
+  public void setUp() throws Exception {
+partitionedRegion = mock(PartitionedRegion.class);
+regionAdvisor = new RegionAdvisor(partitionedRegion);
+  }
+
+  @Test
+  public void 
getBucketSerials_shouldReturnAnArrayOfIllegalSerials_whenBucketsAreNull() {
+RegionAttributes regionAttributes = mock(RegionAttributes.class);
+PartitionAttributes partitionAttributes = mock(PartitionAttributes.class);
+when(partitionedRegion.getAttributes()).thenReturn(regionAttributes);
+
when(regionAttributes.getPartitionAttributes()).thenReturn(partitionAttributes);
+when(partitionAttributes.getTotalNumBuckets()).thenReturn(3);
+
+assertThat(regionAdvisor.getBucketSerials()).containsExactly(serials);
+  }
+
+  @Test
+  public void 
processProfilesQueuedDuringInitialization_shouldNotThrowIndexOutOfBoundsException()
 {

Review comment:
   Sounds good!





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


> ArrayIndexOutOfBoundsException may be thrown in 
> RegionAdvisor.processProfilesQueuedDuringInitialization
> ---
>
> Key: GEODE-8692
> URL: https://issues.apache.org/jira/browse/GEODE-8692
> Project: Geode
>  Issue Type: Bug
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Minor
>  Labels: pull-request-available
>
> If {{RegionAdvisor.buckets == null}} at the time the value of {{serials}} is 
> generated, an {{ArrayIndexOutOfBoundsException}} may be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization}} if buckets have 
> been initialized at that point.
> Code where {{ArrayIndexOutOfBoundsException}} might be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization():}}
> {code:java}
> for (int i = 0; i < buckets.length; i++) {
>   BucketAdvisor ba = buckets[i].getBucketAdvisor();
>   int serial = qbp.serials[i]; <<< Exception thrown here
>   if (serial != ILLEGAL_SERIAL) {
> ba.removeIdWithSerial(qbp.memberId, serial, qbp.destroyed);
>   }
> }
> {code}
>  



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


[jira] [Commented] (GEODE-8466) Create a ClassLoaderService to abstract away dealing with the default ClassLoader directly

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

lgtm-com[bot] commented on pull request #5548:
URL: https://github.com/apache/geode/pull/5548#issuecomment-724913938


   This pull request **introduces 3 alerts** and **fixes 1** when merging 
846309e00049b107ca9e72c6b699e20eefdcdd66 into 
70b1ee8b98f1458620539c4a962e82f8ef35707b - [view on 
LGTM.com](https://lgtm.com/projects/g/apache/geode/rev/pr-d1e671db8a7e7bf2d6907c3f4c88dc2c86aa0aa7)
   
   **new alerts:**
   
   * 2 for Potential input resource leak
   * 1 for Use of a broken or risky cryptographic algorithm
   
   **fixed alerts:**
   
   * 1 for Use of a broken or risky cryptographic algorithm



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 ClassLoaderService to abstract away dealing with the default 
> ClassLoader directly
> --
>
> Key: GEODE-8466
> URL: https://issues.apache.org/jira/browse/GEODE-8466
> Project: Geode
>  Issue Type: New Feature
>  Components: core
>Reporter: Udo Kohlmeyer
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> With the addition of ClassLoader isolation using JBoss Modules GEODE-8067, 
> the manner in which we interact with the ClassLoader needs to change.
> An abstraction is required around the default functions like 
> `findResourceAsStream`, `loadClass` and `loadService`.
> As these features will behave differently between different ClassLoader 
> implementations, it is best to have a single service that will expose that 
> functionality in a transparent manner.



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


[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.BucketAdvisor;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.ProxyBucketRegion;
+
+public class RegionAdvisorJUnitTest {
+
+  private PartitionedRegion partitionedRegion;
+  private RegionAdvisor regionAdvisor;
+  private final int[] serials = new int[] {ILLEGAL_SERIAL, ILLEGAL_SERIAL, 
ILLEGAL_SERIAL};
+
+  @Before
+  public void setUp() throws Exception {
+partitionedRegion = mock(PartitionedRegion.class);
+regionAdvisor = new RegionAdvisor(partitionedRegion);
+  }
+
+  @Test
+  public void 
getBucketSerials_shouldReturnAnArrayOfIllegalSerials_whenBucketsAreNull() {
+RegionAttributes regionAttributes = mock(RegionAttributes.class);
+PartitionAttributes partitionAttributes = mock(PartitionAttributes.class);
+when(partitionedRegion.getAttributes()).thenReturn(regionAttributes);
+
when(regionAttributes.getPartitionAttributes()).thenReturn(partitionAttributes);
+when(partitionAttributes.getTotalNumBuckets()).thenReturn(3);

Review comment:
   Definitely. Good call!





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


> ArrayIndexOutOfBoundsException may be thrown in 
> RegionAdvisor.processProfilesQueuedDuringInitialization
> ---
>
> Key: GEODE-8692
> URL: https://issues.apache.org/jira/browse/GEODE-8692
> Project: Geode
>  Issue Type: Bug
>Reporter: Sarah Abbey
>Assignee: Sarah Abbey
>Priority: Minor
>  Labels: pull-request-available
>
> If {{RegionAdvisor.buckets == null}} at the time the value of {{serials}} is 
> generated, an {{ArrayIndexOutOfBoundsException}} may be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization}} if buckets have 
> been initialized at that point.
> Code where {{ArrayIndexOutOfBoundsException}} might be thrown in 
> {{RegionAdvisor.processProfilesQueuedDuringInitialization():}}
> {code:java}
> for (int i = 0; i < buckets.length; i++) {
>   BucketAdvisor ba = buckets[i].getBucketAdvisor();
>   int serial = qbp.serials[i]; <<< Exception thrown here
>   if (serial != ILLEGAL_SERIAL) {
> ba.removeIdWithSerial(qbp.memberId, serial, qbp.destroyed);
>   }
> }
> {code}
>  



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


[jira] [Updated] (GEODE-7675) Partitioned Region clear should be successful when clients are present with subscription enabled

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

> Partitioned Region clear should be successful when clients are present with 
> subscription enabled
> 
>
> Key: GEODE-7675
> URL: https://issues.apache.org/jira/browse/GEODE-7675
> Project: Geode
>  Issue Type: Sub-task
>  Components: regions
>Reporter: Nabarun Nag
>Priority: Major
>  Labels: GeodeCommons, pull-request-available
>
> Clear operations are successful when Client Subscriptions are enabled and 
> clients are updated with the correct region clear event.
>  
> Acceptance :
>  * DUnit tests ensuring that clear operations are successful 
>  * Ensure that all clients are getting the correct event notifications.
>  * HA enabled tests
>  * Test coverage to when a member departs in this scenario
>  * Test coverage to when a member restarts in this scenario
>  * Unit tests with complete code coverage for the newly written code.
>  



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


[jira] [Commented] (GEODE-7675) Partitioned Region clear should be successful when clients are present with subscription enabled

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

jinmeiliao opened a new pull request #5727:
URL: https://github.com/apache/geode/pull/5727


   …s are present with subscription enabled
   
   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


> Partitioned Region clear should be successful when clients are present with 
> subscription enabled
> 
>
> Key: GEODE-7675
> URL: https://issues.apache.org/jira/browse/GEODE-7675
> Project: Geode
>  Issue Type: Sub-task
>  Components: regions
>Reporter: Nabarun Nag
>Priority: Major
>  Labels: GeodeCommons
>
> Clear operations are successful when Client Subscriptions are enabled and 
> clients are updated with the correct region clear event.
>  
> Acceptance :
>  * DUnit tests ensuring that clear operations are successful 
>  * Ensure that all clients are getting the correct event notifications.
>  * HA enabled tests
>  * Test coverage to when a member departs in this scenario
>  * Test coverage to when a member restarts in this scenario
>  * Unit tests with complete code coverage for the newly written code.
>  



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


[jira] [Commented] (GEODE-8261) Do not add proxyID to client interest list if it is null

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8261:


Commit d682b662ee25e4894deafd0ac30a9cb63961fe8c in geode's branch 
refs/heads/support/1.12 from Nabarun Nag
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=d682b66 ]

GEODE-8261: Added a null check for the proxyID. (#5251)

* During shutdown operations proxyID can be null.
* Executing operations using this null value can cause NPEs
* The solution is to skip all operations if the proxyID value is null.

(cherry picked from commit 7609cfaefcaed12ce4bdc9450859e690e1c79815)


> Do not add proxyID to client interest list if it is null
> 
>
> Key: GEODE-8261
> URL: https://issues.apache.org/jira/browse/GEODE-8261
> Project: Geode
>  Issue Type: Task
>  Components: client queues
>Reporter: Nabarun Nag
>Priority: Major
> Fix For: 1.13.0, 1.14.0
>
>
> * Sometime during shutdown proxyIDs can be null 
>  * Attempting to add this null value to data structures can cause NPE. For 
> example the below mentioned code snippets may cause NPE if proxyID is null.
> {code:java}
> protected void addClientCQsAndInterestList(ClientUpdateMessageImpl msg,
>   HAEventWrapper haEventWrapper, Map haContainer, String regionName) {
> ClientProxyMembershipID proxyID = ((HAContainerWrapper) 
> haContainer).getProxyID(regionName);
> if (proxyID != null) {
>   if (haEventWrapper.getClientCqs() != null) {
> CqNameToOp clientCQ = haEventWrapper.getClientCqs().get(proxyID);
> if (clientCQ != null) {
>   msg.addClientCqs(proxyID, clientCQ);
> }
>   }  // This is a remote HAEventWrapper.
>   // Add new Interested client lists.
>   ClientUpdateMessageImpl clientMsg =
>   (ClientUpdateMessageImpl) haEventWrapper.getClientUpdateMessage();
>   if (clientMsg != null) {
> if (clientMsg.isClientInterestedInUpdates(proxyID)) {
>   msg.addClientInterestList(proxyID, true);
> } else if (clientMsg.isClientInterestedInInvalidates(proxyID)) {
>   msg.addClientInterestList(proxyID, false);
> }
>   }
> }
>   }
> {code}



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


[jira] [Commented] (GEODE-8573) SerialGatewaySenderOperationsDistributedTest.testRestartSerialGatewaySendersWhilePutting

2020-11-10 Thread Geode Integration (Jira)


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

Geode Integration commented on GEODE-8573:
--

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

> SerialGatewaySenderOperationsDistributedTest.testRestartSerialGatewaySendersWhilePutting
> 
>
> Key: GEODE-8573
> URL: https://issues.apache.org/jira/browse/GEODE-8573
> Project: Geode
>  Issue Type: Bug
>  Components: wan
>Affects Versions: 1.14.0
>Reporter: Mark Hanson
>Assignee: Kirk Lund
>Priority: Major
> Fix For: 1.14.0
>
>
> [https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/DistributedTestOpenJDK8/builds/521]
>  
> {noformat}
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest
>  > testRestartSerialGatewaySendersWhilePutting[1: numDispatchers=3] FAILED
> org.apache.geode.test.dunit.RMIException: While invoking 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest$$Lambda$356/426344166.run
>  in VM 5 running on Host 538fd3213f62 with 8 VMs
> at org.apache.geode.test.dunit.VM.executeMethodOnObject(VM.java:620)
> at org.apache.geode.test.dunit.VM.invoke(VM.java:447)
> at 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest.testRestartSerialGatewaySendersWhilePutting(SerialGatewaySenderOperationsDistributedTest.java:407)
> Caused by:
> org.awaitility.core.ConditionTimeoutException: Assertion condition 
> defined as a lambda expression in 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest
>  that uses org.apache.geode.internal.cache.wan.InternalGatewaySender, 
> org.apache.geode.internal.cache.wan.InternalGatewaySenderint [Sender 
> statistics unprocessed event map size] expected:<[0]> but was:<[3]> within 5 
> minutes.
> at 
> org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:165)
> at 
> org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
> at 
> org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
> at 
> org.awaitility.core.ConditionFactory.until(ConditionFactory.java:895)
> at 
> org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:679)
> at 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest.validateSecondaryQueueSizeStat(SerialGatewaySenderOperationsDistributedTest.java:1216)
> at 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest.lambda$testRestartSerialGatewaySendersWhilePutting$bb17a952$23(SerialGatewaySenderOperationsDistributedTest.java:407)
> Caused by:
> org.junit.ComparisonFailure: [Sender statistics unprocessed event 
> map size] expected:<[0]> but was:<[3]>
> at 
> sun.reflect.GeneratedConstructorAccessor81.newInstance(Unknown Source)
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at 
> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderOperationsDistributedTest.lambda$validateSecondaryQueueSizeStat$8(SerialGatewaySenderOperationsDistributedTest.java:1219)
>  {noformat}
>  
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-= Test Results URI 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>  
> [http://files.apachegeode-ci.info/builds/apache-develop-main/1.14.0-build.0389/test-results/distributedTest/1601774166/]
>  
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Test report artifacts from this job are available at:
> [http://files.apachegeode-ci.info/builds/apache-develop-main/1.14.0-build.0389/test-artifacts/1601774166/distributedtestfiles-OpenJDK8-1.14.0-build.0389.tgz]
>  
>  



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


[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

jdeppe-pivotal commented on a change in pull request #5725:
URL: https://github.com/apache/geode/pull/5725#discussion_r520873603



##
File path: 
geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionTest.java
##
@@ -204,4 +207,30 @@ public void testSendToEmptyListIsRejected() throws 
Exception {
 distribution.send(emptyList, m);
 verify(membership, never()).send(any(), any());
   }
+
+  @Test
+  public void testExceptionNestedOnStartConfigError() throws Exception {
+Throwable cause = new RuntimeException("Exception cause");
+Throwable exception = new MembershipConfigurationException("Test 
exception", cause);
+doThrow(exception).when(membership).start();
+try {

Review comment:
   AssertJ also has a very convenient `assertThatThrownBy()` which lets you 
assert on the type of exception thrown as well as specific messages, causes, 
etc. There are numerous examples throughout the test code.





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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.int

[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.BucketAdvisor;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.ProxyBucketRegion;
+
+public class RegionAdvisorJUnitTest {
+
+  private PartitionedRegion partitionedRegion;
+  private RegionAdvisor regionAdvisor;
+  private final int[] serials = new int[] {ILLEGAL_SERIAL, ILLEGAL_SERIAL, 
ILLEGAL_SERIAL};
+
+  @Before
+  public void setUp() throws Exception {
+partitionedRegion = mock(PartitionedRegion.class);
+regionAdvisor = new RegionAdvisor(partitionedRegion);
+  }
+
+  @Test
+  public void 
getBucketSerials_shouldReturnAnArrayOfIllegalSerials_whenBucketsAreNull() {
+RegionAttributes regionAttributes = mock(RegionAttributes.class);
+PartitionAttributes partitionAttributes = mock(PartitionAttributes.class);
+when(partitionedRegion.getAttributes()).thenReturn(regionAttributes);
+
when(regionAttributes.getPartitionAttributes()).thenReturn(partitionAttributes);
+when(partitionAttributes.getTotalNumBuckets()).thenReturn(3);
+
+assertThat(regionAdvisor.getBucketSerials()).containsExactly(serials);
+  }
+
+  @Test
+  public void 
processProfilesQueuedDuringInitialization_shouldNotThrowIndexOutOfBoundsException()
 {
+RegionAdvisor.QueuedBucketProfile qbp =
+new 
RegionAdvisor.QueuedBucketProfile(mock(InternalDistributedMember.class), 
serials, true);
+DistributionManager distributionManager = mock(DistributionManager.class);
+
when(regionAdvisor.getDistributionManager()).thenReturn(distributionManager);
+when(distributionManager.isCurrentMember(any())).thenReturn(true);
+regionAdvisor.preInitQueue.add(qbp);
+
+ProxyBucketRegion pbr = mock(ProxyBucketRegion.class);
+when(pbr.getBucketAdvisor()).thenReturn(mock(BucketAdvisor.class));
+regionAdvisor.buckets = new ProxyBucketRegion[] {pbr, pbr, pbr};
+
+regionAdvisor.processProfilesQueuedDuringInitialization();

Review comment:
   It definitely couldn't hurt to add it.  I feel like this test needs 
something more, but I'm not sure what.  The intent was mainly to show that 
`processProfilesQueuedDuringInitialization()` wouldn't result in an 
`ArrayIndexOutOfBoundsException` when given the serials that would be returned 
if `buckets` were `null` when `getBucketSerials()` is called.  What do you 
think?





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


> ArrayIndexOutOfBoundsException may be thrown in 
> RegionAdvisor.processProfilesQueuedDuringInitialization
> ---
>
> Key: GEODE-8692
> URL: https://issues.apache.org/jira/browse/GEODE-8692
> Pr

[jira] [Commented] (GEODE-8664) JGroups exception is not propagated

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

gaussianrecurrence commented on a change in pull request #5725:
URL: https://github.com/apache/geode/pull/5725#discussion_r520896345



##
File path: 
geode-core/src/test/java/org/apache/geode/distributed/internal/DistributionTest.java
##
@@ -204,4 +207,30 @@ public void testSendToEmptyListIsRejected() throws 
Exception {
 distribution.send(emptyList, m);
 verify(membership, never()).send(any(), any());
   }
+
+  @Test
+  public void testExceptionNestedOnStartConfigError() throws Exception {
+Throwable cause = new RuntimeException("Exception cause");
+Throwable exception = new MembershipConfigurationException("Test 
exception", cause);
+doThrow(exception).when(membership).start();
+try {

Review comment:
   Finally went for AssertJ choice. Now the test is more more clear. 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


> JGroups exception is not propagated
> ---
>
> Key: GEODE-8664
> URL: https://issues.apache.org/jira/browse/GEODE-8664
> Project: Geode
>  Issue Type: Bug
>  Components: membership, messaging
>Affects Versions: 1.12.0, 1.13.0
>Reporter: Mario Salazar de Torres
>Assignee: Mario Salazar de Torres
>Priority: Minor
>  Labels: pull-request-available
> Attachments: GEODE-8664.patch
>
>
> *AS A* geode contributor
> *I WANT* exceptions thrown in DistributionImpl.start to be propagated
> *SO THAT* more information is provided while tackling issues.
>  
> 
> *Additional information:*
> After looking at an issue while starting a locator having to do with 
> JGroupMessenger I noticed that exceptions from Membership.start are not 
> correctly propagated in DistributionImpl.start method.
> To ilustrate the problem I attach below the reported exception while starting 
> the locator:
>  
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.GemFireConfigException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:184)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.initialize(InternalDistributedSystem.java:779)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.access$200(InternalDistributedSystem.java:135)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem$Builder.build(InternalDistributedSystem.java:3033)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.connectInternal(InternalDistributedSystem.java:290)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startDistributedSystem(InternalLocator.java:743)
> at 
> org.apache.geode.distributed.internal.InternalLocator.startLocator(InternalLocator.java:388)
> at 
> org.apache.geode.distributed.LocatorLauncher.start(LocatorLauncher.java:716)
> at org.apache.geode.distributed.LocatorLauncher.run(LocatorLauncher.java:623)
> at 
> org.apache.geode.distributed.LocatorLauncher.main(LocatorLauncher.java:217){noformat}
>  
> Thing is with that kind of information there's no way to know why the problem 
> is happening, so the idea would be to propagate the exceptions, so it looks 
> more like this:
> {noformat}
> locator is exiting due to an exception
> org.apache.geode.SystemConnectException: unable to create jgroups channel
> at 
> org.apache.geode.distributed.internal.DistributionImpl.start(DistributionImpl.java:186)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.createDistribution(DistributionImpl.java:222)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:464)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.(ClusterDistributionManager.java:497)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.create(ClusterDistributionManager.java:326)
> at 
> org.apache.geode.distributed.internal.InternalDi

[jira] [Commented] (GEODE-8593) Update native client examples to use Builder pattern

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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


   Analog of an update performed previously on the geode-native C++ examples 
and user guide:
   
   - Updated examples to use builder pattern for cache and pool creation
   - Updated accompanying text in user guide to match examples
   - Pruned Connection Pool doc to focus on pools, not locators and 
load-balancing



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


> Update native client examples to use Builder pattern
> 
>
> Key: GEODE-8593
> URL: https://issues.apache.org/jira/browse/GEODE-8593
> Project: Geode
>  Issue Type: Improvement
>  Components: docs, native client
>Affects Versions: 1.13.0
>Reporter: Dave Barnes
>Assignee: Dave Barnes
>Priority: Major
>  Labels: pull-request-available
>
> For both C++ and .NET examples, the section of code that creates the 
> connection pool should be improved to better illustrate the Builder pattern. 
> For example, in the C++ examples, current code is:
> ```
>   auto cacheFactory = CacheFactory();
>   cacheFactory.set("log-level", "none");
>   auto cache = cacheFactory.create();
>   auto poolFactory = cache.getPoolManager().createFactory();
>  
>   poolFactory.addLocator("localhost", 10334);
>   auto pool = poolFactory.create("pool");
> ```
> The improved version would be:
> ```
> auto cache = CacheFactory()
>.set("log-level", "debug")
>.set("ssl-enabled", "true")
>.set("ssl-truststore", clientTruststore.string())
>.create();
>   cache.getPoolManager()
>   .createFactory()
>   .addLocator("localhost", 10334)
>   .create("pool");
> ```
> Similarly for .NET examples.
> These doc snippets also appear in the user guides, so they'll need updating 
> in the docs, as well.



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


[jira] [Commented] (GEODE-8692) ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

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



##
File path: 
geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
##
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
+ */
+package org.apache.geode.internal.cache.partitioned;
+
+import static 
org.apache.geode.distributed.internal.DistributionAdvisor.ILLEGAL_SERIAL;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.PartitionAttributes;
+import org.apache.geode.cache.RegionAttributes;
+import org.apache.geode.distributed.internal.DistributionManager;
+import 
org.apache.geode.distributed.internal.membership.InternalDistributedMember;
+import org.apache.geode.internal.cache.BucketAdvisor;
+import org.apache.geode.internal.cache.PartitionedRegion;
+import org.apache.geode.internal.cache.ProxyBucketRegion;
+
+public class RegionAdvisorJUnitTest {
+
+  private PartitionedRegion partitionedRegion;
+  private RegionAdvisor regionAdvisor;
+  private final int[] serials = new int[] {ILLEGAL_SERIAL, ILLEGAL_SERIAL, 
ILLEGAL_SERIAL};
+
+  @Before
+  public void setUp() throws Exception {
+partitionedRegion = mock(PartitionedRegion.class);
+regionAdvisor = new RegionAdvisor(partitionedRegion);
+  }
+
+  @Test
+  public void 
getBucketSerials_shouldReturnAnArrayOfIllegalSerials_whenBucketsAreNull() {
+RegionAttributes regionAttributes = mock(RegionAttributes.class);
+PartitionAttributes partitionAttributes = mock(PartitionAttributes.class);
+when(partitionedRegion.getAttributes()).thenReturn(regionAttributes);
+
when(regionAttributes.getPartitionAttributes()).thenReturn(partitionAttributes);
+when(partitionAttributes.getTotalNumBuckets()).thenReturn(3);
+
+assertThat(regionAdvisor.getBucketSerials()).containsExactly(serials);
+  }
+
+  @Test
+  public void 
processProfilesQueuedDuringInitialization_shouldNotThrowIndexOutOfBoundsException()
 {
+RegionAdvisor.QueuedBucketProfile qbp =
+new 
RegionAdvisor.QueuedBucketProfile(mock(InternalDistributedMember.class), 
serials, true);
+DistributionManager distributionManager = mock(DistributionManager.class);
+
when(regionAdvisor.getDistributionManager()).thenReturn(distributionManager);
+when(distributionManager.isCurrentMember(any())).thenReturn(true);
+regionAdvisor.preInitQueue.add(qbp);
+
+ProxyBucketRegion pbr = mock(ProxyBucketRegion.class);
+when(pbr.getBucketAdvisor()).thenReturn(mock(BucketAdvisor.class));
+regionAdvisor.buckets = new ProxyBucketRegion[] {pbr, pbr, pbr};
+
+regionAdvisor.processProfilesQueuedDuringInitialization();

Review comment:
   I think that just showing there's no `ArrayIndexOutOfBoundsException` is 
probably a bit weak, since we're explicitly setting the contents of both arrays 
in the test, so we know that exception isn't possible here. Asserting that the 
method is behaving as expected for the given conditions (not calling 
`removeIdWithSerial()` for buckets that correspond to an `ILLEGAL_SERIAL` 
value) would make for a more meaningful test.





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


> ArrayIndexOutOfBoundsException may be thrown in 
> RegionAdvisor.processProfilesQueuedDuringInitialization
> ---
>
> Key: GEODE-8692
> URL: https://issues

[jira] [Commented] (GEODE-5782) LauncherMemberMXBeanIntegrationTest can fail intermittently

2020-11-10 Thread Geode Integration (Jira)


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

Geode Integration commented on GEODE-5782:
--

Seen in [WindowsCoreIntegrationTestOpenJDK11 
#562|https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/WindowsCoreIntegrationTestOpenJDK11/builds/562]
 ... see [test 
results|http://files.apachegeode-ci.info/builds/apache-develop-main/1.14.0-build.0475/test-results/integrationTest/1605044248/]
 or download 
[artifacts|http://files.apachegeode-ci.info/builds/apache-develop-main/1.14.0-build.0475/test-artifacts/1605044248/windows-coreintegrationtestfiles-OpenJDK11-1.14.0-build.0475.tgz].

> LauncherMemberMXBeanIntegrationTest can fail intermittently
> ---
>
> Key: GEODE-5782
> URL: https://issues.apache.org/jira/browse/GEODE-5782
> Project: Geode
>  Issue Type: Test
>  Components: jmx
>Affects Versions: 1.9.0
>Reporter: Jens Deppe
>Assignee: Jens Deppe
>Priority: Major
>  Labels: pull-request-available
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Noticed this failure:
> {noformat}
> org.apache.geode.distributed.LauncherMemberMXBeanIntegrationTest > 
> showOSMetrics_reconstructsOSMetricsFromCompositeDataType FAILED
> org.junit.ComparisonFailure: expected:<204.[68]> but was:<204.[55]>
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
> at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at 
> org.apache.geode.distributed.LauncherMemberMXBeanIntegrationTest.showOSMetrics_reconstructsOSMetricsFromCompositeDataType(LauncherMemberMXBeanIntegrationTest.java:143)
> {noformat}



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


[jira] [Updated] (GEODE-7727) Geode P2P connection hanging

2020-11-10 Thread Owen Nichols (Jira)


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

Owen Nichols updated GEODE-7727:

Fix Version/s: 1.12.1

> Geode P2P connection hanging
> 
>
> Key: GEODE-7727
> URL: https://issues.apache.org/jira/browse/GEODE-7727
> Project: Geode
>  Issue Type: Bug
>Reporter: Mario Ivanac
>Assignee: Mario Ivanac
>Priority: Major
>  Labels: needs-review, pull-request-available
> Fix For: 1.12.1, 1.13.0
>
>  Time Spent: 3.5h
>  Remaining Estimate: 0h
>
> {color:#172b4d}Geode P2P handshake reader stops listening to it's socket once 
> the handshake between 2 peers is established. This seems to be a design 
> choice. 
> {color}
> {color:#172b4d}The problem is when the connection gets killed (TCP FIN). 
> Since nothing is listening on the socket, nothing will get that FIN package 
> and close the connection. The connection is left hanging (CLOSE-WAIT state). 
> The peers are then unable to establish proper P2P communication later.{color}



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


[jira] [Updated] (GEODE-6008) CI Failure: ClientServerHostNameVerificationDistributedTest.expectConnectionFailureWhenNoHostNameInServerKey failed

2020-11-10 Thread Owen Nichols (Jira)


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

Owen Nichols updated GEODE-6008:

Fix Version/s: 1.12.1

> CI Failure: 
> ClientServerHostNameVerificationDistributedTest.expectConnectionFailureWhenNoHostNameInServerKey
>  failed
> ---
>
> Key: GEODE-6008
> URL: https://issues.apache.org/jira/browse/GEODE-6008
> Project: Geode
>  Issue Type: Bug
>  Components: client/server, membership
>Reporter: Jinmei Liao
>Priority: Major
> Fix For: 1.9.0, 1.12.1, 1.13.0
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> java.lang.AssertionError: Suspicious strings were written to the log during 
> this run.
> {noformat}
> Fix the strings or use IgnoredException.addIgnoredException to ignore.
> ---
> Found suspect string in log4j at line 1872
> y: java.security.cert.CertificateException: No name matching 88deff82cd47 
> found
>   at org.junit.Assert.fail(Assert.java:88)
>   at 
> org.apache.geode.test.dunit.standalone.DUnitLauncher.closeAndCheckForSuspects(DUnitLauncher.java:412)
>   at 
> org.apache.geode.test.dunit.rules.ClusterStartupRule.after(ClusterStartupRule.java:172)
>   at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
>   at org.junit.rules.RunRules.evaluate(RunRules.java:20)
>   at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>   at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>   at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>   at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>   at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:106)
>   at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
>   at 
> org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
>   at 
> org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:66)
>   at 
> org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
>   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:566)
>   at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>   at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>   at 
> org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
>   at 
> org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
>   at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
>   at 
> org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:117)
>   at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:566)
>   at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
>   at 
> org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
>   at 
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:155)
>   at 
> org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:137)
>   at 
> org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:404)
>   at 
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecu

[jira] [Updated] (GEODE-8261) Do not add proxyID to client interest list if it is null

2020-11-10 Thread Owen Nichols (Jira)


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

Owen Nichols updated GEODE-8261:

Fix Version/s: 1.12.1

> Do not add proxyID to client interest list if it is null
> 
>
> Key: GEODE-8261
> URL: https://issues.apache.org/jira/browse/GEODE-8261
> Project: Geode
>  Issue Type: Task
>  Components: client queues
>Reporter: Nabarun Nag
>Priority: Major
> Fix For: 1.12.1, 1.13.0, 1.14.0
>
>
> * Sometime during shutdown proxyIDs can be null 
>  * Attempting to add this null value to data structures can cause NPE. For 
> example the below mentioned code snippets may cause NPE if proxyID is null.
> {code:java}
> protected void addClientCQsAndInterestList(ClientUpdateMessageImpl msg,
>   HAEventWrapper haEventWrapper, Map haContainer, String regionName) {
> ClientProxyMembershipID proxyID = ((HAContainerWrapper) 
> haContainer).getProxyID(regionName);
> if (proxyID != null) {
>   if (haEventWrapper.getClientCqs() != null) {
> CqNameToOp clientCQ = haEventWrapper.getClientCqs().get(proxyID);
> if (clientCQ != null) {
>   msg.addClientCqs(proxyID, clientCQ);
> }
>   }  // This is a remote HAEventWrapper.
>   // Add new Interested client lists.
>   ClientUpdateMessageImpl clientMsg =
>   (ClientUpdateMessageImpl) haEventWrapper.getClientUpdateMessage();
>   if (clientMsg != null) {
> if (clientMsg.isClientInterestedInUpdates(proxyID)) {
>   msg.addClientInterestList(proxyID, true);
> } else if (clientMsg.isClientInterestedInInvalidates(proxyID)) {
>   msg.addClientInterestList(proxyID, false);
> }
>   }
> }
>   }
> {code}



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


[jira] [Created] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread Kirk Lund (Jira)
Kirk Lund created GEODE-8696:


 Summary: Startup of JMX Manager may hang during crash of other 
members
 Key: GEODE-8696
 URL: https://issues.apache.org/jira/browse/GEODE-8696
 Project: Geode
  Issue Type: Bug
  Components: jmx, management
Reporter: Kirk Lund


_vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
*0xf6316520*:
{noformat}
"vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xf6364030> (a 
java.util.concurrent.FutureTask)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at 
java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
at 
org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
at 
org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
- locked <0xf6316520> (a 
org.apache.geode.management.internal.FederatingManager)
at 
org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
- locked <0xfed91a70> (a java.util.HashMap)
at 
org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
at 
org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
at 
org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
at 
org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
at 
org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
at 
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
- locked <0xe11065f0> (a java.lang.Class for 
org.apache.geode.internal.cache.GemFireCacheImpl)
- locked <0xe1101220> (a java.lang.Class for 
org.apache.geode.internal.cache.InternalCacheBuilder)
at 
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
- locked <0xe1101220> (a java.lang.Class for 
org.apache.geode.internal.cache.InternalCacheBuilder)
at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
at 
hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
- locked <0xfecab060> (a java.lang.Class for hydra.CacheHelper)
at hydra.CacheHelper.createCache(CacheHelper.java:87)
at 
splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
at 
splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
- locked <0xe14a2db0> (a java.lang.Class for 
splitBrain.NetworkPartitionTest)
at 
splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
- locked <0xe14a2db0> (a java.lang.Class for 
splitBrain.NetworkPartitionTest)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at hydra.MethExecutor.execute(MethExecutor.java:173)
at hydra.MethExecutor.execute(MethExecutor.java:141)
at hydra.TestTask.execute(TestTask.java:197)
at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)
{noformat}
_vm_3_thr_3_client2_host2_21145_ is waiting for _FederatingManager1_ to 
complete:
{noformat}
"FederatingManager1" #66 daemon prio=5 os_prio=0 tid=0x7f1874327800 
nid=0x5331 waiting on condition [0x7f18515d9000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xf63b2590> (a 
java.util.concurrent.CountDownLatch$Sync)
at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1328)
at java.util.concurrent.CountDownLatch.awa

[jira] [Updated] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread Kirk Lund (Jira)


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

Kirk Lund updated GEODE-8696:
-
Description: 
The fix for GEODE-7400 removed final from the executorService field to 
introduce a Supplier. I think this hang was caused by adding 
synchronized to FederatingManager.executeTask instead of making executorService 
a volatile field.

_vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
*0xf6316520*:
{noformat}
"vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xf6364030> (a 
java.util.concurrent.FutureTask)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
at java.util.concurrent.FutureTask.get(FutureTask.java:191)
at 
java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
at 
org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
at 
org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
- locked <0xf6316520> (a 
org.apache.geode.management.internal.FederatingManager)
at 
org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
- locked <0xfed91a70> (a java.util.HashMap)
at 
org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
at 
org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
at 
org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
at 
org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
at 
org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
at 
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
- locked <0xe11065f0> (a java.lang.Class for 
org.apache.geode.internal.cache.GemFireCacheImpl)
- locked <0xe1101220> (a java.lang.Class for 
org.apache.geode.internal.cache.InternalCacheBuilder)
at 
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
- locked <0xe1101220> (a java.lang.Class for 
org.apache.geode.internal.cache.InternalCacheBuilder)
at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
at 
hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
- locked <0xfecab060> (a java.lang.Class for hydra.CacheHelper)
at hydra.CacheHelper.createCache(CacheHelper.java:87)
at 
splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
at 
splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
- locked <0xe14a2db0> (a java.lang.Class for 
splitBrain.NetworkPartitionTest)
at 
splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
- locked <0xe14a2db0> (a java.lang.Class for 
splitBrain.NetworkPartitionTest)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at hydra.MethExecutor.execute(MethExecutor.java:173)
at hydra.MethExecutor.execute(MethExecutor.java:141)
at hydra.TestTask.execute(TestTask.java:197)
at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)
{noformat}
_vm_3_thr_3_client2_host2_21145_ is waiting for _FederatingManager1_ to 
complete:
{noformat}
"FederatingManager1" #66 daemon prio=5 os_prio=0 tid=0x7f1874327800 
nid=0x5331 waiting on condition [0x7f18515d9000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xf63b2590> (a 
java.util.concurrent.CountDownLatch$Sync)
at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer

[jira] [Updated] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread Kirk Lund (Jira)


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

Kirk Lund updated GEODE-8696:
-
Labels: GeodeOperationAPI  (was: )

> Startup of JMX Manager may hang during crash of other members
> -
>
> Key: GEODE-8696
> URL: https://issues.apache.org/jira/browse/GEODE-8696
> Project: Geode
>  Issue Type: Bug
>  Components: jmx, management
>Reporter: Kirk Lund
>Priority: Major
>  Labels: GeodeOperationAPI
>
> The fix for GEODE-7400 removed final from the executorService field to 
> introduce a Supplier. I think this hang was caused by adding 
> synchronized to FederatingManager.executeTask instead of making 
> executorService a volatile field.
> _vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
> *0xf6316520*:
> {noformat}
> "vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
> tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0xf6364030> (a 
> java.util.concurrent.FutureTask)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
> at java.util.concurrent.FutureTask.get(FutureTask.java:191)
> at 
> java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
> at 
> org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
> at 
> org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
> - locked <0xf6316520> (a 
> org.apache.geode.management.internal.FederatingManager)
> at 
> org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
> - locked <0xfed91a70> (a java.util.HashMap)
> at 
> org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
> at 
> org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
> at 
> org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
> - locked <0xe11065f0> (a java.lang.Class for 
> org.apache.geode.internal.cache.GemFireCacheImpl)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
> at 
> hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
> at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
> - locked <0xfecab060> (a java.lang.Class for 
> hydra.CacheHelper)
> at hydra.CacheHelper.createCache(CacheHelper.java:87)
> at 
> splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
> at 
> splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at 
> splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at hydra.MethExecutor.execute(MethExecutor.java:173)
> at hydra.MethExecutor.execute(MethExecutor.java:141)
> at hydra.TestTask.execute(TestTask.java:197)
> at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)
> {noformat}
> _vm_3_thr_3_client2_host2_21145_ is waiting for _FederatingManager1_ to 
> complete:
> {noformat}
> "FederatingManager1" #66 dae

[jira] [Assigned] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread Kirk Lund (Jira)


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

Kirk Lund reassigned GEODE-8696:


Assignee: Kirk Lund

> Startup of JMX Manager may hang during crash of other members
> -
>
> Key: GEODE-8696
> URL: https://issues.apache.org/jira/browse/GEODE-8696
> Project: Geode
>  Issue Type: Bug
>  Components: jmx, management
>Reporter: Kirk Lund
>Assignee: Kirk Lund
>Priority: Major
>  Labels: GeodeOperationAPI
>
> The fix for GEODE-7400 removed final from the executorService field to 
> introduce a Supplier. I think this hang was caused by adding 
> synchronized to FederatingManager.executeTask instead of making 
> executorService a volatile field.
> _vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
> *0xf6316520*:
> {noformat}
> "vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
> tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0xf6364030> (a 
> java.util.concurrent.FutureTask)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
> at java.util.concurrent.FutureTask.get(FutureTask.java:191)
> at 
> java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
> at 
> org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
> at 
> org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
> - locked <0xf6316520> (a 
> org.apache.geode.management.internal.FederatingManager)
> at 
> org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
> - locked <0xfed91a70> (a java.util.HashMap)
> at 
> org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
> at 
> org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
> at 
> org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
> - locked <0xe11065f0> (a java.lang.Class for 
> org.apache.geode.internal.cache.GemFireCacheImpl)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
> at 
> hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
> at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
> - locked <0xfecab060> (a java.lang.Class for 
> hydra.CacheHelper)
> at hydra.CacheHelper.createCache(CacheHelper.java:87)
> at 
> splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
> at 
> splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at 
> splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at hydra.MethExecutor.execute(MethExecutor.java:173)
> at hydra.MethExecutor.execute(MethExecutor.java:141)
> at hydra.TestTask.execute(TestTask.java:197)
> at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)
> {noformat}
> _vm_3_thr_3_client2_host2_21145_ is waiting for _FederatingManager1_ to 
> complete:
> {noformat}
> "Fe

[jira] [Updated] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread Donal Evans (Jira)


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

Donal Evans updated GEODE-8686:
---
Fix Version/s: 1.13.1
   1.12.1

> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

kirklund opened a new pull request #5728:
URL: https://github.com/apache/geode/pull/5728


   



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


> Startup of JMX Manager may hang during crash of other members
> -
>
> Key: GEODE-8696
> URL: https://issues.apache.org/jira/browse/GEODE-8696
> Project: Geode
>  Issue Type: Bug
>  Components: jmx, management
>Reporter: Kirk Lund
>Assignee: Kirk Lund
>Priority: Major
>  Labels: GeodeOperationAPI
>
> The fix for GEODE-7400 removed final from the executorService field to 
> introduce a Supplier. I think this hang was caused by adding 
> synchronized to FederatingManager.executeTask instead of making 
> executorService a volatile field.
> _vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
> *0xf6316520*:
> {noformat}
> "vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
> tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0xf6364030> (a 
> java.util.concurrent.FutureTask)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
> at java.util.concurrent.FutureTask.get(FutureTask.java:191)
> at 
> java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
> at 
> org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
> at 
> org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
> - locked <0xf6316520> (a 
> org.apache.geode.management.internal.FederatingManager)
> at 
> org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
> - locked <0xfed91a70> (a java.util.HashMap)
> at 
> org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
> at 
> org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
> at 
> org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
> - locked <0xe11065f0> (a java.lang.Class for 
> org.apache.geode.internal.cache.GemFireCacheImpl)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
> at 
> hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
> at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
> - locked <0xfecab060> (a java.lang.Class for 
> hydra.CacheHelper)
> at hydra.CacheHelper.createCache(CacheHelper.java:87)
> at 
> splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
> at 
> splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at 
> splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod

[jira] [Updated] (GEODE-8696) Startup of JMX Manager may hang during crash of other members

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

> Startup of JMX Manager may hang during crash of other members
> -
>
> Key: GEODE-8696
> URL: https://issues.apache.org/jira/browse/GEODE-8696
> Project: Geode
>  Issue Type: Bug
>  Components: jmx, management
>Reporter: Kirk Lund
>Assignee: Kirk Lund
>Priority: Major
>  Labels: GeodeOperationAPI, pull-request-available
>
> The fix for GEODE-7400 removed final from the executorService field to 
> introduce a Supplier. I think this hang was caused by adding 
> synchronized to FederatingManager.executeTask instead of making 
> executorService a volatile field.
> _vm_3_thr_3_client2_host2_21145_ hung while synchronized on 
> *0xf6316520*:
> {noformat}
> "vm_3_thr_3_client2_host2_21145" #56 daemon prio=5 os_prio=0 
> tid=0x7f1854002000 nid=0x5326 waiting on condition [0x7f18520e2000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0xf6364030> (a 
> java.util.concurrent.FutureTask)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:429)
> at java.util.concurrent.FutureTask.get(FutureTask.java:191)
> at 
> java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:244)
> at 
> org.apache.geode.management.internal.FederatingManager.startManagingActivity(FederatingManager.java:256)
> at 
> org.apache.geode.management.internal.FederatingManager.startManager(FederatingManager.java:121)
> - locked <0xf6316520> (a 
> org.apache.geode.management.internal.FederatingManager)
> at 
> org.apache.geode.management.internal.SystemManagementService.startManager(SystemManagementService.java:373)
> - locked <0xfed91a70> (a java.util.HashMap)
> at 
> org.apache.geode.management.internal.beans.ManagementAdapter.handleCacheCreation(ManagementAdapter.java:197)
> at 
> org.apache.geode.management.internal.beans.ManagementListener.handleEvent(ManagementListener.java:127)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.notifyResourceEventListeners(InternalDistributedSystem.java:2089)
> at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.handleResourceEvent(InternalDistributedSystem.java:643)
> at 
> org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1363)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
> - locked <0xe11065f0> (a java.lang.Class for 
> org.apache.geode.internal.cache.GemFireCacheImpl)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at 
> org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
> - locked <0xe1101220> (a java.lang.Class for 
> org.apache.geode.internal.cache.InternalCacheBuilder)
> at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
> at 
> hydra.CacheVersionHelper.configureAndCreateCache(CacheVersionHelper.java:51)
> at hydra.CacheHelper.createCacheWithHttpService(CacheHelper.java:127)
> - locked <0xfecab060> (a java.lang.Class for 
> hydra.CacheHelper)
> at hydra.CacheHelper.createCache(CacheHelper.java:87)
> at 
> splitBrain.NetworkPartitionTest.initialize(NetworkPartitionTest.java:293)
> at 
> splitBrain.NetworkPartitionTest.initializeInstance(NetworkPartitionTest.java:228)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at 
> splitBrain.NetworkPartitionTest.HydraTask_initialize(NetworkPartitionTest.java:203)
> - locked <0xe14a2db0> (a java.lang.Class for 
> splitBrain.NetworkPartitionTest)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at hydra.MethExecutor.execute(MethExecutor.java:173)
> at hydra.MethExecutor.execute(MethExecutor.java:141)
> at hydra.TestTask.execute(TestTask.java:197)
> at hydra.RemoteTestModule$1.run(RemoteTestModule.java:213)
> {noformat}
> _vm_3_thr_3_client2_h

[jira] [Updated] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread Donal Evans (Jira)


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

Donal Evans updated GEODE-8536:
---
Fix Version/s: 1.13.1
   1.12.1

> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.java:139)
> at 
> org.apache.geode.internal.cache.execute.ResultCollectorHolder.getResult(ResultCollectorHolder.java:53)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResult(LocalResultCollectorImpl.java:112)
> at 
> org.apache.geode.internal.cache.partitioned.PRFunctionStreamingResultCollector.getResultInternal(PRFunctionStreamingResul

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit 7ef68026ee7dea9148eacb79976bf22cd8558fdf in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=7ef6802 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit e3ea0ad8b33f3954e813d5e97bcaee018ad6a2c5 in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e3ea0ad ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit 7ef68026ee7dea9148eacb79976bf22cd8558fdf in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=7ef6802 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit e3ea0ad8b33f3954e813d5e97bcaee018ad6a2c5 in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e3ea0ad ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit 0f9d6b22ec45b9238bec268161eadeb3647ddb49 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9d6b2 ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit 7ef68026ee7dea9148eacb79976bf22cd8558fdf in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=7ef6802 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit e3ea0ad8b33f3954e813d5e97bcaee018ad6a2c5 in geode's branch 
refs/heads/support/1.12 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e3ea0ad ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit aaa3d13e9c604806624e43ba86d959473226a674 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=aaa3d13 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit 0f9d6b22ec45b9238bec268161eadeb3647ddb49 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9d6b2 ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit aaa3d13e9c604806624e43ba86d959473226a674 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=aaa3d13 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit aaa3d13e9c604806624e43ba86d959473226a674 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=aaa3d13 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit 0f9d6b22ec45b9238bec268161eadeb3647ddb49 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9d6b2 ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Commented] (GEODE-8686) Tombstone removal optimization during GII could cause deadlock

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8686:


Commit aaa3d13e9c604806624e43ba86d959473226a674 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=aaa3d13 ]

GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707)

- Do not call AbstractRegionMap.removeTombstone() outside of
TombstoneService class
- Add test to confirm that tombstones are correctly scheduled and
collected with this change

Authored-by: Donal Evans 
(cherry picked from commit 70b1ee8b98f1458620539c4a962e82f8ef35707b)


> Tombstone removal optimization during GII could cause deadlock
> --
>
> Key: GEODE-8686
> URL: https://issues.apache.org/jira/browse/GEODE-8686
> Project: Geode
>  Issue Type: Improvement
>Affects Versions: 1.10.0, 1.11.0, 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> Similar to the issue described in GEODE-6526, if the condition in the below 
> if statement in {{AbstractRegionMap.initialImagePut()}} evaluates to true, a 
> call to {{AbstractRegionMap.removeTombstone()}} will be triggered that could 
> lead to deadlock between the calling thread and a Tombstone GC thread calling 
> {{TombstoneService.gcTombstones()}}. 
> {code:java}
> if (owner.getServerProxy() == null && 
> owner.getVersionVector().isTombstoneTooOld( entryVersion.getMemberID(), 
> entryVersion.getRegionVersion())) { 
>   // the received tombstone has already been reaped, so don't retain it 
>   if (owner.getIndexManager() != null) { 
> owner.getIndexManager().updateIndexes(oldRe, IndexManager.REMOVE_ENTRY, 
> IndexProtocol.REMOVE_DUE_TO_GII_TOMBSTONE_CLEANUP); 
>   } 
>   removeTombstone(oldRe, entryVersion, false, false); 
>   return false; 
> } else { 
>   owner.scheduleTombstone(oldRe, entryVersion); 
>   lruEntryDestroy(oldRe); 
> }
> {code}
> The proposed change is to remove this if statement and allow the old 
> tombstone to be collected later by calling {{scheduleTombstone()}} in all 
> cases. The call to {{AbstractRegionMap.removeTombstone()}} in 
> {{AbstractRegionMap.initialImagePut()}} is intended to be an optimization to 
> allow immediate removal of tombstones that we know have already been 
> collected on other members, but since the conditions to trigger it are rare 
> (the old entry must be a tombstone, the new entry received during GII must be 
> a tombstone with a newer version, and we must have already collected a 
> tombstone with a newer version than the new entry) and the overhead of 
> scheduling a tombstone to be collected is comparatively low, the performance 
> impact of removing this optimization in favour of simply scheduling the 
> tombstone to be collected in all cases should be insignificant.
> The solution to the deadlock observed in GEODE-6526 was also to remove the 
> call to {{AbstractRegionMap.removeTombstone()}} and allow the tombstone to be 
> collected later and did not result in any unwanted behaviour, so the proposed 
> fix should be similarly low-impact.
> Also of note is that with this proposed change, there will be no calls to 
> {{AbstractRegionMap.removeTombstone()}} outside of the {{TombstoneService}} 
> class, which should ensure that other deadlocks involving this method are not 
> possible.



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


[jira] [Commented] (GEODE-8536) StackOverflow can occur when Lucene IndexWriter is unable to be created

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-8536:


Commit 0f9d6b22ec45b9238bec268161eadeb3647ddb49 in geode's branch 
refs/heads/support/1.13 from Donal Evans
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0f9d6b2 ]

GEODE-8536: Allow limited retries when creating Lucene IndexWriter (#5659)

Authored-by: Donal Evans 
(cherry picked from commit 872718ec9d119e332c328caf4493bdf8e8a83dcf)


> StackOverflow can occur when Lucene IndexWriter is unable to be created
> ---
>
> Key: GEODE-8536
> URL: https://issues.apache.org/jira/browse/GEODE-8536
> Project: Geode
>  Issue Type: Bug
>  Components: functions, lucene
>Affects Versions: 1.12.0, 1.13.0, 1.14.0
>Reporter: Donal Evans
>Assignee: Donal Evans
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.12.1, 1.14.0, 1.13.1
>
>
> If, during a call to IndexRepositoryFactory.computeIndexRepository(), an 
> IOException is encountered when attempting to construct an IndexWriter, the 
> function retry logic will reattempt the execution. This allows transient 
> exceptions caused by concurrent modification of the fileAndChunk region to be 
> ignored and subsequent executions to succeed (see GEODE-7703). However, if 
> the IOException is consistently thrown, the infinitely retrying function can 
> cause a StackOverflow:
> {noformat}
> java.lang.StackOverflowError
> at 
> org.apache.geode.SystemFailure.startWatchDog(SystemFailure.java:320)
> at 
> org.apache.geode.SystemFailure.notifyWatchDog(SystemFailure.java:758)
> at org.apache.geode.SystemFailure.setFailure(SystemFailure.java:813)
> at 
> org.apache.geode.SystemFailure.initiateFailure(SystemFailure.java:790)
> at 
> org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2251)
> at 
> org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2031)
> at 
> org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2839)
> at 
> org.apache.geode.internal.cache.partitioned.PartitionedRegionFunctionStreamingMessage.toData(PartitionedRegionFunctionStreamingMessage.java:192)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213)
> at 
> org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137)
> at 
> org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484)
> at 
> org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:247)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182)
> at 
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346)
> at 
> org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2058)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1986)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2023)
> at 
> org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionResultWaiter.getPartitionedDataFrom(PartitionedRegionFunctionResultWaiter.java:89)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeOnAllBuckets(PartitionedRegion.java:4079)
> at 
> org.apache.geode.internal.cache.PartitionedRegion.executeFunction(PartitionedRegion.java:3583)
> at 
> org.apache.geode.internal.cache.execute.PartitionedRegionFunctionExecutor.executeFunction(PartitionedRegionFunctionExecutor.java:220)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:376)
> at 
> org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:359)
> at 
> org.apache.geode.internal.cache.execute.LocalResultCollectorImpl.getResultInternal(LocalResultCollectorImpl.jav

[jira] [Created] (GEODE-8697) Propagate ForcedDisconnectException exception to the user application in a network partition scenario

2020-11-10 Thread Kamilla Aslami (Jira)
Kamilla Aslami created GEODE-8697:
-

 Summary: Propagate ForcedDisconnectException exception to the user 
application in a network partition scenario
 Key: GEODE-8697
 URL: https://issues.apache.org/jira/browse/GEODE-8697
 Project: Geode
  Issue Type: Bug
  Components: membership
Reporter: Kamilla Aslami


During network partitioning, we expect that the coordinator closes its cluster 
with a ForcedDisconnectException. However, in some cases, threads end up with a 
MemberDisconnectedException.


System logs show that a ForcedDisconnect has happened:
{code:java}
org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
 Membership coordinator 
10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared that 
a network partition has occurred
 at 
org.apache.geode.distributed.internal.membership.gms.GMSMembership$ManagerImpl.forceDisconnect(GMSMembership.java:2007)
 at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:1085)
 at 
org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1422)
 at 
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1327)
 at 
org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1266)
 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:72)
 at 
org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:70)
 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:159)
 at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
 at java.lang.Thread.run(Thread.java:748){code}

But it is never propagated upwards to the user application:
{code:java}
org.apache.geode.distributed.DistributedSystemDisconnectedException: This 
connection to a distributed system has been disconnected., caused by 
org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
 Membership coordinator 
10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared that 
a network partition has occurred
 at 
org.apache.geode.distributed.internal.InternalDistributedSystem.checkConnected(InternalDistributedSystem.java:978)
 at 
org.apache.geode.distributed.internal.InternalDistributedSystem.getDistributionManager(InternalDistributedSystem.java:1679)
 at 
org.apache.geode.distributed.internal.ReplyProcessor21.getDistributionManager(ReplyProcessor21.java:366)
 at 
org.apache.geode.distributed.internal.ReplyProcessor21.postWait(ReplyProcessor21.java:600)
 at 
org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:824)
 at 
org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:779)
 at 
org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:865)
 at 
org.apache.geode.internal.cache.partitioned.FetchKeysMessage$FetchKeysResponse.waitForKeys(FetchKeysMessage.java:584)
 at 
org.apache.geode.internal.cache.PartitionedRegion.getBucketKeys(PartitionedRegion.java:4463)
 at 
org.apache.geode.internal.cache.PartitionedRegionDataView.getBucketKeys(PartitionedRegionDataView.java:118)
 at 
org.apache.geode.internal.cache.PartitionedRegion$KeysSet$KeysSetIterator.getNextBucketIter(PartitionedRegion.java:6180)
 at 
org.apache.geode.internal.cache.PartitionedRegion$KeysSet$KeysSetIterator.hasNext(PartitionedRegion.java:6146)
 at 
org.apache.geode.internal.cache.PartitionedRegion$KeysSet.toArray(PartitionedRegion.java:6251)
 at 
org.apache.geode.internal.cache.PartitionedRegion$KeysSet.toArray(PartitionedRegion.java:6245){code}



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


[jira] [Commented] (GEODE-8466) Create a ClassLoaderService to abstract away dealing with the default ClassLoader directly

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

lgtm-com[bot] commented on pull request #5548:
URL: https://github.com/apache/geode/pull/5548#issuecomment-725072980


   This pull request **introduces 3 alerts** and **fixes 1** when merging 
a74cbadc040f65f3f54e2e1ec319ba0ed6ba1976 into 
70b1ee8b98f1458620539c4a962e82f8ef35707b - [view on 
LGTM.com](https://lgtm.com/projects/g/apache/geode/rev/pr-3b54fbb2549d9a0835c60fa8a05c5a8b48111271)
   
   **new alerts:**
   
   * 2 for Potential input resource leak
   * 1 for Use of a broken or risky cryptographic algorithm
   
   **fixed alerts:**
   
   * 1 for Use of a broken or risky cryptographic algorithm



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 ClassLoaderService to abstract away dealing with the default 
> ClassLoader directly
> --
>
> Key: GEODE-8466
> URL: https://issues.apache.org/jira/browse/GEODE-8466
> Project: Geode
>  Issue Type: New Feature
>  Components: core
>Reporter: Udo Kohlmeyer
>Assignee: Udo Kohlmeyer
>Priority: Major
>  Labels: pull-request-available
>
> With the addition of ClassLoader isolation using JBoss Modules GEODE-8067, 
> the manner in which we interact with the ClassLoader needs to change.
> An abstraction is required around the default functions like 
> `findResourceAsStream`, `loadClass` and `loadService`.
> As these features will behave differently between different ClassLoader 
> implementations, it is best to have a single service that will expose that 
> functionality in a transparent manner.



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


[jira] [Updated] (GEODE-8697) Propagate ForcedDisconnectException to the user application in a network partition scenario

2020-11-10 Thread Kamilla Aslami (Jira)


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

Kamilla Aslami updated GEODE-8697:
--
Summary: Propagate ForcedDisconnectException to the user application in a 
network partition scenario  (was: Propagate ForcedDisconnectException exception 
to the user application in a network partition scenario)

> Propagate ForcedDisconnectException to the user application in a network 
> partition scenario
> ---
>
> Key: GEODE-8697
> URL: https://issues.apache.org/jira/browse/GEODE-8697
> Project: Geode
>  Issue Type: Bug
>  Components: membership
>Reporter: Kamilla Aslami
>Priority: Major
>
> During network partitioning, we expect that the coordinator closes its 
> cluster with a ForcedDisconnectException. However, in some cases, threads end 
> up with a MemberDisconnectedException.
> System logs show that a ForcedDisconnect has happened:
> {code:java}
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that a network partition has occurred
>  at 
> org.apache.geode.distributed.internal.membership.gms.GMSMembership$ManagerImpl.forceDisconnect(GMSMembership.java:2007)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:1085)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1422)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1327)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1266)
>  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:72)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:70)
>  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:159)
>  at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
>  at java.lang.Thread.run(Thread.java:748){code}
> But it is never propagated upwards to the user application:
> {code:java}
> org.apache.geode.distributed.DistributedSystemDisconnectedException: This 
> connection to a distributed system has been disconnected., caused by 
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that a network partition has occurred
>  at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.checkConnected(InternalDistributedSystem.java:978)
>  at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.getDistributionManager(InternalDistributedSystem.java:1679)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.getDistributionManager(ReplyProcessor21.java:366)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.postWait(ReplyProcessor21.java:600)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:824)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:779)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:865)
>  at 
> org.apache.geode.internal.cache.partitioned.FetchKeysMessage$FetchKeysResponse.waitForKeys(FetchKeysMessage.java:584)
>  at 
> org.apache.geode.internal.cache.PartitionedRegion.getBucketKeys(PartitionedRegion.java:4463)
>  at 
> org.apache.geode.internal.cache.PartitionedRegionDataView.getBucketKeys(PartitionedRegionDataView.java:118)
>  at 
> org.apache.geode.internal.cache.PartitionedRegion$KeysSet$KeysSetIterator

[jira] [Commented] (GEODE-8697) Propagate ForcedDisconnectException to the user application in a network partition scenario

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

kamilla1201 opened a new pull request #5729:
URL: https://github.com/apache/geode/pull/5729


   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


> Propagate ForcedDisconnectException to the user application in a network 
> partition scenario
> ---
>
> Key: GEODE-8697
> URL: https://issues.apache.org/jira/browse/GEODE-8697
> Project: Geode
>  Issue Type: Bug
>  Components: membership
>Reporter: Kamilla Aslami
>Priority: Major
>
> During network partitioning, we expect that the coordinator closes its 
> cluster with a ForcedDisconnectException. However, in some cases, threads end 
> up with a MemberDisconnectedException.
> System logs show that a ForcedDisconnect has happened:
> {code:java}
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that a network partition has occurred
>  at 
> org.apache.geode.distributed.internal.membership.gms.GMSMembership$ManagerImpl.forceDisconnect(GMSMembership.java:2007)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:1085)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1422)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1327)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1266)
>  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:72)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:70)
>  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:159)
>  at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
>  at java.lang.Thread.run(Thread.java:748){code}
> But it is never propagated upwards to the user application:
> {code:java}
> org.apache.geode.distributed.DistributedSystemDisconnectedException: This 
> connection to a distributed system has been disconnected., caused by 
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that

[jira] [Updated] (GEODE-8697) Propagate ForcedDisconnectException to the user application in a network partition scenario

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

> Propagate ForcedDisconnectException to the user application in a network 
> partition scenario
> ---
>
> Key: GEODE-8697
> URL: https://issues.apache.org/jira/browse/GEODE-8697
> Project: Geode
>  Issue Type: Bug
>  Components: membership
>Reporter: Kamilla Aslami
>Priority: Major
>  Labels: pull-request-available
>
> During network partitioning, we expect that the coordinator closes its 
> cluster with a ForcedDisconnectException. However, in some cases, threads end 
> up with a MemberDisconnectedException.
> System logs show that a ForcedDisconnect has happened:
> {code:java}
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that a network partition has occurred
>  at 
> org.apache.geode.distributed.internal.membership.gms.GMSMembership$ManagerImpl.forceDisconnect(GMSMembership.java:2007)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.forceDisconnect(GMSJoinLeave.java:1085)
>  at 
> org.apache.geode.distributed.internal.membership.gms.membership.GMSJoinLeave.processMessage(GMSJoinLeave.java:1422)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1327)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger$JGroupsReceiver.receive(JGroupsMessenger.java:1266)
>  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:72)
>  at 
> org.apache.geode.distributed.internal.membership.gms.messenger.AddressManager.up(AddressManager.java:70)
>  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:159)
>  at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:701)
>  at java.lang.Thread.run(Thread.java:748){code}
> But it is never propagated upwards to the user application:
> {code:java}
> org.apache.geode.distributed.DistributedSystemDisconnectedException: This 
> connection to a distributed system has been disconnected., caused by 
> org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException:
>  Membership coordinator 
> 10.32.111.185(gemfire3_host1_7340:7340:locator):41000 has declared 
> that a network partition has occurred
>  at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.checkConnected(InternalDistributedSystem.java:978)
>  at 
> org.apache.geode.distributed.internal.InternalDistributedSystem.getDistributionManager(InternalDistributedSystem.java:1679)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.getDistributionManager(ReplyProcessor21.java:366)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.postWait(ReplyProcessor21.java:600)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:824)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:779)
>  at 
> org.apache.geode.distributed.internal.ReplyProcessor21.waitForRepliesUninterruptibly(ReplyProcessor21.java:865)
>  at 
> org.apache.geode.internal.cache.partitioned.FetchKeysMessage$FetchKeysResponse.waitForKeys(FetchKeysMessage.java:584)
>  at 
> org.apache.geode.internal.cache.PartitionedRegion.getBucketKeys(PartitionedRegion.java:4463)
>  at 
> org.apache.geode.internal.cache.PartitionedRegionDataView.getBucketKeys(PartitionedRegionDataView.java:118)
>  at 
> org.apache.geode.internal.cache.PartitionedRegion$KeysSet$KeysSetIterator.getNextBucketIter(PartitionedRegion.java:6180)
>  at 
> org.apache.geode.internal.cache.PartitionedRegion$KeysSet$KeysSetItera

[jira] [Commented] (GEODE-7675) Partitioned Region clear should be successful when clients are present with subscription enabled

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

jinmeiliao merged pull request #5727:
URL: https://github.com/apache/geode/pull/5727


   



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


> Partitioned Region clear should be successful when clients are present with 
> subscription enabled
> 
>
> Key: GEODE-7675
> URL: https://issues.apache.org/jira/browse/GEODE-7675
> Project: Geode
>  Issue Type: Sub-task
>  Components: regions
>Reporter: Nabarun Nag
>Priority: Major
>  Labels: GeodeCommons, pull-request-available
>
> Clear operations are successful when Client Subscriptions are enabled and 
> clients are updated with the correct region clear event.
>  
> Acceptance :
>  * DUnit tests ensuring that clear operations are successful 
>  * Ensure that all clients are getting the correct event notifications.
>  * HA enabled tests
>  * Test coverage to when a member departs in this scenario
>  * Test coverage to when a member restarts in this scenario
>  * Unit tests with complete code coverage for the newly written code.
>  



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


[jira] [Commented] (GEODE-7675) Partitioned Region clear should be successful when clients are present with subscription enabled

2020-11-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on GEODE-7675:


Commit 0b49320913ad8ef659fa72b12766607b651ba28d in geode's branch 
refs/heads/feature/GEODE-7665 from Jinmei Liao
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=0b49320 ]

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



> Partitioned Region clear should be successful when clients are present with 
> subscription enabled
> 
>
> Key: GEODE-7675
> URL: https://issues.apache.org/jira/browse/GEODE-7675
> Project: Geode
>  Issue Type: Sub-task
>  Components: regions
>Reporter: Nabarun Nag
>Priority: Major
>  Labels: GeodeCommons, pull-request-available
>
> Clear operations are successful when Client Subscriptions are enabled and 
> clients are updated with the correct region clear event.
>  
> Acceptance :
>  * DUnit tests ensuring that clear operations are successful 
>  * Ensure that all clients are getting the correct event notifications.
>  * HA enabled tests
>  * Test coverage to when a member departs in this scenario
>  * Test coverage to when a member restarts in this scenario
>  * Unit tests with complete code coverage for the newly written code.
>  



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


[jira] [Commented] (GEODE-8593) Update native client examples to use Builder pattern

2020-11-10 Thread ASF GitHub Bot (Jira)


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

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

mmartell commented on a change in pull request #689:
URL: https://github.com/apache/geode-native/pull/689#discussion_r521040470



##
File path: docs/geode-native-docs-cpp/regions/regions.html.md.erb
##
@@ -53,20 +53,20 @@ auto cache = CacheFactory()
 
 cache.getPoolManager()
 .createFactory()
-.addLocator("localhost", 10334)
-.create("pool");
+.addLocator("localhost", 40404)

Review comment:
   I would stick with the port 10334 here, which is the default locator 
port. 40404 is the default server port, so looks very odd to use as a locator 
port. 





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


> Update native client examples to use Builder pattern
> 
>
> Key: GEODE-8593
> URL: https://issues.apache.org/jira/browse/GEODE-8593
> Project: Geode
>  Issue Type: Improvement
>  Components: docs, native client
>Affects Versions: 1.13.0
>Reporter: Dave Barnes
>Assignee: Dave Barnes
>Priority: Major
>  Labels: pull-request-available
>
> For both C++ and .NET examples, the section of code that creates the 
> connection pool should be improved to better illustrate the Builder pattern. 
> For example, in the C++ examples, current code is:
> ```
>   auto cacheFactory = CacheFactory();
>   cacheFactory.set("log-level", "none");
>   auto cache = cacheFactory.create();
>   auto poolFactory = cache.getPoolManager().createFactory();
>  
>   poolFactory.addLocator("localhost", 10334);
>   auto pool = poolFactory.create("pool");
> ```
> The improved version would be:
> ```
> auto cache = CacheFactory()
>.set("log-level", "debug")
>.set("ssl-enabled", "true")
>.set("ssl-truststore", clientTruststore.string())
>.create();
>   cache.getPoolManager()
>   .createFactory()
>   .addLocator("localhost", 10334)
>   .create("pool");
> ```
> Similarly for .NET examples.
> These doc snippets also appear in the user guides, so they'll need updating 
> in the docs, as well.



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