Skip to content

[grid] Add GreedySlotSelector as a built-in slot-selector option #15897

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 18, 2025

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Jun 13, 2025

User description

🔗 Related Issues

💥 What does this PR do?

Fixes #15870

This is good for autoscaling (with max sessions > 1 per node), where all available slots in a Node will be utilized fully before assigning a session to another new Node.

Session assign with GreedySlotSelector strategy

GreedySlotSelector.mp4

Look back the session assign with DefaultSlotSelector

DefaultSlotSelector.mp4

Usage: pass value to CLI option --slot-selector when starting Distributor (or Hub/Standalone), or similar in TOML config
For example: --slot-selector org.openqa.selenium.grid.distributor.selector.GreedySlotSelector

How it works in the background
A greedy slot selector that aims to maximize node utilization by minimizing the number of partially filled nodes. The algorithm works as follows:

  1. Sort nodes by their utilization load (descending).
  2. Among nodes with the same utilization, prefer those with fewer total slots.
  3. Then sort by the last session created (oldest first).

This approach helps to:

  • Fill up nodes that are already partially utilized
  • Minimize the number of nodes that are partially filled
  • Distribute load evenly across nodes

🔧 Implementation Notes

💡 Additional Considerations

🔄 Types of changes

  • Cleanup (formatting, renaming)
  • Bug fix (backwards compatible)
  • New feature (non-breaking change which adds functionality and tests!)
  • Breaking change (fix or feature that would cause existing functionality to change)

PR Type

Enhancement


Description

• Add GreedySlotSelector for maximizing node utilization in Grid
• Implements greedy algorithm prioritizing partially filled nodes
• Includes comprehensive test suite with 429 test lines
• Configurable via CLI --slot-matcher option


Changes walkthrough 📝

Relevant files
Enhancement
GreedySlotSelector.java
New GreedySlotSelector implementation                                       

java/src/org/openqa/selenium/grid/distributor/selector/GreedySlotSelector.java

• Implements SlotSelector interface with greedy algorithm

Prioritizes nodes by utilization ratio (descending order)
• Falls back
to total slots, load, and browser version for tie-breaking
• Includes
factory method for configuration integration

+99/-0   
Tests
GreedySlotSelectorTest.java
Complete test coverage for GreedySlotSelector                       

java/test/org/openqa/selenium/grid/distributor/selector/GreedySlotSelectorTest.java

• Comprehensive test suite with 11 test methods
• Tests utilization
prioritization over capability matching
• Validates node selection
ordering and load balancing
• Includes helper methods for creating
test nodes

+429/-0 

Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • @selenium-ci selenium-ci added B-grid Everything grid and server related C-java Java Bindings labels Jun 13, 2025
    @VietND96 VietND96 requested review from diemol and Copilot June 13, 2025 12:37
    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    🎫 Ticket compliance analysis ❌

    5678 - Not compliant

    Non-compliant requirements:

    • Fix ChromeDriver connection failure error when instantiating multiple ChromeDriver instances
    • Resolve "ConnectFailure (Connection refused)" error that occurs after first ChromeDriver instance
    • Address issue specific to Ubuntu 16.04.4, Chrome 65.0.3325.181, ChromeDriver 2.35, Selenium 3.9.0

    1234 - Not compliant

    Non-compliant requirements:

    • Fix JavaScript execution in link href on click() method for Firefox
    • Ensure click() triggers JavaScript in href attribute (regression from 2.47.1 to 2.48.0/2.48.2)
    • Address Firefox 42.0 compatibility issue

    ⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
    🧪 PR contains tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Logic Concern

    The greedy algorithm prioritizes utilization over capability matching, which may lead to suboptimal slot assignments when nodes with better capability matches have lower utilization. This could result in sessions being assigned to nodes that don't optimally match the requested capabilities.

    return nodes.stream()
        .filter(node -> node.hasCapacity(capabilities, slotMatcher) && node.getAvailability() == UP)
        .sorted(
            // First and foremost, sort by utilization ratio (descending)
            // This ensures we ALWAYS try to fill nodes that are already partially utilized first
            Comparator.comparingDouble(this::getNodeUtilization)
                .reversed()
                // Then sort by total number of slots (ascending)
                // Among nodes with same utilization, prefer those with fewer total slots
                .thenComparingLong(node -> node.getSlots().size())
                // Then sort by node which has the lowest load (natural ordering)
                .thenComparingDouble(NodeStatus::getLoad)
                // Then last session created (oldest first)
                .thenComparingLong(NodeStatus::getLastSessionCreated)
                // Then sort by stereotype browserVersion (descending order)
                .thenComparing(
                    Comparator.comparing(
                        NodeStatus::getBrowserVersion, new SemanticVersionComparator().reversed()))
                // And use the node id as a tie-breaker
                .thenComparing(NodeStatus::getNodeId))
        .flatMap(
            node ->
                node.getSlots().stream()
                    .filter(slot -> slot.getSession() == null)
                    .filter(slot -> slot.isSupporting(capabilities, slotMatcher))
                    .map(Slot::getId))
        .collect(toImmutableSet());
    Test Coverage

    The test suite extensively validates that utilization is prioritized over capability matching, but lacks tests for edge cases like empty node sets, nodes with zero slots, or error handling scenarios that could occur in production environments.

    void shouldAlwaysPrioritizeUtilizationOverBrowserVersion() {
      // Create nodes with different browser versions and utilization
      NodeStatus oldVersionHighUtil =
          createNodeWithStereotypes(
              ImmutableList.of(ImmutableMap.of("browserName", "chrome", "browserVersion", "90.0")),
              10,
              8); // 80% utilized
      NodeStatus newVersionLowUtil =
          createNodeWithStereotypes(
              ImmutableList.of(ImmutableMap.of("browserName", "chrome", "browserVersion", "120.0")),
              10,
              2); // 20% utilized
    
      Capabilities caps =
          new ImmutableCapabilities("browserName", "chrome", "browserVersion", "120.0");
    
      Set<SlotId> slots =
          selector.selectSlot(
              caps, ImmutableSet.of(oldVersionHighUtil, newVersionLowUtil), new DefaultSlotMatcher());
    
      ImmutableSet<NodeId> nodeIds =
          slots.stream().map(SlotId::getOwningNodeId).distinct().collect(toImmutableSet());
    
      // Should prioritize utilization over browser version match
      assertThat(nodeIds)
          .containsSequence(oldVersionHighUtil.getNodeId(), newVersionLowUtil.getNodeId());
    }

    Copy link

    @Copilot Copilot AI left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Pull Request Overview

    This PR introduces a new built-in greedy slot selector to enhance node utilization in the Selenium Grid by prioritizing partially filled nodes using a multi-criteria sorting approach.

    • Added GreedySlotSelector that implements a SlotSelector interface with a chain of comparators based on node utilization, slot count, load, session creation time, browser version, and node ID.
    • Provided comprehensive tests to validate the behavior of node selection and load balancing.

    Copy link
    Contributor

    qodo-merge-pro bot commented Jun 13, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    General
    Add null safety checks

    The method should handle potential edge cases where node or node.getSlots()
    could be null to prevent NullPointerException. Add null checks for robustness.

    java/src/org/openqa/selenium/grid/distributor/selector/GreedySlotSelector.java [83-90]

     double getNodeUtilization(NodeStatus node) {
    +  if (node == null || node.getSlots() == null) {
    +    return 0.0;
    +  }
       long totalSlots = node.getSlots().size();
       if (totalSlots == 0) {
         return 0.0;
       }
       long usedSlots = node.getSlots().stream().filter(slot -> slot.getSession() != null).count();
       return (double) usedSlots / totalSlots;
     }
    • Apply / Chat
    Suggestion importance[1-10]: 4

    __

    Why: The suggestion to add null checks for node and node.getSlots() is a valid defensive programming practice. However, the getNodeUtilization method is only called from a stream processing a Set<NodeStatus>, where null elements are not expected. The improvement in robustness is minor in this context.

    Low
    • Update

    Copy link
    Contributor

    qodo-merge-pro bot commented Jun 13, 2025

    CI Feedback 🧐

    (Feedback updated until commit fd27a60)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Test / All RBE tests

    Failed stage: Run Bazel [❌]

    Failed test name: canGetAllCookies

    Failure summary:

    The action failed because 2 tests failed:
    canGetAllCookies() test in StorageCommandsTest failed
    for Microsoft Edge browser (both local and remote configurations)
    • The test failure occurred at
    line 283 in StorageCommandsTest.java with an AssertionFailedError: Expecting value to be true but
    was false
    • The failure appears to be related to BiDi (Bidirectional WebDriver) storage commands
    functionality when testing cookie retrieval in Edge browser

    Relevant error logs:
    1:  ##[group]Runner Image Provisioner
    2:  Hosted Compute Agent
    ...
    
    947:  Package 'php-sql-formatter' is not installed, so not removed
    948:  Package 'php8.3-ssh2' is not installed, so not removed
    949:  Package 'php-ssh2-all-dev' is not installed, so not removed
    950:  Package 'php8.3-stomp' is not installed, so not removed
    951:  Package 'php-stomp-all-dev' is not installed, so not removed
    952:  Package 'php-swiftmailer' is not installed, so not removed
    953:  Package 'php-symfony' is not installed, so not removed
    954:  Package 'php-symfony-asset' is not installed, so not removed
    955:  Package 'php-symfony-asset-mapper' is not installed, so not removed
    956:  Package 'php-symfony-browser-kit' is not installed, so not removed
    957:  Package 'php-symfony-clock' is not installed, so not removed
    958:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    959:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    960:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    961:  Package 'php-symfony-dotenv' is not installed, so not removed
    962:  Package 'php-symfony-error-handler' is not installed, so not removed
    963:  Package 'php-symfony-event-dispatcher' is not installed, so not removed
    ...
    
    1141:  Package 'php-twig-html-extra' is not installed, so not removed
    1142:  Package 'php-twig-i18n-extension' is not installed, so not removed
    1143:  Package 'php-twig-inky-extra' is not installed, so not removed
    1144:  Package 'php-twig-intl-extra' is not installed, so not removed
    1145:  Package 'php-twig-markdown-extra' is not installed, so not removed
    1146:  Package 'php-twig-string-extra' is not installed, so not removed
    1147:  Package 'php8.3-uopz' is not installed, so not removed
    1148:  Package 'php-uopz-all-dev' is not installed, so not removed
    1149:  Package 'php8.3-uploadprogress' is not installed, so not removed
    1150:  Package 'php-uploadprogress-all-dev' is not installed, so not removed
    1151:  Package 'php8.3-uuid' is not installed, so not removed
    1152:  Package 'php-uuid-all-dev' is not installed, so not removed
    1153:  Package 'php-validate' is not installed, so not removed
    1154:  Package 'php-vlucas-phpdotenv' is not installed, so not removed
    1155:  Package 'php-voku-portable-ascii' is not installed, so not removed
    1156:  Package 'php-wmerrors' is not installed, so not removed
    1157:  Package 'php-xdebug-all-dev' is not installed, so not removed
    ...
    
    1844:  |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    1845:  external/protobuf+/src/google/protobuf/compiler/java/full/enum.cc:125:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<google::protobuf::compiler::java::EnumNonLiteGenerator::Alias>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    1846:  125 |   for (int i = 0; i < aliases_.size(); i++) {
    1847:  |                   ~~^~~~~~~~~~~~~~~~~
    1848:  external/protobuf+/src/google/protobuf/compiler/java/full/enum.cc:209:21: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<const google::protobuf::EnumValueDescriptor*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    1849:  209 |   for (int i = 0; i < canonical_values_.size(); i++) {
    1850:  |                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
    1851:  external/protobuf+/src/google/protobuf/compiler/java/full/enum.cc: In member function ‘bool google::protobuf::compiler::java::EnumNonLiteGenerator::CanUseEnumValues()’:
    1852:  external/protobuf+/src/google/protobuf/compiler/java/full/enum.cc:383:32: warning: comparison of integer expressions of different signedness: ‘std::vector<const google::protobuf::EnumValueDescriptor*>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
    1853:  383 |   if (canonical_values_.size() != descriptor_->value_count()) {
    1854:  |       ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1855:  (20:02:12) �[32mINFO: �[0mFrom Installing external/rules_ruby++ruby+bundle/rb/vendor/cache/bundler-2.6.3.gem (@@rules_ruby++ruby+bundle//:bundler-2.6.3):
    1856:  Successfully installed bundler-2.6.3
    1857:  1 gem installed
    1858:  (20:02:12) �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (69 source files):
    1859:  java/src/org/openqa/selenium/remote/ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1860:  private final ErrorCodes errorCodes;
    1861:  ^
    1862:  java/src/org/openqa/selenium/remote/ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1863:  this.errorCodes = new ErrorCodes();
    1864:  ^
    1865:  java/src/org/openqa/selenium/remote/ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1866:  public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) {
    1867:  ^
    1868:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1869:  ErrorCodes errorCodes = new ErrorCodes();
    1870:  ^
    1871:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1872:  ErrorCodes errorCodes = new ErrorCodes();
    1873:  ^
    1874:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1875:  response.setStatus(ErrorCodes.SUCCESS);
    1876:  ^
    1877:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1878:  response.setState(ErrorCodes.SUCCESS_STRING);
    1879:  ^
    1880:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1881:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
    1882:  ^
    1883:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1884:  new ErrorCodes().getExceptionType((String) rawError);
    1885:  ^
    1886:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1887:  private final ErrorCodes errorCodes = new ErrorCodes();
    1888:  ^
    1889:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1890:  private final ErrorCodes errorCodes = new ErrorCodes();
    1891:  ^
    1892:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1893:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
    1894:  ^
    1895:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:101: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1896:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    1897:  ^
    1898:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:103: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1899:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    1900:  ^
    1901:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:117: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1902:  response.setStatus(ErrorCodes.SUCCESS);
    1903:  ^
    1904:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:118: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1905:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    1906:  ^
    1907:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:124: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1908:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    1909:  ^
    1910:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1911:  private final ErrorCodes errorCodes = new ErrorCodes();
    1912:  ^
    1913:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1914:  private final ErrorCodes errorCodes = new ErrorCodes();
    1915:  ^
    1916:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:93: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1917:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    1918:  ^
    1919:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:98: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1920:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    1921:  ^
    1922:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:145: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    1923:  response.setStatus(ErrorCodes.SUCCESS);
    1924:  ^
    ...
    
    2034:  127 |     for (int i = 0; i < path.size(); ++i) {
    2035:  |                     ~~^~~~~~~~~~~~~
    2036:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/action_test.html -> javascript/atoms/test/action_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2037:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/attribute_test.html -> javascript/atoms/test/attribute_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2038:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/child_locator_test.html -> javascript/atoms/test/child_locator_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2039:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_link_test.html -> javascript/atoms/test/click_link_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2040:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_submit_test.html -> javascript/atoms/test/click_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2041:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_test.html -> javascript/atoms/test/click_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2042:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/clientrect_test.html -> javascript/atoms/test/clientrect_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2043:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/color_test.html -> javascript/atoms/test/color_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2044:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/deps.js -> javascript/atoms/test/deps.js obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2045:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/dom_test.html -> javascript/atoms/test/dom_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2046:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/drag_test.html -> javascript/atoms/test/drag_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2047:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/enabled_test.html -> javascript/atoms/test/enabled_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2048:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/enter_submit_test.html -> javascript/atoms/test/enter_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2049:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/error_test.html -> javascript/atoms/test/error_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    2050:  (20:02:17) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/events_test.html -> javascript/atoms/test/events_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    ...
    
    2178:  �[32m[11,622 / 12,589]�[0m 136 / 2061 tests;�[0m Building java/src/org/openqa/selenium/grid/distributor/selector/libselector.jar (3 source files); 7s remote, remote-cache ... (50 actions, 1 running)
    2179:  (20:02:48) �[32mAnalyzing:�[0m 2369 targets (1673 packages loaded, 61564 targets configured)
    2180:  �[32m[11,660 / 12,672]�[0m 149 / 2061 tests;�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-chrome-bidi; 4s ... (50 actions, 0 running)
    2181:  (20:02:53) �[32mAnalyzing:�[0m 2369 targets (1673 packages loaded, 63087 targets configured)
    2182:  �[32m[11,692 / 12,784]�[0m 171 / 2061 tests;�[0m Testing //py:common-chrome-bidi-test/selenium/webdriver/common/bidi_browser_tests.py; 5s remote, remote-cache ... (50 actions, 0 running)
    2183:  (20:02:58) �[32mAnalyzing:�[0m 2369 targets (1673 packages loaded, 63135 targets configured)
    2184:  �[32m[11,725 / 13,006]�[0m 196 / 2061 tests;�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:timeout-chrome-beta-bidi; 4s ... (50 actions, 2 running)
    2185:  (20:03:03) �[32mAnalyzing:�[0m 2369 targets (1676 packages loaded, 63189 targets configured)
    2186:  �[32m[11,749 / 13,187]�[0m 213 / 2061 tests;�[0m Building java/src/org/openqa/selenium/grid/distributor/libdistributor.jar (9 source files); 8s remote, remote-cache ... (50 actions, 1 running)
    2187:  (20:03:08) �[32mAnalyzing:�[0m 2369 targets (1680 packages loaded, 65021 targets configured)
    2188:  �[32m[11,846 / 13,330]�[0m 299 / 2190 tests;�[0m Building java/test/org/openqa/selenium/grid/distributor/selector/GreedySlotSelectorTest.jar (1 source file); 3s remote, remote-cache ... (50 actions, 1 running)
    2189:  (20:03:12) �[32mINFO: �[0mAnalyzed 2369 targets (1681 packages loaded, 65253 targets configured).
    2190:  (20:03:13) �[32m[12,002 / 13,522]�[0m 437 / 2369 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:navigation-firefox-bidi; 0s remote, remote-cache ... (50 actions, 0 running)
    2191:  (20:03:18) �[32m[12,534 / 14,013]�[0m 592 / 2369 tests;�[0m Building java/src/org/openqa/selenium/grid/sessionqueue/local/liblocal.jar (1 source file); 2s remote, remote-cache ... (46 actions, 12 running)
    2192:  (20:03:19) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/libsmall-tests-test-lib.jar (5 source files) and running annotation processors (AutoServiceProcessor):
    2193:  java/test/org/openqa/selenium/remote/WebDriverFixture.java:170: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2194:  response.setStatus(new ErrorCodes().toStatus(state, Optional.of(400)));
    2195:  ^
    2196:  (20:03:19) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/RemotableByTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2197:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2198:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2199:  ^
    2200:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2201:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2202:  ^
    2203:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2204:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2205:  ^
    2206:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2207:  private final ErrorCodes errorCodes = new ErrorCodes();
    2208:  ^
    2209:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2210:  private final ErrorCodes errorCodes = new ErrorCodes();
    2211:  ^
    2212:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2213:  private final ErrorCodes errorCodes = new ErrorCodes();
    2214:  ^
    2215:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2216:  private final ErrorCodes errorCodes = new ErrorCodes();
    2217:  ^
    2218:  (20:03:19) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/ErrorHandlerTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2219:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:79: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2220:  handler.throwIfResponseFailed(createResponse(ErrorCodes.SUCCESS), 100);
    2221:  ^
    2222:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:85: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2223:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2224:  ^
    2225:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:86: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2226:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2227:  ^
    2228:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:87: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2229:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2230:  ^
    2231:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:88: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2232:  assertThrowsCorrectExceptionType(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2233:  ^
    2234:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:90: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2235:  ErrorCodes.METHOD_NOT_ALLOWED, UnsupportedCommandException.class);
    2236:  ^
    2237:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:92: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2238:  ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2239:  ^
    2240:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:94: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2241:  ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2242:  ^
    2243:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:95: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2244:  assertThrowsCorrectExceptionType(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2245:  ^
    2246:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:107: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2247:  Response response = createResponse(ErrorCodes.UNHANDLED_ERROR);
    2248:  ^
    2249:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:120: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2250:  createResponse(ErrorCodes.UNHANDLED_ERROR, "boom"), 123))
    2251:  ^
    2252:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:133: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2253:  createResponse(ErrorCodes.UNHANDLED_ERROR, ImmutableMap.of("message", "boom")),
    2254:  ^
    2255:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:147: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2256:  ErrorCodes.UNHANDLED_ERROR,
    2257:  ^
    2258:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:167: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2259:  ErrorCodes.UNHANDLED_ERROR,
    2260:  ^
    2261:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:193: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2262:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2263:  ^
    2264:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:214: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2265:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2266:  ^
    2267:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:248: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2268:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2269:  ^
    2270:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:280: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2271:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2272:  ^
    2273:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:308: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2274:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2275:  ^
    2276:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:327: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2277:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2278:  ^
    2279:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:355: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2280:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2281:  ^
    2282:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:394: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2283:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2284:  ^
    2285:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:426: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2286:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2287:  ^
    2288:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:435: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2289:  exceptions.put(ErrorCodes.NO_SUCH_SESSION, NoSuchSessionException.class);
    2290:  ^
    2291:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:436: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2292:  exceptions.put(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2293:  ^
    2294:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:437: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2295:  exceptions.put(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2296:  ^
    2297:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:438: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2298:  exceptions.put(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2299:  ^
    2300:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:439: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2301:  exceptions.put(ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2302:  ^
    2303:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:440: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2304:  exceptions.put(ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2305:  ^
    2306:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2307:  exceptions.put(ErrorCodes.UNHANDLED_ERROR, WebDriverException.class);
    2308:  ^
    2309:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:442: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2310:  exceptions.put(ErrorCodes.JAVASCRIPT_ERROR, JavascriptException.class);
    2311:  ^
    2312:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:443: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2313:  exceptions.put(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2314:  ^
    2315:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:444: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2316:  exceptions.put(ErrorCodes.TIMEOUT, TimeoutException.class);
    2317:  ^
    2318:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:445: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2319:  exceptions.put(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2320:  ^
    2321:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:446: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2322:  exceptions.put(ErrorCodes.INVALID_COOKIE_DOMAIN, InvalidCookieDomainException.class);
    2323:  ^
    2324:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:447: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2325:  exceptions.put(ErrorCodes.UNABLE_TO_SET_COOKIE, UnableToSetCookieException.class);
    2326:  ^
    2327:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:448: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2328:  exceptions.put(ErrorCodes.UNEXPECTED_ALERT_PRESENT, UnhandledAlertException.class);
    2329:  ^
    2330:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:449: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2331:  exceptions.put(ErrorCodes.NO_ALERT_PRESENT, NoAlertPresentException.class);
    2332:  ^
    2333:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:450: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2334:  exceptions.put(ErrorCodes.ASYNC_SCRIPT_TIMEOUT, ScriptTimeoutException.class);
    2335:  ^
    2336:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:451: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2337:  exceptions.put(ErrorCodes.INVALID_SELECTOR_ERROR, InvalidSelectorException.class);
    2338:  ^
    2339:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:452: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2340:  exceptions.put(ErrorCodes.SESSION_NOT_CREATED, SessionNotCreatedException.class);
    2341:  ^
    2342:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:453: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2343:  exceptions.put(ErrorCodes.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsException.class);
    2344:  ^
    2345:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2346:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR, InvalidSelectorException.class);
    2347:  ^
    2348:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:455: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2349:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR_RETURN_TYPER, InvalidSelectorException.class);
    2350:  ^
    2351:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:469: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2352:  ? ErrorCodes.INVALID_SELECTOR_ERROR
    2353:  ^
    2354:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:471: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2355:  assertThat(new ErrorCodes().toStatusCode(e)).isEqualTo(expected);
    2356:  ^
    2357:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:483: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2358:  response.setState(new ErrorCodes().toState(status));
    2359:  ^
    2360:  (20:03:20) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/json/JsonTest.jar (1 source file):
    2361:  java/test/org/openqa/selenium/json/JsonTest.java:430: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2362:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2363:  ^
    2364:  java/test/org/openqa/selenium/json/JsonTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2365:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2366:  ^
    2367:  java/test/org/openqa/selenium/json/JsonTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2368:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(32));
    2369:  ^
    2370:  (20:03:23) �[32m[13,117 / 14,384]�[0m 773 / 2369 tests;�[0m Building java/src/org/openqa/selenium/grid/distributor/config/libconfig.jar (2 source files) and running annotation processors (AutoServiceProcessor); 3s remote, remote-cache ... (47 actions, 16 running)
    2371:  (20:03:23) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.jar (1 source file):
    2372:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:26: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2373:  import static org.openqa.selenium.remote.ErrorCodes.METHOD_NOT_ALLOWED;
    2374:  ^
    2375:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2376:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.SUCCESS);
    2377:  ^
    2378:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:81: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2379:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2380:  ^
    2381:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:107: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2382:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2383:  ^
    ...
    
    2444:  (20:04:25) �[32m[16,036 / 16,109]�[0m 2001 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 37s remote, remote-cache ... (9 actions, 5 running)
    2445:  (20:04:29) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge/test_attempts/attempt_1.log)
    2446:  (20:04:31) �[32m[16,037 / 16,109]�[0m 2002 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 43s remote, remote-cache ... (8 actions, 5 running)
    2447:  (20:04:36) �[32m[16,039 / 16,109]�[0m 2004 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 48s remote, remote-cache ... (6 actions, 5 running)
    2448:  (20:04:43) �[32m[16,043 / 16,109]�[0m 2007 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 55s remote, remote-cache ... (3 actions, 2 running)
    2449:  (20:04:48) �[32m[16,047 / 16,218]�[0m 2008 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 60s remote, remote-cache ... (50 actions, 4 running)
    2450:  (20:04:53) �[32m[16,049 / 16,266]�[0m 2008 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 65s remote, remote-cache ... (49 actions, 4 running)
    2451:  (20:04:58) �[32m[16,051 / 16,316]�[0m 2008 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 70s remote, remote-cache ... (50 actions, 6 running)
    2452:  (20:05:04) �[32m[16,052 / 16,316]�[0m 2008 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 76s remote, remote-cache ... (50 actions, 9 running)
    2453:  (20:05:11) �[32m[16,053 / 16,318]�[0m 2008 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 83s remote, remote-cache ... (50 actions, 8 running)
    2454:  (20:05:16) �[32m[16,054 / 16,318]�[0m 2009 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 88s remote, remote-cache ... (50 actions, 10 running)
    2455:  (20:05:21) �[32m[16,054 / 16,318]�[0m 2009 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 93s remote, remote-cache ... (50 actions, 15 running)
    2456:  (20:05:27) �[32m[16,056 / 16,319]�[0m 2010 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 99s remote, remote-cache ... (50 actions, 15 running)
    2457:  (20:05:32) �[32m[16,058 / 16,321]�[0m 2010 / 2369 tests;�[0m Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge; 104s remote, remote-cache ... (50 actions, 17 running)
    2458:  (20:05:36) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge/test.log)
    2459:  �[31m�[1mFAILED: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge (Summary)
    2460:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge/test.log
    2461:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge/test_attempts/attempt_1.log
    2462:  (20:05:36) �[32mINFO: �[0mFrom Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge:
    2463:  ==================== Test output for //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge:
    2464:  Failures: 1
    2465:  1) canGetAllCookies() (org.openqa.selenium.bidi.storage.StorageCommandsTest)
    2466:  org.opentest4j.AssertionFailedError: 
    2467:  Expecting value to be true but was false
    2468:  at org.openqa.selenium.bidi.storage.StorageCommandsTest.canGetAllCookies(StorageCommandsTest.java:283)
    2469:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChA-6W_NpUFQ54Dgk2XNuH38EgdkZWZhdWx0GiUKIIQa1mN7CUp_CKvSuES5HS0yYvJjsUhm4fIGi0g59LhNELwD
    2470:  ================================================================================
    2471:  ==================== Test output for //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge:
    2472:  Failures: 1
    2473:  1) canGetAllCookies() (org.openqa.selenium.bidi.storage.StorageCommandsTest)
    2474:  org.opentest4j.AssertionFailedError: 
    2475:  Expecting value to be true but was false
    2476:  at org.openqa.selenium.bidi.storage.StorageCommandsTest.canGetAllCookies(StorageCommandsTest.java:283)
    2477:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChA-6W_NpUFQ54Dgk2XNuH38EgdkZWZhdWx0GiUKIIQa1mN7CUp_CKvSuES5HS0yYvJjsUhm4fIGi0g59LhNELwD
    2478:  ================================================================================
    2479:  (20:05:41) �[32m[16,059 / 16,321]�[0m 2011 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //java/test/org/openqa/selenium/interactions:DefaultKeyboardTest-remote; 53s ... (50 actions, 18 running)
    2480:  (20:05:46) �[32m[16,061 / 16,322]�[0m 2012 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //java/test/org/openqa/selenium/devtools:CdpVersionFinderTest-remote; 58s ... (50 actions, 18 running)
    2481:  (20:05:54) �[32m[16,061 / 16,322]�[0m 2012 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //java/test/org/openqa/selenium/devtools:CdpVersionFinderTest-remote; 65s ... (50 actions, 19 running)
    2482:  (20:06:00) �[32m[16,063 / 16,322]�[0m 2014 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //java/test/org/openqa/selenium/bidi/input:DragAndDropTest-chrome-remote; 71s ... (50 actions, 20 running)
    2483:  (20:06:06) �[32m[16,065 / 16,322]�[0m 2016 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Building java/test/org/openqa/selenium/grid/distributor/DrainTest-remote.jar (1 source file); 77s ... (50 actions, 21 running)
    2484:  (20:06:11) �[32m[16,069 / 16,323]�[0m 2019 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-remote; 81s ... (50 actions, 22 running)
    2485:  (20:06:17) �[32m[16,074 / 16,326]�[0m 2021 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 82s remote, remote-cache ... (50 actions, 24 running)
    2486:  (20:06:23) �[32m[16,077 / 16,326]�[0m 2024 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 88s remote, remote-cache ... (50 actions, 31 running)
    2487:  (20:06:28) �[32m[16,082 / 16,326]�[0m 2027 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 93s remote, remote-cache ... (50 actions, 32 running)
    2488:  (20:06:33) �[32m[16,085 / 16,326]�[0m 2029 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 98s remote, remote-cache ... (50 actions, 34 running)
    2489:  (20:06:38) �[32m[16,087 / 16,326]�[0m 2031 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 103s remote, remote-cache ... (50 actions, 35 running)
    2490:  (20:06:44) �[32m[16,090 / 16,327]�[0m 2033 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 108s remote, remote-cache ... (50 actions, 35 running)
    2491:  (20:06:49) �[32m[16,095 / 16,329]�[0m 2035 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 113s remote, remote-cache ... (50 actions, 34 running)
    2492:  (20:06:54) �[32m[16,098 / 16,330]�[0m 2037 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 119s remote, remote-cache ... (50 actions, 34 running)
    2493:  (20:06:59) �[32m[16,100 / 16,332]�[0m 2037 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-chrome-remote; 124s remote, remote-cache ... (50 actions, 34 running)
    2494:  (20:07:06) �[32m[16,105 / 16,333]�[0m 2040 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:LocateNodesTest-remote; 104s remote, remote-cache ... (50 actions, 34 running)
    2495:  (20:07:11) �[32m[16,111 / 16,335]�[0m 2045 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:LocateNodesTest-remote; 109s remote, remote-cache ... (50 actions, 34 running)
    2496:  (20:07:16) �[32m[16,114 / 16,335]�[0m 2049 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 67s remote, remote-cache ... (50 actions, 35 running)
    2497:  (20:07:21) �[32m[16,124 / 16,338]�[0m 2051 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 72s remote, remote-cache ... (50 actions, 34 running)
    2498:  (20:07:27) �[32m[16,132 / 16,342]�[0m 2057 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 77s remote, remote-cache ... (50 actions, 35 running)
    2499:  (20:07:33) �[32m[16,136 / 16,342]�[0m 2061 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 83s remote, remote-cache ... (50 actions, 35 running)
    2500:  (20:07:38) �[32m[16,145 / 16,346]�[0m 2068 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 88s remote, remote-cache ... (50 actions, 34 running)
    2501:  (20:07:43) �[32m[16,148 / 16,351]�[0m 2068 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 93s remote, remote-cache ... (50 actions, 35 running)
    2502:  (20:07:48) �[32m[16,153 / 16,356]�[0m 2070 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 99s remote, remote-cache ... (50 actions, 38 running)
    2503:  (20:07:54) �[32m[16,154 / 16,356]�[0m 2071 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 104s remote, remote-cache ... (50 actions, 41 running)
    2504:  (20:07:55) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge-remote (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge-remote/test_attempts/attempt_1.log)
    2505:  (20:07:59) �[32m[16,162 / 16,356]�[0m 2079 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 110s remote, remote-cache ... (50 actions, 46 running)
    2506:  (20:08:04) �[32m[16,167 / 16,357]�[0m 2083 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 115s remote, remote-cache ... (50 actions, 49 running)
    2507:  (20:08:10) �[32m[16,171 / 16,360]�[0m 2085 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 120s remote, remote-cache ... (50 actions, 49 running)
    2508:  (20:08:15) �[32m[16,174 / 16,363]�[0m 2085 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 126s remote, remote-cache ... (50 actions, 48 running)
    2509:  (20:08:21) �[32m[16,181 / 16,366]�[0m 2091 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 131s remote, remote-cache ... (50 actions running)
    2510:  (20:08:26) �[32m[16,187 / 16,368]�[0m 2095 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 136s remote, remote-cache ... (50 actions, 48 running)
    2511:  (20:08:31) �[32m[16,195 / 16,374]�[0m 2099 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 142s remote, remote-cache ... (50 actions, 48 running)
    2512:  (20:08:37) �[32m[16,200 / 16,375]�[0m 2103 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 147s remote, remote-cache ... (50 actions, 49 running)
    2513:  (20:08:42) �[32m[16,205 / 16,379]�[0m 2105 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 152s remote, remote-cache ... (50 actions, 48 running)
    2514:  (20:08:49) �[32m[16,206 / 16,379]�[0m 2107 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 159s remote, remote-cache ... (50 actions running)
    2515:  (20:08:54) �[32m[16,208 / 16,379]�[0m 2108 / 2369 tests, �[31m�[1m1 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 165s remote, remote-cache ... (50 actions, 49 running)
    2516:  (20:08:57) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge-remote (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge-remote/test.log)
    2517:  �[31m�[1mFAILED: �[0m//java/test/org/openqa/selenium/bidi/storage:StorageCommandsTest-edge-remote (Summary)
    2518:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/bidi/storage/StorageCommandsTest-edge-remote/test.log
    ...
    
    2623:  20:07:49.540 INFO [GridModel.release] - Releasing slot for session id 078918c35b74ae730e8a9fda39e9fb07
    2624:  20:07:49.540 INFO [SessionSlot.stop] - Stopping session 078918c35b74ae730e8a9fda39e9fb07
    2625:  20:07:49.599 INFO [LocalDistributor.newSession] - Session request received by the Distributor: 
    2626:  [Capabilities {browserName: MicrosoftEdge, ms:edgeOptions: {args: [disable-extensions, disable-infobars, disable-breakpad, disable-dev-shm-usage, no-sandbox], binary: external/+pin_browsers_exte..., extensions: [], prefs: {exit_type: None, exited_cleanly: true}}, unhandledPromptBehavior: ignore, webSocketUrl: true}]
    2627:  20:07:52.023 INFO [LocalNode.newSession] - Session created by the Node. Id: 03e616de791d4e7151bb12206728fe3b, Caps: Capabilities {acceptInsecureCerts: false, browserName: MicrosoftEdge, browserVersion: 137.0.3296.68, fedcm:accounts: true, ms:edgeOptions: {debuggerAddress: localhost:32841}, msedge: {msedgedriverVersion: 137.0.3296.68 (f3affdcf267b..., userDataDir: /tmp/.com.microsoft.Edge.8s...}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:cdp: ws://127.0.0.1:25439/sessio..., se:cdpVersion: 137.0.3296.68, se:gridWebSocketUrl: ws://localhost:32248/sessio..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: ignore, webSocketUrl: ws://127.0.0.1:25439/sessio..., webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
    2628:  20:07:52.035 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 03e616de791d4e7151bb12206728fe3b 
    2629:  Caps: Capabilities {acceptInsecureCerts: false, browserName: MicrosoftEdge, browserVersion: 137.0.3296.68, fedcm:accounts: true, ms:edgeOptions: {debuggerAddress: localhost:32841}, msedge: {msedgedriverVersion: 137.0.3296.68 (f3affdcf267b..., userDataDir: /tmp/.com.microsoft.Edge.8s...}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:cdp: ws://127.0.0.1:25439/sessio..., se:cdpVersion: 137.0.3296.68, se:gridWebSocketUrl: ws://localhost:32248/sessio..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: ignore, webSocketUrl: ws://127.0.0.1:25439/sessio..., webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
    2630:  20:07:52.097 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:32248/session/03e616de791d4e7151bb12206728fe3b
    2631:  20:07:52.157 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:32841/devtools/browser/058b4c04-d772-4701-a45e-07199fa89112
    2632:  20:07:54.611 INFO [LocalNode.stopTimedOutSession] - Session id 03e616de791d4e7151bb12206728fe3b is stopping on demand...
    2633:  20:07:54.611 INFO [LocalSessionMap.remove] - Deleted session from local Session Map, Id: 03e616de791d4e7151bb12206728fe3b
    2634:  20:07:54.611 INFO [GridModel.release] - Releasing slot for session id 03e616de791d4e7151bb12206728fe3b
    2635:  20:07:54.612 INFO [SessionSlot.stop] - Stopping session 03e616de791d4e7151bb12206728fe3b
    2636:  Failures: 1
    2637:  1) canGetAllCookies() (org.openqa.selenium.bidi.storage.StorageCommandsTest)
    2638:  org.opentest4j.AssertionFailedError: 
    2639:  Expecting value to be true but was false
    ...
    
    2746:  20:08:51.603 INFO [GridModel.release] - Releasing slot for session id 37386a6f1ca08e1e1359e58525295ce2
    2747:  20:08:51.603 INFO [SessionSlot.stop] - Stopping session 37386a6f1ca08e1e1359e58525295ce2
    2748:  20:08:51.667 INFO [LocalDistributor.newSession] - Session request received by the Distributor: 
    2749:  [Capabilities {browserName: MicrosoftEdge, ms:edgeOptions: {args: [disable-extensions, disable-infobars, disable-breakpad, disable-dev-shm-usage, no-sandbox], binary: external/+pin_browsers_exte..., extensions: [], prefs: {exit_type: None, exited_cleanly: true}}, unhandledPromptBehavior: ignore, webSocketUrl: true}]
    2750:  20:08:53.876 INFO [LocalNode.newSession] - Session created by the Node. Id: 6c6b3a34589eeb675425c8538b671861, Caps: Capabilities {acceptInsecureCerts: false, browserName: MicrosoftEdge, browserVersion: 137.0.3296.68, fedcm:accounts: true, ms:edgeOptions: {debuggerAddress: localhost:38397}, msedge: {msedgedriverVersion: 137.0.3296.68 (f3affdcf267b..., userDataDir: /tmp/.com.microsoft.Edge.ju...}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:cdp: ws://127.0.0.1:4014/session..., se:cdpVersion: 137.0.3296.68, se:gridWebSocketUrl: ws://localhost:8174/session..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: ignore, webSocketUrl: ws://127.0.0.1:4014/session..., webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
    2751:  20:08:53.891 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 6c6b3a34589eeb675425c8538b671861 
    2752:  Caps: Capabilities {acceptInsecureCerts: false, browserName: MicrosoftEdge, browserVersion: 137.0.3296.68, fedcm:accounts: true, ms:edgeOptions: {debuggerAddress: localhost:38397}, msedge: {msedgedriverVersion: 137.0.3296.68 (f3affdcf267b..., userDataDir: /tmp/.com.microsoft.Edge.ju...}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:cdp: ws://127.0.0.1:4014/session..., se:cdpVersion: 137.0.3296.68, se:gridWebSocketUrl: ws://localhost:8174/session..., setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: ignore, webSocketUrl: ws://127.0.0.1:4014/session..., webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
    2753:  20:08:53.984 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:8174/session/6c6b3a34589eeb675425c8538b671861
    2754:  20:08:54.081 INFO [ProxyNodeWebsockets.createWsEndPoint] - Establishing connection to ws://localhost:38397/devtools/browser/e5027dca-2697-4803-b1a9-ccb7b52f60d4
    2755:  20:08:56.374 INFO [LocalNode.stopTimedOutSession] - Session id 6c6b3a34589eeb675425c8538b671861 is stopping on demand...
    2756:  20:08:56.375 INFO [LocalSessionMap.remove] - Deleted session from local Session Map, Id: 6c6b3a34589eeb675425c8538b671861
    2757:  20:08:56.375 INFO [GridModel.release] - Releasing slot for session id 6c6b3a34589eeb675425c8538b671861
    2758:  20:08:56.376 INFO [SessionSlot.stop] - Stopping session 6c6b3a34589eeb675425c8538b671861
    2759:  Failures: 1
    2760:  1) canGetAllCookies() (org.openqa.selenium.bidi.storage.StorageCommandsTest)
    2761:  org.opentest4j.AssertionFailedError: 
    2762:  Expecting value to be true but was false
    2763:  at org.openqa.selenium.bidi.storage.StorageCommandsTest.canGetAllCookies(StorageCommandsTest.java:283)
    2764:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChBOoLKsW6VUfqXUD-AqYVJfEgdkZWZhdWx0GiUKIJqa99AI4dWLhGf1R3Nlwmx4QB3BhYvAk4F3yiMYnuT2ELwD
    2765:  ================================================================================
    2766:  (20:09:01) �[32m[16,215 / 16,379]�[0m 2115 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 171s remote, remote-cache ... (50 actions running)
    2767:  (20:09:06) �[32m[16,215 / 16,379]�[0m 2116 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 177s remote, remote-cache ... (50 actions running)
    2768:  (20:09:11) �[32m[16,218 / 16,379]�[0m 2119 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 182s remote, remote-cache ... (50 actions running)
    2769:  (20:09:17) �[32m[16,225 / 16,379]�[0m 2125 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 187s remote, remote-cache ... (50 actions, 49 running)
    2770:  (20:09:22) �[32m[16,233 / 16,379]�[0m 2133 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 193s remote, remote-cache ... (50 actions running)
    2771:  (20:09:27) �[32m[16,238 / 16,379]�[0m 2138 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 198s remote, remote-cache ... (50 actions running)
    2772:  (20:09:33) �[32m[16,245 / 16,379]�[0m 2145 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 203s remote, remote-cache ... (50 actions, 49 running)
    2773:  (20:09:38) �[32m[16,250 / 16,379]�[0m 2150 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 208s remote, remote-cache ... (50 actions, 49 running)
    2774:  (20:09:43) �[32m[16,251 / 16,379]�[0m 2151 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 213s remote, remote-cache ... (50 actions running)
    2775:  (20:09:48) �[32m[16,256 / 16,379]�[0m 2157 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 219s remote, remote-cache ... (50 actions running)
    2776:  (20:09:53) �[32m[16,264 / 16,379]�[0m 2164 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 224s remote, remote-cache ... (50 actions, 49 running)
    2777:  (20:09:58) �[32m[16,269 / 16,379]�[0m 2169 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 229s remote, remote-cache ... (50 actions, 49 running)
    2778:  (20:10:04) �[32m[16,279 / 16,379]�[0m 2180 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 234s remote, remote-cache ... (50 actions running)
    2779:  (20:10:09) �[32m[16,282 / 16,379]�[0m 2183 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 239s remote, remote-cache ... (50 actions running)
    2780:  (20:10:14) �[32m[16,287 / 16,379]�[0m 2187 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 245s remote, remote-cache ... (50 actions, 49 running)
    2781:  (20:10:19) �[32m[16,294 / 16,379]�[0m 2195 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 250s remote, remote-cache ... (50 actions, 49 running)
    2782:  (20:10:24) �[32m[16,306 / 16,379]�[0m 2206 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 255s remote, remote-cache ... (50 actions, 49 running)
    2783:  (20:10:29) �[32m[16,322 / 16,379]�[0m 2222 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/script:ScriptCommandsTest-remote; 260s remote, remote-cache ... (50 actions, 49 running)
    2784:  (20:10:35) �[32m[16,332 / 16,379]�[0m 2232 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 236s remote, remote-cache ... (47 actions running)
    2785:  (20:10:40) �[32m[16,336 / 16,379]�[0m 2237 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 242s remote, remote-cache ... (43 actions running)
    2786:  (20:10:46) �[32m[16,342 / 16,379]�[0m 2242 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 247s remote, remote-cache ... (37 actions running)
    2787:  (20:10:51) �[32m[16,346 / 16,379]�[0m 2246 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 252s remote, remote-cache ... (33 actions running)
    2788:  (20:10:56) �[32m[16,351 / 16,379]�[0m 2251 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 257s remote, remote-cache ... (28 actions running)
    2789:  (20:11:02) �[32m[16,356 / 16,379]�[0m 2256 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 263s remote, remote-cache ... (23 actions running)
    2790:  (20:11:11) �[32m[16,359 / 16,379]�[0m 2259 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 272s remote, remote-cache ... (20 actions running)
    2791:  (20:11:16) �[32m[16,360 / 16,379]�[0m 2260 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 277s remote, remote-cache ... (19 actions running)
    2792:  (20:11:25) �[32m[16,360 / 16,379]�[0m 2261 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 286s remote, remote-cache ... (19 actions running)
    2793:  (20:11:30) �[32m[16,362 / 16,379]�[0m 2262 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 291s remote, remote-cache ... (17 actions running)
    2794:  (20:11:36) �[32m[16,364 / 16,379]�[0m 2264 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 297s remote, remote-cache ... (15 actions running)
    2795:  (20:11:41) �[32m[16,365 / 16,379]�[0m 2265 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 302s remote, remote-cache ... (14 actions running)
    2796:  (20:11:46) �[32m[16,367 / 16,379]�[0m 2268 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 307s remote, remote-cache ... (12 actions running)
    2797:  (20:11:52) �[32m[16,368 / 16,379]�[0m 2269 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/bidi/browsingcontext:BrowsingContextTest-remote; 313s remote, remote-cache ... (11 actions running)
    2798:  (20:11:59) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium/grid/router:StressTest (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/grid/router/StressTest/test_attempts/attempt_1.log)
    2799:  (20:11:59) �[32m[16,370 / 16,379]�[0m 2270 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/grid/router:StressTest-chrome; 122s remote, remote-cache ... (9 actions running)
    2800:  (20:12:06) �[32m[16,370 / 16,379]�[0m 2270 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/grid/router:StressTest-chrome; 129s remote, remote-cache ... (9 actions running)
    2801:  (20:12:16) �[32m[16,370 / 16,379]�[0m 2270 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/grid/router:StressTest-chrome; 139s remote, remote-cache ... (9 actions running)
    2802:  (20:12:28) �[32m[16,370 / 16,379]�[0m 2271 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/grid/router:StressTest-chrome; 151s remote, remote-cache ... (9 actions running)
    2803:  (20:12:36) �[32m[16,371 / 16,379]�[0m 2271 / 2369 tests, �[31m�[1m2 failed�[0m;�[0m Testing //java/test/org/openqa/selenium/grid/router:StressTest-chrome; 159s remote, remote-cache ... (8 actions ...

    @VietND96 VietND96 force-pushed the greedy-slot-selector branch from 71a813e to 9f5ff01 Compare June 13, 2025 20:25
    @VietND96 VietND96 changed the title [grid] Add GreedySlotSelector as a built-in slot-matcher option [grid] Add GreedySlotSelector as a built-in slot-selector option Jun 17, 2025
    @VietND96 VietND96 merged commit a349ab9 into trunk Jun 18, 2025
    29 of 31 checks passed
    @VietND96 VietND96 deleted the greedy-slot-selector branch June 18, 2025 03:30
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    B-grid Everything grid and server related C-java Java Bindings Review effort 3/5
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    [🚀 Feature]: Greedy Slot Scheduler Algorithm
    2 participants