)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"a8212963610a9faad9d990dea6880d32b162c750","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9ba86417_9c3afea9","updated":"2026-09-10 13:45:33.000000000","message":"Fix verified [1] but when running test on repeart (a loop to verify no flaky failures happen), noticed less likely failure [2] for lots of ICMP sent with ping over 1 second are also taking longer (2.3 seconds in failure) to get responses.\n\nApplying a similar fix and testing loop again.\n\n\n\n[1]\n\nVerification of ping response delays calculation fix (in test pod):\n```\nsh-5.1$ sudo vi /usr/lib/python3.9/site-packages/whitebox_neutron_tempest_plugin/tests/scenario/base.py /usr/lib/python3.9/site-packages/whitebox_neutron_tempest_plugin/tests/scenario/test_security_group_logging.\npy\n2 files to edit\nsh-5.1$ # updated WNTP base.py (in case differs) and test_security_group_logging.py with ping delay calculation fix\nsh-5.1$ stestr run --serial test_only_accepted_traffic_logged\n{0} whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.StatefulSecGroupLoggingTest.test_only_accepted_traffic_logged [420.913047s] ... ok\n{0} whitebox_neutron_tempest_plugin.tests.scenario.test_security_group_logging.StatelessSecGroupLoggingTest.test_only_accepted_traffic_logged [477.025583s] ... ok\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 2 tests in 1021.2692 sec.\n - Passed: 2\n - Skipped: 0\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 897.9386 sec.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWorker Balance\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n - Worker 0 (2 tests) \u003d\u003e 0:17:01.269157\nsh-5.1$ grep -A8 \u0027sudo ping .*c 12000 \u0027 /var/lib/tempest/external_files/tempest-tests-tempest-s00-singlethread1/tempest.log\n2026-09-10 08:53:46.651 280 DEBUG neutron_tempest_plugin.common.shell [-] Executing command \u0027sudo ping 192.168.122.203 -i 0.005 -c 12000 | tail -n4\u0027 on local host (timeout\u003d75.0)... execute_local_command /usr/lib/python3.9/site-packages/neutron_tempest_plugin/common/shell.py:125\n2026-09-10 08:54:52.866 280 DEBUG neutron_tempest_plugin.common.shell [-] Command \u0027sudo ping 192.168.122.203 -i 0.005 -c 12000 | tail -n4\u0027 succeeded:\nstderr:\n\nstdout:\n\n--- 192.168.122.203 ping statistics ---\n12000 packets transmitted, 12000 received, 0% packet loss, time 65980ms\nrtt min/avg/max/mdev \u003d 0.238/0.587/77.920/1.172 ms, pipe 2\n\n--\n2026-09-10 09:03:31.164 280 DEBUG neutron_tempest_plugin.common.shell [-] Executing command \u0027sudo ping 192.168.122.232 -i 0.005 -c 12000 | tail -n4\u0027 on local host (timeout\u003d75.0)... execute_local_command /usr/lib/python3.9/site-packages/neutron_tempest_plugin/common/shell.py:125\n2026-09-10 09:04:39.748 280 DEBUG neutron_tempest_plugin.common.shell [-] Command \u0027sudo ping 192.168.122.232 -i 0.005 -c 12000 | tail -n4\u0027 succeeded:\nstderr:\n\nstdout:\n\n--- 192.168.122.232 ping statistics ---\n12000 packets transmitted, 12000 received, 0% packet loss, time 68476ms\nrtt min/avg/max/mdev \u003d 0.270/0.639/70.548/1.316 ms, pipe 2\n\nsh-5.1$\n```\n\n[2]\n```\nCaptured traceback:\n\n    Traceback (most recent call last):\n\n      File \"/usr/lib/python3.9/site-packages/whitebox_neutron_tempest_plugin/tests/scenario/test_security_group_logging.py\", line 932, in test_only_accepted_traffic_logged\n    self._test_only_accepted_traffic_logged()\n\n      File \"/usr/lib/python3.9/site-packages/whitebox_neutron_tempest_plugin/common/utils.py\", line 497, in inner\n    return f(*args, **kwargs)\n\n      File \"/usr/lib/python3.9/site-packages/whitebox_neutron_tempest_plugin/tests/scenario/test_security_group_logging.py\", line 639, in _test_only_accepted_traffic_logged\n    self.assertIn(quick_test_logs_amount,\n\n      File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 399, in assertIn\n    self.assertThat(haystack, Contains(needle), message)\n\n      File \"/usr/lib/python3.9/site-packages/testtools/testcase.py\", line 480, in assertThat\n    raise mismatch_error\n\n    testtools.matchers._impl.MismatchError: 242 not in range(112, 138): rate or burst log limits not enforced correctly\n\nRelated tempest log entries:\n\n2026-09-10 10:03:09.410 516 DEBUG neutron_tempest_plugin.common.shell [-] Executing command \u0027sudo ping 192.168.122.189 -i 0.002 -c 500 | tail -n4\u0027 on local host (timeout\u003d60.0)... execute_local_command /usr/lib/py\nthon3.9/site-packages/neutron_tempest_plugin/common/shell.py:125\n2026-09-10 10:03:12.096 516 DEBUG neutron_tempest_plugin.common.shell [-] Command \u0027sudo ping 192.168.122.189 -i 0.002 -c 500 | tail -n4\u0027 succeeded:\nstderr:\n\nstdout:\n\n--- 192.168.122.189 ping statistics ---\n500 packets transmitted, 500 received, 0% packet loss, time 2311ms\nrtt min/avg/max/mdev \u003d 0.340/1.422/24.035/2.168 ms, pipe 2\n```","commit_id":"20e49f098fe1c9840f84784e15acefd29045c370"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"4cb8cd0ba0b244918d351ae88e3f043ea2927fa8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"35a0e33f_fafeb66f","updated":"2026-09-10 13:30:52.000000000","message":"Thank you for the review.\nI was able to reproduce and verify the fix, but there is a less likely failure (fails less often) of short ping test (1 second) that needs a similar fix, will upload patchset soon.","commit_id":"20e49f098fe1c9840f84784e15acefd29045c370"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"a4b2110c43bc0237a6798b9436d17a5b60d07f01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b448f835_5c08a362","updated":"2026-09-09 15:11:14.000000000","message":"We\u0027ve found there are instances where the ping can go for over 60 seconds, causing the monitored log to be longer than expected and test to fail. This change can fix that","commit_id":"20e49f098fe1c9840f84784e15acefd29045c370"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"704b4fef4b2739f3064384cce3aa462fc131b5a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7b10ccc2_15a063e2","updated":"2026-09-14 10:12:44.000000000","message":"The fix works well for 60s but not for 1s (which tests burst better).\nThis is due to limits applying on per 1 second basis, either 1, 2, 3 multiplied with the expected target value (5% allowed offset) show unstable results and still fail often.\n\nI have another solution in mind without suspected race conditions, or such inaccuracy issues in case of 1 second time frame in testing\n(will upload soon on separate patch).","commit_id":"dd4b5a451babcb9359ff012c66bceee1aa0719b8"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"f59b41da9dd8e6a64c569aad9f5ec157c2055c05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"46add027_5555dadb","updated":"2026-09-18 11:31:02.000000000","message":"I think it\u0027s mostly good but I added some remarks","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"81167e55bda026f80598934c96b2f351b084089b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba103f99_23254ed8","updated":"2026-09-16 16:10:13.000000000","message":"Ready for review, and verified fix.\n\nAdded 3 counter mearsures in total based on the first attempted approach (this current fix).\n\nIt fixed the issue in testing, verified test on loop many times, including logs of handling the congestion delays when occured (as seen in sample [1]).\n\n[1] https://paste.opendev.org/show/bxWKIpujCpyeIHxrIEZ0/","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"aecb6151780274ea3b6572d60fab15f3286ceea0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"89651197_fb3558e3","updated":"2026-09-24 15:49:35.000000000","message":"Thank you for the review :)","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"}],"whitebox_neutron_tempest_plugin/tests/scenario/test_security_group_logging.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6b8caa35b502797020ad1a0dbbefb13e545e4c4d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from pprint import pformat"},{"line_number":17,"context_line":"import re"},{"line_number":18,"context_line":"import random"},{"line_number":19,"context_line":"import socket"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"42b5654d_e04dfd42","line":18,"updated":"2026-09-09 10:35:11.000000000","message":"pep8: H306: imports not in alphabetical order (re, random)","commit_id":"fda51c66051973811477d57dedd315e85a4a4d83"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"f59b41da9dd8e6a64c569aad9f5ec157c2055c05","unresolved":true,"context_lines":[{"line_number":637,"context_line":"                local_shell\u003dTrue)"},{"line_number":638,"context_line":"            # due to lots of requests and responses wait time,"},{"line_number":639,"context_line":"            # difference beyond 1 second is possible, should be accounted for"},{"line_number":640,"context_line":"            ping_ms \u003d int("},{"line_number":641,"context_line":"                re.search(r\u0027packet loss, time (\\d+)ms\u0027, ping_report).group(1))"},{"line_number":642,"context_line":"            ping_extra \u003d max(0, ping_ms / 1000 - expected_ping_duration)"},{"line_number":643,"context_line":"            self.retrieve_tracked_log(vm_a[\u0027hv_ssh_client\u0027])"},{"line_number":644,"context_line":"            # try reaching only 10% more time according to error offset tested"}],"source_content_type":"text/x-python","patch_set":5,"id":"62ebade1_7b97ab4e","line":641,"range":{"start_line":640,"start_character":22,"end_line":641,"end_character":78},"updated":"2026-09-18 11:31:02.000000000","message":"Could this raise a NoneType error?? Should we handle that?","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"aecb6151780274ea3b6572d60fab15f3286ceea0","unresolved":false,"context_lines":[{"line_number":637,"context_line":"                local_shell\u003dTrue)"},{"line_number":638,"context_line":"            # due to lots of requests and responses wait time,"},{"line_number":639,"context_line":"            # difference beyond 1 second is possible, should be accounted for"},{"line_number":640,"context_line":"            ping_ms \u003d int("},{"line_number":641,"context_line":"                re.search(r\u0027packet loss, time (\\d+)ms\u0027, ping_report).group(1))"},{"line_number":642,"context_line":"            ping_extra \u003d max(0, ping_ms / 1000 - expected_ping_duration)"},{"line_number":643,"context_line":"            self.retrieve_tracked_log(vm_a[\u0027hv_ssh_client\u0027])"},{"line_number":644,"context_line":"            # try reaching only 10% more time according to error offset tested"}],"source_content_type":"text/x-python","patch_set":5,"id":"8f5e6b07_e41b2cce","line":641,"range":{"start_line":640,"start_character":22,"end_line":641,"end_character":78},"in_reply_to":"62ebade1_7b97ab4e","updated":"2026-09-24 15:49:35.000000000","message":"afaik it should not fail to have that pattern in output unless there is an unrelated connectivity issue, but I can still catch the error so just in case it fails, we\u0027ll have a clearer related message in traceback.\n\nDone.","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"f59b41da9dd8e6a64c569aad9f5ec157c2055c05","unresolved":true,"context_lines":[{"line_number":646,"context_line":"                break"},{"line_number":647,"context_line":"            if attempt \u003d\u003d attempts_1s:"},{"line_number":648,"context_line":"                LOG.warning("},{"line_number":649,"context_line":"                    \u0027Logging over 1s delayed %d times for many seconds\u0027"},{"line_number":650,"context_line":"                    \u0027(latest ping extra time is %.3f)\u0027,"},{"line_number":651,"context_line":"                    attempts_1s,"},{"line_number":652,"context_line":"                    ping_extra)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a1e3c3ec_ae84661d","line":649,"range":{"start_line":649,"start_character":69,"end_line":649,"end_character":71},"updated":"2026-09-18 11:31:02.000000000","message":"nitty nit: I think there\u0027s one space missing here","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":33341,"name":"Maor Blaustein","email":"mblue@redhat.com","username":"blue"},"change_message_id":"aecb6151780274ea3b6572d60fab15f3286ceea0","unresolved":false,"context_lines":[{"line_number":646,"context_line":"                break"},{"line_number":647,"context_line":"            if attempt \u003d\u003d attempts_1s:"},{"line_number":648,"context_line":"                LOG.warning("},{"line_number":649,"context_line":"                    \u0027Logging over 1s delayed %d times for many seconds\u0027"},{"line_number":650,"context_line":"                    \u0027(latest ping extra time is %.3f)\u0027,"},{"line_number":651,"context_line":"                    attempts_1s,"},{"line_number":652,"context_line":"                    ping_extra)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ceeb8eab_b0453259","line":649,"range":{"start_line":649,"start_character":69,"end_line":649,"end_character":71},"in_reply_to":"a1e3c3ec_ae84661d","updated":"2026-09-24 15:49:35.000000000","message":"Done","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"16675e43f2d40250e7c918d85037d5f0a732fdd3","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        # (additionally to prior multiple attempts for short ping delay,"},{"line_number":663,"context_line":"        # and adjusting limits to extra ping time in hindsight)"},{"line_number":664,"context_line":"        final_offset \u003d min("},{"line_number":665,"context_line":"            1/3,"},{"line_number":666,"context_line":"            expected_offset if ping_extra \u003c expected_offset else ping_extra)"},{"line_number":667,"context_line":"        LOG.debug(\u0027final offset is %.3f\u0027, final_offset)"},{"line_number":668,"context_line":"        self.assertIn(quick_test_logs_amount,"}],"source_content_type":"text/x-python","patch_set":5,"id":"57b41fee_ae972d95","line":665,"updated":"2026-09-16 17:26:12.000000000","message":"pep8: E226 missing whitespace around arithmetic operator","commit_id":"b888681e256e5d996be136c57d7e6d8872c4492f"}]}
