frankgh commented on code in PR #209:
URL: https://github.com/apache/cassandra-sidecar/pull/209#discussion_r1999094494


##########
integration-framework/src/main/java/org/apache/cassandra/sidecar/testing/SharedClusterIntegrationTestBase.java:
##########
@@ -562,6 +534,25 @@ public static Cluster createDriverCluster(ICluster<? 
extends IInstance> dtest)
         return builder.build();
     }
 
+    /**
+     * Wraps the Sidecar server and keeps a reference to the injector to be 
able to dynamically retrieve
+     * objects for testing purposes
+     */
+    public static class ServerWrapper
+    {
+        public final Injector injector;
+        public final Server server;
+        public volatile int serverPort;

Review Comment:
   The problem is that once the sidecar server is down, the port information is 
no longer available. For the `SidecarPeerDownDetectorIntegrationTest` this 
means that the information is lost when attempting to perform a health check on 
a down node. The test will do the following:
   
   - bring up a 3 node cassandra cluster, each managed by a sidecar instance
   - perform health checks
   - stop sidecar on one of the instances
   - ensure health check fails
   - start sidecar on the instance above
   - ensure health check succeeds
   
   Now if you stop Sidecar, and use the `actualPort` information from the 
server, this information is not available, and your health check will fail, not 
because the peer health monitor will correctly detect the node as down, but 
instead with an `IllegalStateException` encountered when [retrieving the 
actualPort](https://github.com/apache/cassandra-sidecar/blob/trunk/server/src/main/java/org/apache/cassandra/sidecar/server/Server.java#L250).
 For that reason I decided to keep track of the port as a field, instead of 
dynamically asking the instance for the 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.

To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org

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


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to