Parcourir la source

[3301] Wait for new message XFRIN log messages

This reverts changes that were made in commit
199beea87baee4dd3d4339ec20c32d0d2cb47f40. It seems that commit removed
the wait for a "new" logged message, and introduced the regression in

Without waiting for a new log message, the check matches log messages
that were generated by initial AXFR during startup of the secondary
("bind10") instance.
Mukund Sivaraman il y a 11 ans
Parent
commit
85f9295ccf
1 fichiers modifiés avec 32 ajouts et 28 suppressions
  1. 32 28
      tests/lettuce/features/xfrin_notify_handling.feature

+ 32 - 28
tests/lettuce/features/xfrin_notify_handling.feature

@@ -52,14 +52,14 @@ Feature: Xfrin incoming notify handling
     When I send bind10 with cmdctl port 56174 the command Xfrout notify example.org IN
     Then wait for new master stderr message XFROUT_NOTIFY_COMMAND
     Then wait for new bind10 stderr message AUTH_RECEIVED_NOTIFY
-    # From this point we can't reliably 'wait for new' because the ordering
-    # of logs from different processes is unpredictable.  But these
-    # should be okay in this case.
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
-    Then wait for bind10 stderr message XFRIN_TRANSFER_SUCCESS not XFRIN_XFR_PROCESS_FAILURE
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_XFRIN_SUCCESS
-    Then wait for master stderr message NOTIFY_OUT_REPLY_RECEIVED
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
+    # Note: The following waits should be for *new* log messages, or
+    # they will match older log messages that were generated by AXFR
+    # during startup.
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
+    Then wait for new bind10 stderr message XFRIN_TRANSFER_SUCCESS not XFRIN_XFR_PROCESS_FAILURE
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_XFRIN_SUCCESS
+    Then wait for new master stderr message NOTIFY_OUT_REPLY_RECEIVED
 
     A query for www.example.org to [::1]:56176 should have rcode NOERROR
     # Make sure handling statistics command handling checked below is
@@ -164,14 +164,14 @@ Feature: Xfrin incoming notify handling
     When I send bind10 with cmdctl port 56174 the command Xfrout notify example.org IN
     Then wait for new master stderr message XFROUT_NOTIFY_COMMAND
     Then wait for new bind10 stderr message AUTH_RECEIVED_NOTIFY
-    # From this point we can't reliably 'wait for new' because the ordering
-    # of logs from different processes is unpredictable.  But these
-    # should be okay in this case.
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
-    Then wait for bind10 stderr message XFRIN_TRANSFER_SUCCESS not XFRIN_XFR_PROCESS_FAILURE
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_XFRIN_SUCCESS
-    Then wait for master stderr message NOTIFY_OUT_REPLY_RECEIVED
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
+    # Note: The following waits should be for *new* log messages, or
+    # they will match older log messages that were generated by AXFR
+    # during startup.
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
+    Then wait for new bind10 stderr message XFRIN_TRANSFER_SUCCESS not XFRIN_XFR_PROCESS_FAILURE
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_XFRIN_SUCCESS
+    Then wait for new master stderr message NOTIFY_OUT_REPLY_RECEIVED
 
     A query for www.example.org to 127.0.0.1:56176 should have rcode NOERROR
     # Make sure handling statistics command handling checked below is
@@ -288,12 +288,14 @@ Feature: Xfrin incoming notify handling
     When I send bind10 with cmdctl port 56174 the command Xfrout notify example.org IN
     Then wait for new master stderr message XFROUT_NOTIFY_COMMAND
     Then wait for new bind10 stderr message AUTH_RECEIVED_NOTIFY
-    # can't use 'wait for new' below.
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_PROTOCOL_VIOLATION not XFRIN_TRANSFER_SUCCESS
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_XFRIN_FAILED not ZONEMGR_RECEIVE_XFRIN_SUCCESS
-    Then wait for master stderr message NOTIFY_OUT_REPLY_RECEIVED
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
+    # Note: The following waits should be for *new* log messages, or
+    # they will match older log messages that were generated by AXFR
+    # during startup.
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_PROTOCOL_VIOLATION not XFRIN_TRANSFER_SUCCESS
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_XFRIN_FAILED not ZONEMGR_RECEIVE_XFRIN_SUCCESS
+    Then wait for new master stderr message NOTIFY_OUT_REPLY_RECEIVED
 
     A query for www.example.org to [::1]:56176 should have rcode NXDOMAIN
 
@@ -405,12 +407,14 @@ Feature: Xfrin incoming notify handling
     When I send bind10 with cmdctl port 56174 the command Xfrout notify example.org IN
     Then wait for new master stderr message XFROUT_NOTIFY_COMMAND
     Then wait for new bind10 stderr message AUTH_RECEIVED_NOTIFY
-    # can't use 'wait for new' below.
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
-    Then wait for bind10 stderr message XFRIN_XFR_TRANSFER_PROTOCOL_VIOLATION not XFRIN_TRANSFER_SUCCESS
-    Then wait for bind10 stderr message ZONEMGR_RECEIVE_XFRIN_FAILED not ZONEMGR_RECEIVE_XFRIN_SUCCESS
-    Then wait for master stderr message NOTIFY_OUT_REPLY_RECEIVED
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_NOTIFY
+    # Note: The following waits should be for *new* log messages, or
+    # they will match older log messages that were generated by AXFR
+    # during startup.
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_STARTED
+    Then wait for new bind10 stderr message XFRIN_XFR_TRANSFER_PROTOCOL_VIOLATION not XFRIN_TRANSFER_SUCCESS
+    Then wait for new bind10 stderr message ZONEMGR_RECEIVE_XFRIN_FAILED not ZONEMGR_RECEIVE_XFRIN_SUCCESS
+    Then wait for new master stderr message NOTIFY_OUT_REPLY_RECEIVED
 
     A query for www.example.org to 127.0.0.1:56176 should have rcode NXDOMAIN