java-driver icon indicating copy to clipboard operation
java-driver copied to clipboard

should_send_down_notifications_after_init_when_contact_points_are_down expect both nodes in INIT

Open fruch opened this issue 1 year ago • 3 comments

should_send_down_notifications_after_init_when_contact_points_are_down(com.datastax.driver.core.LoadBalancingPolicyBootstrapTest)  Time elapsed: 5.497 sec  <<< FAILURE!
java.lang.AssertionError:
Expecting:
 <[Entry(action=INIT, host=/127.0.1.1:36335), Entry(action=ADD, host=/127.0.1.2:36335)]>
to contain only:
 <[Entry(action=INIT, host=/127.0.1.1:36335), Entry(action=INIT, host=/127.0.1.2:36335)]>
elements not found:
 <[Entry(action=INIT, host=/127.0.1.2:36335)]>
and elements not expected:
 <[Entry(action=ADD, host=/127.0.1.2:36335)]>

https://jenkins.scylladb.com/view/staging/job/scylla-staging/job/fruch/job/java-driver-matrix-test/74/testReport/3.11.0.1.com.datastax.driver.core/LoadBalancingPolicyBootstrapTest/should_send_down_notifications_after_init_when_contact_points_are_down/

Tried setting setting smp to 1, but it didn't help, still failed

fruch avatar Jun 01 '23 16:06 fruch

@avelanarius @fruch After digging through the test history I can see that 4.x does not have this test at all, while on 3.x the following events are called:

Starting com.datastax.driver.core.LoadBalancingPolicyBootstrapTest.should_send_down_notifications_after_init_when_contact_points_are_down [Test #2]...                                                                                                                                      183640 [main] INFO  com.datastax.driver.core.CCMBridge - Executing: ccm node2 stop --config-dir=/tmp/1701439320733-0
    186923 [main] INFO  com.datastax.driver.core.ClockFactory - Using native clock to generate timestamps.
===== Using optimized driver!!! =====
    186970 [main] WARN  com.datastax.driver.core.LoadBalancingPolicyBootstrapTest - INIT for host: /127.0.1.1:46233
    186970 [main] WARN  com.datastax.driver.core.LoadBalancingPolicyBootstrapTest - ADD for host: /127.0.1.2:46233

java.lang.AssertionError:

Expecting:
 <[Entry(action=INIT, host=/127.0.1.1:46233), Entry(action=ADD, host=/127.0.1.2:46233)]>
to contain only:
 <[Entry(action=INIT, host=/127.0.1.1:46233), Entry(action=INIT, host=/127.0.1.2:46233)]>
elements not found:
 <[Entry(action=INIT, host=/127.0.1.2:46233)]>
and elements not expected:
 <[Entry(action=ADD, host=/127.0.1.2:46233)]>

FAILED : should_send_down_notifications_after_init_when_contact_points_are_down
Test   : 00:00:05
Elapsed: 00:03:09

Looking through the test source I see the driver should assume the host is DOWN, otherwise they both should be in INIT state in the policy history, however as you can see from the loglines above the historypolicy receives following arguments:

    186970 [main] WARN  com.datastax.driver.core.LoadBalancingPolicyBootstrapTest - INIT for host: /127.0.1.1:46233
    186970 [main] WARN  com.datastax.driver.core.LoadBalancingPolicyBootstrapTest - ADD for host: /127.0.1.2:46233

Is this an intended behaviour? I've tried to replace the second INIT with ADD and now the test just times out after several tries trying to get the described behaviour to work.

k0machi avatar Dec 01 '23 14:12 k0machi

Still relevant

roydahan avatar Jun 13 '24 12:06 roydahan

Reproduced for ver. 3.11.4.0 on driver-tests executed for enterprise 2024.1.8 rc - https://argus.scylladb.com/test/1dbb0ee3-ec1c-472c-be8e-b6c14740e5a0/runs?additionalRuns[]=d2af0620-9491-49d5-bb84-7124face0dd4.

dimakr avatar Aug 26 '24 09:08 dimakr