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

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

Bill commented on a change in pull request #5744:
URL: https://github.com/apache/geode/pull/5744#discussion_r523280748



##########
File path: 
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -97,16 +118,16 @@ public void constructs() {
 
     assertThatCode(() -> {
       internalLocator =
-          new InternalLocator(port, loggingSession, logFile, logWriter, 
securityLogWriter,
+          new InternalLocator(port, loggingSession, logFile, null, null,

Review comment:
       My read of `InternalLocator` is that it's ok to provide `null` log 
writers to the constructor ✓

##########
File path: 
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -69,6 +70,8 @@
 
   @Before
   public void setUp() throws IOException {
+    // set a property to tell membership to create a new cluster
+    System.setProperty(GMSJoinLeave.BYPASS_DISCOVERY_PROPERTY, "true");

Review comment:
       I assume this is done to speed up the test. I like it!
   
   But shouldn't we be restoring the system property after the test runs? I 
believe we have a JUnit rule for that?

##########
File path: 
geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java
##########
@@ -1115,6 +1118,9 @@ public String description() {
    */
   @Test
   public void testReconnectFailsDueToBadCacheXML() throws Exception {
+    
IgnoredException.addIgnoredException(DistributedSystemDisconnectedException.class);
+    IgnoredException.addIgnoredException("Cause parsing to fail");
+    IgnoredException.addIgnoredException("Exception while initializing an 
instance");

Review comment:
       Now that the (broken) regexp is no longer hiding exceptions, and you've 
explicitly added expectations for all of them, this test serves a good 
documentation for these exceptions and their role in reconnect.

##########
File path: 
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalLocatorIntegrationTest.java
##########
@@ -88,6 +91,24 @@ public void tearDown() {
     }
   }
 
+  @Test
+  public void startedLocatorDoesNotAttemptReconnect() throws IOException, 
InterruptedException {
+    // start a locator that's not part of a cluster
+    final boolean joinCluster = false;
+    internalLocator = InternalLocator.startLocator(port, logFile, null,
+        null, bindAddress, joinCluster,
+        distributedSystemProperties, hostnameForClients, workingDirectory);
+    port = internalLocator.getPort();
+    // the locator shouldn't attempt a reconnect because it's not part of a 
cluster
+    internalLocator.stoppedForReconnect = true;
+    assertThat(internalLocator.attemptReconnect()).isFalse();
+    String output = FileUtils.readFileToString(logFile, 
Charset.defaultCharset());
+    assertThat(output).isNotEmpty();
+    assertThat(output).contains(InternalLocator.IGNORING_RECONNECT_REQUEST);
+  }

Review comment:
       I guess we had the reconnect cases covered (in the DUnit test) and this 
new test is for the no-reconnect case ✓




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


> ReconnectDUnitTest is hiding a NullPointerException
> ---------------------------------------------------
>
>                 Key: GEODE-8670
>                 URL: https://issues.apache.org/jira/browse/GEODE-8670
>             Project: Geode
>          Issue Type: Test
>          Components: membership, tests
>    Affects Versions: 1.14.0
>            Reporter: Jens Deppe
>            Priority: Major
>              Labels: pull-request-available
>
> Since working on GEODE-8609, I found that the regex in ReconnectDUnitTest is 
> incorrect. Specifically it looks like this:
> {noformat}
>     IgnoredException.addIgnoredException("ForcedDisconnectException||Possible 
> loss of quorum");
> {noformat}
> When removing the double pipe ({{||}}) various test methods fail with a 
> {{NullPointerException}}. For example:
> {noformat}
> java.lang.AssertionError: Suspicious strings were written to the log during 
> this run.
> Fix the strings or use IgnoredException.addIgnoredException to ignore.
> -----------------------------------------------------------------------
> Found suspect string in 'dunit_suspect-vm1.log' at line 692
> [fatal 2020/10/29 05:59:26.027 PDT <Location services restart thread> 
> tid=203] Uncaught exception in thread Thread[Location services restart 
> thread,5,RMI Runtime]
> java.lang.NullPointerException
>       at 
> org.apache.geode.distributed.internal.InternalLocator.attemptReconnect(InternalLocator.java:1108)
>       at 
> org.apache.geode.distributed.internal.InternalLocator.lambda$launchRestartThread$4(InternalLocator.java:1070)
>       at java.lang.Thread.run(Thread.java:748)
> {noformat}
> There is also an additional {{DistributedSystemDisconnectedException}} which 
> probably just requires an addition to the other ignored exceptions.



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

Reply via email to