Skip to content
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

[grid] Distributor listen and handle the NodeRestartedEvent #14938

Merged
merged 2 commits into from
Dec 24, 2024

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Dec 24, 2024

User description

Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

By testing the parallel, where 100 sessions with batch submitted and Node containers spawn and shut down continuously. Due to this, it could be the case where Node restarted (URI is the same, but NodeId is different). Intermittently, 2-3 sessions failed, which is not the request timed out case, just see the message that the session was removed from LocalSessionMap.

LocalDistributor is getting a snapshot from GridModel. So, it is potential for a race condition where the Distributor fetches available Nodes, including a Node that could get restarted in the meantime (since updateNodeAvailability by an interval) and assign a session to it, then very fast the session is removed by LocalSessionMap (due to it also consumed the NodeRestartedEvent)

Let LocalDistributor also listen to the event NodeRestartedEvent and immediately lock the thread to updateNodeAvailability, then getAvailableNodes doesn't have a chance to see that Node anymore.
The same action will be synced across LocalSessionMap, Distributor, GridModel.

Motivation and Context

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Bug fix


Description

  • Added handling of NodeRestartedEvent in LocalDistributor to prevent race conditions when nodes restart during session allocation
  • When a node restarts (same URI but different NodeId), the distributor now immediately sets its availability to DOWN
  • This change helps prevent session failures that occur when nodes restart during parallel test execution
  • Synchronizes node availability updates across LocalSessionMap, Distributor, and GridModel components

Changes walkthrough 📝

Relevant files
Enhancement
LocalDistributor.java
Add Node restart event handling in LocalDistributor           

java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java

  • Added handling of NodeRestartedEvent by registering a new event
    listener
  • Implemented handleNodeRestarted method to set node availability to
    DOWN when a node restarts
  • Added import for NodeRestartedEvent class
  • +21/-0   

    💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

    Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

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

    Race Condition

    The handleNodeRestarted method checks if the node is draining before setting availability to DOWN. This could create a race condition if the node's draining state changes between the check and the availability update.

    if (!getNodeFromURI(status.getExternalUri()).isDraining()) {
      LOG.info(
          String.format(
              "Node %s has restarted. Setting availability to DOWN.", status.getNodeId()));
      model.setAvailability(status.getNodeId(), DOWN);
    }
    Error Handling

    The handleNodeRestarted method silently returns if the node is not found. Consider logging a warning message to help with debugging node restart issues.

    if (!nodes.containsKey(status.getNodeId())) {
      return;
    }

    @VietND96 VietND96 requested review from diemol and joerg1985 December 24, 2024 10:03
    Copy link
    Contributor

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    Add null check to prevent NullPointerException when accessing method on potentially null object

    Add null check for getNodeFromURI() result to avoid potential NullPointerException
    when accessing isDraining()

    java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java [340-345]

    -if (!getNodeFromURI(status.getExternalUri()).isDraining()) {
    +Node node = getNodeFromURI(status.getExternalUri());
    +if (node != null && !node.isDraining()) {
       LOG.info(
           String.format(
               "Node %s has restarted. Setting availability to DOWN.", status.getNodeId()));
       model.setAvailability(status.getNodeId(), DOWN);
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: The suggestion addresses a critical potential NullPointerException that could crash the application. Adding a null check is essential for robust error handling in this core functionality.

    9
    General
    Add error logging to improve debugging capabilities when node lookup fails

    Add error logging when node lookup by URI fails to help with debugging node
    connectivity issues

    java/src/org/openqa/selenium/grid/distributor/local/LocalDistributor.java [340-345]

    -if (!getNodeFromURI(status.getExternalUri()).isDraining()) {
    -  LOG.info(
    -      String.format(
    -          "Node %s has restarted. Setting availability to DOWN.", status.getNodeId()));
    +Node node = getNodeFromURI(status.getExternalUri());
    +if (node == null) {
    +  LOG.warning(String.format("Failed to find node by URI: %s", status.getExternalUri()));
    +  return;
    +}
    +if (!node.isDraining()) {
    +  LOG.info(String.format("Node %s has restarted. Setting availability to DOWN.", status.getNodeId()));
       model.setAvailability(status.getNodeId(), DOWN);
     }
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Adding error logging for failed node lookups would significantly improve debugging capabilities in production environments, helping diagnose node connectivity issues more effectively.

    7

    Copy link
    Contributor

    qodo-merge-pro bot commented Dec 24, 2024

    CI Failure Feedback 🧐

    (Checks updated until commit a6800a9)

    Action: Test / All RBE tests

    Failed stage: Run Bazel [❌]

    Failed test name: testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports

    Failure summary:

    The action failed because the test testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports
    in ClickTest-firefox-beta failed. The test timed out waiting for the page title to change to
    "clicks" - it remained as "This page has iframes" after waiting for 10 seconds.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    970:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    971:  Package 'php-symfony-dependency-injection' is not installed, so not removed
    972:  Package 'php-symfony-deprecation-contracts' is not installed, so not removed
    973:  Package 'php-symfony-discord-notifier' is not installed, so not removed
    974:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    975:  Package 'php-symfony-doctrine-messenger' is not installed, so not removed
    976:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    977:  Package 'php-symfony-dotenv' is not installed, so not removed
    978:  Package 'php-symfony-error-handler' is not installed, so not removed
    ...
    
    2017:  Please ensure that your Gemfiles and .gemspecs are suitably restrictive
    2018:  to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
    2019:  See https://github.com/rubyzip/rubyzip for details. The Changelog also
    2020:  lists other enhancements and bugfixes that have been implemented since
    2021:  version 2.3.0.
    2022:  2 installed gems you directly depend on are looking for funding.
    2023:  Run `bundle fund` for details
    2024:  (11:02:01) �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files):
    2025:  java/src/org/openqa/selenium/remote/ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2026:  private final ErrorCodes errorCodes;
    2027:  ^
    2028:  java/src/org/openqa/selenium/remote/ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2029:  this.errorCodes = new ErrorCodes();
    2030:  ^
    2031:  java/src/org/openqa/selenium/remote/ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2032:  public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) {
    2033:  ^
    2034:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2035:  ErrorCodes errorCodes = new ErrorCodes();
    2036:  ^
    2037:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2038:  ErrorCodes errorCodes = new ErrorCodes();
    2039:  ^
    2040:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2041:  response.setStatus(ErrorCodes.SUCCESS);
    2042:  ^
    2043:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2044:  response.setState(ErrorCodes.SUCCESS_STRING);
    2045:  ^
    2046:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2047:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
    2048:  ^
    2049:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2050:  new ErrorCodes().getExceptionType((String) rawError);
    2051:  ^
    2052:  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
    2053:  private final ErrorCodes errorCodes = new ErrorCodes();
    2054:  ^
    2055:  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
    2056:  private final ErrorCodes errorCodes = new ErrorCodes();
    2057:  ^
    2058:  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
    2059:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
    2060:  ^
    2061:  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
    2062:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    2063:  ^
    2064:  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
    2065:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2066:  ^
    2067:  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
    2068:  response.setStatus(ErrorCodes.SUCCESS);
    2069:  ^
    2070:  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
    2071:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2072:  ^
    2073:  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
    2074:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2075:  ^
    2076:  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
    2077:  private final ErrorCodes errorCodes = new ErrorCodes();
    2078:  ^
    2079:  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
    2080:  private final ErrorCodes errorCodes = new ErrorCodes();
    2081:  ^
    2082:  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
    2083:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    2084:  ^
    2085:  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
    2086:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2087:  ^
    2088:  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
    2089:  response.setStatus(ErrorCodes.SUCCESS);
    ...
    
    2119:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2120:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2121:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2122:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2123:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2124:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2125:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2126:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    2127:  (11:02:02) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:398: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
    ...
    
    2220:  /mnt/engflow/worker/work/0/exec/bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/rules_pkg~/pkg/private/zip/build_zip.runfiles/rules_python~~python~python_3_8_x86_64-unknown-linux-gnu/lib/python3.8/zipfile.py:1525: UserWarning: Duplicate name: 'grid-ui/'
    2221:  return self._open_to_write(zinfo, force_zip64=force_zip64)
    2222:  (11:02:28) �[32mAnalyzing:�[0m 2167 targets (1628 packages loaded, 62353 targets configured)
    2223:  �[32m[8,001 / 10,120]�[0m 227 / 1886 tests;�[0m Testing //java/src/org/openqa/selenium/grid/data:data-spotbugs; 1s remote, remote-cache ... (50 actions, 0 running)
    2224:  (11:02:33) �[32mAnalyzing:�[0m 2167 targets (1629 packages loaded, 62949 targets configured)
    2225:  �[32m[8,558 / 10,476]�[0m 285 / 1886 tests;�[0m Testing //javascript/node/selenium-webdriver:test-lib-api-test.js-chrome; 2s remote, remote-cache ... (50 actions, 2 running)
    2226:  (11:02:38) �[32mAnalyzing:�[0m 2167 targets (1630 packages loaded, 63234 targets configured)
    2227:  �[32m[9,406 / 11,093]�[0m 389 / 1945 tests;�[0m [Prepa] Testing //py:common-edge-test/selenium/webdriver/common/element_equality_tests.py ... (50 actions, 0 running)
    2228:  (11:02:42) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/ErrorHandlerTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2229:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:79: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2230:  handler.throwIfResponseFailed(createResponse(ErrorCodes.SUCCESS), 100);
    2231:  ^
    2232:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:85: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2233:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2234:  ^
    2235:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:86: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2236:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2237:  ^
    2238:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:87: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2239:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2240:  ^
    2241:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:88: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2242:  assertThrowsCorrectExceptionType(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2243:  ^
    2244:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:90: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2245:  ErrorCodes.METHOD_NOT_ALLOWED, UnsupportedCommandException.class);
    2246:  ^
    2247:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:92: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2248:  ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2249:  ^
    2250:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:94: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2251:  ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2252:  ^
    2253:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:95: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2254:  assertThrowsCorrectExceptionType(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2255:  ^
    2256:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:107: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2257:  Response response = createResponse(ErrorCodes.UNHANDLED_ERROR);
    2258:  ^
    2259:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:120: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2260:  createResponse(ErrorCodes.UNHANDLED_ERROR, "boom"), 123))
    2261:  ^
    2262:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:133: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2263:  createResponse(ErrorCodes.UNHANDLED_ERROR, ImmutableMap.of("message", "boom")),
    2264:  ^
    2265:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:147: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2266:  ErrorCodes.UNHANDLED_ERROR,
    2267:  ^
    2268:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:167: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2269:  ErrorCodes.UNHANDLED_ERROR,
    2270:  ^
    2271:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:193: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2272:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2273:  ^
    2274:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:214: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2275:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2276:  ^
    2277:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:248: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2278:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2279:  ^
    2280:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:280: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2281:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2282:  ^
    2283:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:308: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2284:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2285:  ^
    2286:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:327: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2287:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2288:  ^
    2289:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:355: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2290:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2291:  ^
    2292:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:394: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2293:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2294:  ^
    2295:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:426: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2296:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2297:  ^
    2298:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:435: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2299:  exceptions.put(ErrorCodes.NO_SUCH_SESSION, NoSuchSessionException.class);
    2300:  ^
    2301:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:436: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2302:  exceptions.put(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2303:  ^
    2304:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:437: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2305:  exceptions.put(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2306:  ^
    2307:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:438: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2308:  exceptions.put(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2309:  ^
    2310:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:439: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2311:  exceptions.put(ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2312:  ^
    2313:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:440: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2314:  exceptions.put(ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2315:  ^
    2316:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2317:  exceptions.put(ErrorCodes.UNHANDLED_ERROR, WebDriverException.class);
    2318:  ^
    2319:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:442: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2320:  exceptions.put(ErrorCodes.JAVASCRIPT_ERROR, JavascriptException.class);
    2321:  ^
    2322:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:443: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2323:  exceptions.put(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2324:  ^
    2325:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:444: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2326:  exceptions.put(ErrorCodes.TIMEOUT, TimeoutException.class);
    2327:  ^
    2328:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:445: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2329:  exceptions.put(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2330:  ^
    2331:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:446: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2332:  exceptions.put(ErrorCodes.INVALID_COOKIE_DOMAIN, InvalidCookieDomainException.class);
    2333:  ^
    2334:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:447: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2335:  exceptions.put(ErrorCodes.UNABLE_TO_SET_COOKIE, UnableToSetCookieException.class);
    2336:  ^
    2337:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:448: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2338:  exceptions.put(ErrorCodes.UNEXPECTED_ALERT_PRESENT, UnhandledAlertException.class);
    2339:  ^
    2340:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:449: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2341:  exceptions.put(ErrorCodes.NO_ALERT_PRESENT, NoAlertPresentException.class);
    2342:  ^
    2343:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:450: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2344:  exceptions.put(ErrorCodes.ASYNC_SCRIPT_TIMEOUT, ScriptTimeoutException.class);
    2345:  ^
    2346:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:451: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2347:  exceptions.put(ErrorCodes.INVALID_SELECTOR_ERROR, InvalidSelectorException.class);
    2348:  ^
    2349:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:452: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2350:  exceptions.put(ErrorCodes.SESSION_NOT_CREATED, SessionNotCreatedException.class);
    2351:  ^
    2352:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:453: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2353:  exceptions.put(ErrorCodes.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsException.class);
    2354:  ^
    2355:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2356:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR, InvalidSelectorException.class);
    2357:  ^
    2358:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:455: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2359:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR_RETURN_TYPER, InvalidSelectorException.class);
    2360:  ^
    2361:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:469: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2362:  ? ErrorCodes.INVALID_SELECTOR_ERROR
    2363:  ^
    2364:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:471: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2365:  assertThat(new ErrorCodes().toStatusCode(e)).isEqualTo(expected);
    2366:  ^
    2367:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:483: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2368:  response.setState(new ErrorCodes().toState(status));
    2369:  ^
    2370:  (11:02:43) �[32mAnalyzing:�[0m 2167 targets (1630 packages loaded, 63291 targets configured)
    2371:  �[32m[10,332 / 11,854]�[0m 528 / 2001 tests;�[0m [Prepa] Testing //py:common-chrome-bidi-test/selenium/webdriver/support/expected_conditions_tests.py ... (46 actions, 13 running)
    2372:  (11:02:43) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/RemotableByTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2373:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2374:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2375:  ^
    2376:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2377:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2378:  ^
    2379:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2380:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2381:  ^
    2382:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2383:  private final ErrorCodes errorCodes = new ErrorCodes();
    2384:  ^
    2385:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2386:  private final ErrorCodes errorCodes = new ErrorCodes();
    2387:  ^
    2388:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2389:  private final ErrorCodes errorCodes = new ErrorCodes();
    2390:  ^
    2391:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2392:  private final ErrorCodes errorCodes = new ErrorCodes();
    2393:  ^
    2394:  (11:02:45) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/libsmall-tests-test-lib.jar (5 source files) and running annotation processors (AutoServiceProcessor):
    2395:  java/test/org/openqa/selenium/remote/WebDriverFixture.java:170: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2396:  response.setStatus(new ErrorCodes().toStatus(state, Optional.of(400)));
    2397:  ^
    2398:  (11:02:45) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.jar (1 source file):
    2399:  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
    2400:  import static org.openqa.selenium.remote.ErrorCodes.METHOD_NOT_ALLOWED;
    2401:  ^
    2402:  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
    2403:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.SUCCESS);
    2404:  ^
    2405:  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
    2406:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2407:  ^
    2408:  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
    2409:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2410:  ^
    2411:  (11:02:45) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/json/JsonTest.jar (1 source file):
    2412:  java/test/org/openqa/selenium/json/JsonTest.java:430: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2413:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2414:  ^
    2415:  java/test/org/openqa/selenium/json/JsonTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2416:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2417:  ^
    2418:  java/test/org/openqa/selenium/json/JsonTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2419:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(32));
    ...
    
    2462:  dotnet/test/common/ClearTest.cs(208,25): warning CS0618: 'IWebElement.GetAttribute(string)' is obsolete: 'Use GetDomAttribute(string attributeName) or GetDomProperty(string propertyName). GetAttribute(string attributeName) will be removed in Selenium 6.'
    2463:  (11:03:30) �[32mINFO: �[0mFrom Compiling Interactions/BasicMouseInterfaceTest-chrome:
    2464:  dotnet/test/common/Interactions/BasicMouseInterfaceTest.cs(133,25): warning CS0618: 'IWebElement.GetAttribute(string)' is obsolete: 'Use GetDomAttribute(string attributeName) or GetDomProperty(string propertyName). GetAttribute(string attributeName) will be removed in Selenium 6.'
    2465:  dotnet/test/common/Interactions/BasicMouseInterfaceTest.cs(147,25): warning CS0618: 'IWebElement.GetAttribute(string)' is obsolete: 'Use GetDomAttribute(string attributeName) or GetDomProperty(string propertyName). GetAttribute(string attributeName) will be removed in Selenium 6.'
    2466:  dotnet/test/common/Interactions/BasicMouseInterfaceTest.cs(162,25): warning CS0618: 'IWebElement.GetAttribute(string)' is obsolete: 'Use GetDomAttribute(string attributeName) or GetDomProperty(string propertyName). GetAttribute(string attributeName) will be removed in Selenium 6.'
    2467:  (11:03:31) �[32mINFO: �[0mFrom Compiling ShadowRootHandlingTest-chrome:
    2468:  dotnet/test/common/ShadowRootHandlingTest.cs(46,25): warning CS0618: 'IWebElement.GetAttribute(string)' is obsolete: 'Use GetDomAttribute(string attributeName) or GetDomProperty(string propertyName). GetAttribute(string attributeName) will be removed in Selenium 6.'
    2469:  (11:03:33) �[32mAnalyzing:�[0m 2167 targets (1630 packages loaded, 63453 targets configured)
    2470:  �[32m[13,849 / 14,621]�[0m 1381 / 2164 tests;�[0m Testing //java/test/org/openqa/selenium:ErrorsTest-spotbugs; 2s remote, remote-cache ... (50 actions, 0 running)
    ...
    
    3223:  �[32m[15,308 / 15,471]�[0m 2001 / 2164 tests;�[0m Testing //java/test/org/openqa/selenium:ClickTest-firefox-beta; 5s remote, remote-cache ... (50 actions, 1 running)
    3224:  (11:04:03) �[32mAnalyzing:�[0m 2167 targets (1630 packages loaded, 63453 targets configured)
    3225:  �[32m[15,429 / 15,474]�[0m 2119 / 2164 tests;�[0m Testing //java/test/org/openqa/selenium:ClickTest-firefox-beta; 10s remote, remote-cache ... (45 actions, 1 running)
    3226:  (11:04:04) �[32mINFO: �[0mAnalyzed 2167 targets (1631 packages loaded, 63510 targets configured).
    3227:  (11:04:06) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium:ClickTest-firefox-beta (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test_attempts/attempt_1.log)
    3228:  (11:04:13) �[32m[15,491 / 15,492]�[0m 2166 / 2167 tests;�[0m Testing //java/test/org/openqa/selenium:ClickTest-firefox-beta; 20s remote, remote-cache
    3229:  (11:04:23) �[32m[15,491 / 15,492]�[0m 2166 / 2167 tests;�[0m Testing //java/test/org/openqa/selenium:ClickTest-firefox-beta; 30s remote, remote-cache
    3230:  (11:04:38) �[31m�[1mFAIL: �[0m//java/test/org/openqa/selenium:ClickTest-firefox-beta (see /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test.log)
    3231:  �[31m�[1mFAILED: �[0m//java/test/org/openqa/selenium:ClickTest-firefox-beta (Summary)
    3232:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test.log
    3233:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test_attempts/attempt_1.log
    3234:  (11:04:38) �[32mINFO: �[0mFrom Testing //java/test/org/openqa/selenium:ClickTest-firefox-beta:
    3235:  ==================== Test output for //java/test/org/openqa/selenium:ClickTest-firefox-beta:
    3236:  Failures: 1
    3237:  1) testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports() (org.openqa.selenium.ClickTest)
    3238:  org.openqa.selenium.TimeoutException: Expected condition failed: waiting for title to be "clicks". Current title: "This page has iframes" (tried for 10 second(s) with 500 milliseconds interval)
    ...
    
    3245:  at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:228)
    3246:  at org.openqa.selenium.testing.SeleniumExtension.waitUntil(SeleniumExtension.java:240)
    3247:  at org.openqa.selenium.ClickTest.testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports(ClickTest.java:282)
    3248:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChCgHfMQ0UNCiqLjEC0JFA-PEgdkZWZhdWx0GiUKIOwBk50gBuIU-wJ0-bul-6RN-SZw6oR64hHVYuR5hF6mEJ8D
    3249:  ================================================================================
    3250:  ==================== Test output for //java/test/org/openqa/selenium:ClickTest-firefox-beta:
    3251:  Failures: 1
    3252:  1) testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports() (org.openqa.selenium.ClickTest)
    3253:  org.openqa.selenium.TimeoutException: Expected condition failed: waiting for title to be "clicks". Current title: "This page has iframes" (tried for 10 second(s) with 500 milliseconds interval)
    ...
    
    3260:  at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:228)
    3261:  at org.openqa.selenium.testing.SeleniumExtension.waitUntil(SeleniumExtension.java:240)
    3262:  at org.openqa.selenium.ClickTest.testShouldBeAbleToClickOnAnElementInFrameGreaterThanTwoViewports(ClickTest.java:282)
    3263:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChCgHfMQ0UNCiqLjEC0JFA-PEgdkZWZhdWx0GiUKIOwBk50gBuIU-wJ0-bul-6RN-SZw6oR64hHVYuR5hF6mEJ8D
    3264:  ================================================================================
    3265:  (11:04:38) �[32mINFO: �[0mFound 2167 test targets...
    3266:  (11:04:38) �[32mINFO: �[0mElapsed time: 283.678s, Critical Path: 82.26s
    3267:  (11:04:38) �[32mINFO: �[0m14733 processes: 7374 remote cache hit, 7308 internal, 49 local, 2 remote.
    3268:  (11:04:38) �[32mINFO: �[0mBuild completed, 1 test FAILED, 14733 total actions
    ...
    
    3382:  //dotnet/test/common:ElementFindingTest-edge                    �[0m�[32m(cached) PASSED�[0m in 33.9s
    3383:  //dotnet/test/common:ElementFindingTest-firefox                 �[0m�[32m(cached) PASSED�[0m in 44.5s
    3384:  //dotnet/test/common:ElementPropertyTest-chrome                 �[0m�[32m(cached) PASSED�[0m in 5.7s
    3385:  //dotnet/test/common:ElementPropertyTest-edge                   �[0m�[32m(cached) PASSED�[0m in 7.2s
    3386:  //dotnet/test/common:ElementPropertyTest-firefox                �[0m�[32m(cached) PASSED�[0m in 10.4s
    3387:  //dotnet/test/common:ElementSelectingTest-chrome                �[0m�[32m(cached) PASSED�[0m in 10.1s
    3388:  //dotnet/test/common:ElementSelectingTest-edge                  �[0m�[32m(cached) PASSED�[0m in 11.9s
    3389:  //dotnet/test/common:ElementSelectingTest-firefox               �[0m�[32m(cached) PASSED�[0m in 21.4s
    3390:  //dotnet/test/common:ErrorsTest-chrome                          �[0m�[32m(cached) PASSED�[0m in 5.5s
    3391:  //dotnet/test/common:ErrorsTest-edge                            �[0m�[32m(cached) PASSED�[0m in 6.6s
    3392:  //dotnet/test/common:ErrorsTest-firefox                         �[0m�[32m(cached) PASSED�[0m in 9.6s
    ...
    
    3740:  //java/test/org/openqa/selenium:ElementFindingTest-edge         �[0m�[32m(cached) PASSED�[0m in 96.5s
    3741:  //java/test/org/openqa/selenium:ElementFindingTest-firefox-beta �[0m�[32m(cached) PASSED�[0m in 34.5s
    3742:  //java/test/org/openqa/selenium:ElementFindingTest-spotbugs     �[0m�[32m(cached) PASSED�[0m in 10.2s
    3743:  //java/test/org/openqa/selenium:ElementSelectingTest            �[0m�[32m(cached) PASSED�[0m in 37.1s
    3744:  //java/test/org/openqa/selenium:ElementSelectingTest-chrome     �[0m�[32m(cached) PASSED�[0m in 18.2s
    3745:  //java/test/org/openqa/selenium:ElementSelectingTest-edge       �[0m�[32m(cached) PASSED�[0m in 25.3s
    3746:  //java/test/org/openqa/selenium:ElementSelectingTest-firefox-beta �[0m�[32m(cached) PASSED�[0m in 26.3s
    3747:  //java/test/org/openqa/selenium:ElementSelectingTest-spotbugs   �[0m�[32m(cached) PASSED�[0m in 7.2s
    3748:  //java/test/org/openqa/selenium:ErrorsTest                      �[0m�[32m(cached) PASSED�[0m in 11.4s
    3749:  //java/test/org/openqa/selenium:ErrorsTest-chrome               �[0m�[32m(cached) PASSED�[0m in 10.2s
    3750:  //java/test/org/openqa/selenium:ErrorsTest-edge                 �[0m�[32m(cached) PASSED�[0m in 9.6s
    3751:  //java/test/org/openqa/selenium:ErrorsTest-firefox-beta         �[0m�[32m(cached) PASSED�[0m in 11.8s
    3752:  //java/test/org/openqa/selenium:ErrorsTest-spotbugs             �[0m�[32m(cached) PASSED�[0m in 6.7s
    ...
    
    4485:  //java/test/org/openqa/selenium/os:ExternalProcessTest          �[0m�[32m(cached) PASSED�[0m in 2.4s
    4486:  //java/test/org/openqa/selenium/os:ExternalProcessTest-spotbugs �[0m�[32m(cached) PASSED�[0m in 9.0s
    4487:  //java/test/org/openqa/selenium/os:OsProcessTest                �[0m�[32m(cached) PASSED�[0m in 5.4s
    4488:  //java/test/org/openqa/selenium/os:OsProcessTest-spotbugs       �[0m�[32m(cached) PASSED�[0m in 7.9s
    4489:  //java/test/org/openqa/selenium/remote:AugmenterTest            �[0m�[32m(cached) PASSED�[0m in 4.3s
    4490:  //java/test/org/openqa/selenium/remote:AugmenterTest-spotbugs   �[0m�[32m(cached) PASSED�[0m in 9.3s
    4491:  //java/test/org/openqa/selenium/remote:DesiredCapabilitiesTest  �[0m�[32m(cached) PASSED�[0m in 1.7s
    4492:  //java/test/org/openqa/selenium/remote:DesiredCapabilitiesTest-spotbugs �[0m�[32m(cached) PASSED�[0m in 9.2s
    4493:  //java/test/org/openqa/selenium/remote:ErrorCodecTest           �[0m�[32m(cached) PASSED�[0m in 2.0s
    4494:  //java/test/org/openqa/selenium/remote:ErrorCodecTest-spotbugs  �[0m�[32m(cached) PASSED�[0m in 7.6s
    4495:  //java/test/org/openqa/selenium/remote:ErrorHandlerTest         �[0m�[32m(cached) PASSED�[0m in 2.0s
    4496:  //java/test/org/openqa/selenium/remote:ErrorHandlerTest-spotbugs �[0m�[32m(cached) PASSED�[0m in 9.4s
    ...
    
    5081:  //py:unit-test/unit/selenium/webdriver/chrome/chrome_options_tests.py �[0m�[32m(cached) PASSED�[0m in 2.0s
    5082:  //py:unit-test/unit/selenium/webdriver/common/cdp_module_fallback_tests.py �[0m�[32m(cached) PASSED�[0m in 2.5s
    5083:  //py:unit-test/unit/selenium/webdriver/common/common_options_tests.py �[0m�[32m(cached) PASSED�[0m in 2.1s
    5084:  //py:unit-test/unit/selenium/webdriver/common/fedcm/account_tests.py �[0m�[32m(cached) PASSED�[0m in 2.0s
    5085:  //py:unit-test/unit/selenium/webdriver/common/fedcm/dialog_tests.py �[0m�[32m(cached) PASSED�[0m in 1.8s
    5086:  //py:unit-test/unit/selenium/webdriver/common/print_page_options_tests.py �[0m�[32m(cached) PASSED�[0m in 1.8s
    5087:  //py:unit-test/unit/selenium/webdriver/edge/edge_options_tests.py �[0m�[32m(cached) PASSED�[0m in 1.9s
    5088:  //py:unit-test/unit/selenium/webdriver/firefox/firefox_options_tests.py �[0m�[32m(cached) PASSED�[0m in 2.0s
    5089:  //py:unit-test/unit/selenium/webdriver/remote/error_handler_tests.py �[0m�[32m(cached) PASSED�[0m in 2.1s
    ...
    
    5124:  //rb/spec/integration/selenium/webdriver:element-edge-bidi      �[0m�[32m(cached) PASSED�[0m in 17.3s
    5125:  //rb/spec/integration/selenium/webdriver:element-edge-remote    �[0m�[32m(cached) PASSED�[0m in 46.0s
    5126:  //rb/spec/integration/selenium/webdriver:element-firefox        �[0m�[32m(cached) PASSED�[0m in 52.5s
    5127:  //rb/spec/integration/selenium/webdriver:element-firefox-beta   �[0m�[32m(cached) PASSED�[0m in 69.6s
    5128:  //rb/spec/integration/selenium/webdriver:element-firefox-beta-bidi �[0m�[32m(cached) PASSED�[0m in 20.5s
    5129:  //rb/spec/integration/selenium/webdriver:element-firefox-beta-remote �[0m�[32m(cached) PASSED�[0m in 66.7s
    5130:  //rb/spec/integration/selenium/webdriver:element-firefox-bidi   �[0m�[32m(cached) PASSED�[0m in 17.0s
    5131:  //rb/spec/integration/selenium/webdriver:element-firefox-remote �[0m�[32m(cached) PASSED�[0m in 69.9s
    5132:  //rb/spec/integration/selenium/webdriver:error-chrome           �[0m�[32m(cached) PASSED�[0m in 17.5s
    5133:  //rb/spec/integration/selenium/webdriver:error-chrome-bidi      �[0m�[32m(cached) PASSED�[0m in 13.7s
    5134:  //rb/spec/integration/selenium/webdriver:error-chrome-remote    �[0m�[32m(cached) PASSED�[0m in 18.6s
    5135:  //rb/spec/integration/selenium/webdriver:error-edge             �[0m�[32m(cached) PASSED�[0m in 17.5s
    5136:  //rb/spec/integration/selenium/webdriver:error-edge-bidi        �[0m�[32m(cached) PASSED�[0m in 14.7s
    5137:  //rb/spec/integration/selenium/webdriver:error-edge-remote      �[0m�[32m(cached) PASSED�[0m in 19.9s
    5138:  //rb/spec/integration/selenium/webdriver:error-firefox          �[0m�[32m(cached) PASSED�[0m in 24.1s
    5139:  //rb/spec/integration/selenium/webdriver:error-firefox-beta     �[0m�[32m(cached) PASSED�[0m in 26.3s
    5140:  //rb/spec/integration/selenium/webdriver:error-firefox-beta-bidi �[0m�[32m(cached) PASSED�[0m in 17.0s
    5141:  //rb/spec/integration/selenium/webdriver:error-firefox-beta-remote �[0m�[32m(cached) PASSED�[0m in 30.3s
    5142:  //rb/spec/integration/selenium/webdriver:error-firefox-bidi     �[0m�[32m(cached) PASSED�[0m in 14.9s
    5143:  //rb/spec/integration/selenium/webdriver:error-firefox-remote   �[0m�[32m(cached) PASSED�[0m in 23.7s
    ...
    
    5428:  //rb/spec/unit/selenium/webdriver/safari:service                �[0m�[32m(cached) PASSED�[0m in 14.6s
    5429:  //rb/spec/unit/selenium/webdriver/support:color                 �[0m�[32m(cached) PASSED�[0m in 12.9s
    5430:  //rb/spec/unit/selenium/webdriver/support:event_firing          �[0m�[32m(cached) PASSED�[0m in 18.9s
    5431:  //rb/spec/unit/selenium/webdriver/support:select                �[0m�[32m(cached) PASSED�[0m in 11.5s
    5432:  //rust:selenium-manager-fmt                                     �[0m�[32m(cached) PASSED�[0m in 0.2s
    5433:  //rust:selenium_manager-fmt                                     �[0m�[32m(cached) PASSED�[0m in 0.4s
    5434:  //rust:unit                                                     �[0m�[32m(cached) PASSED�[0m in 0.1s
    5435:  //rust:unit-fmt                                                 �[0m�[32m(cached) PASSED�[0m in 0.2s
    5436:  //java/test/org/openqa/selenium:ClickTest-firefox-beta                   �[0m�[31m�[1mFAILED�[0m in 2 out of 2 in 31.6s
    5437:  Stats over 2 runs: max = 31.6s, min = 12.7s, avg = 22.2s, dev = 9.4s
    5438:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test.log
    5439:  /home/runner/.bazel/execroot/_main/bazel-out/k8-fastbuild/testlogs/java/test/org/openqa/selenium/ClickTest-firefox-beta/test_attempts/attempt_1.log
    5440:  Executed 1 out of 2167 tests: 2166 tests pass and �[0m�[31m�[1m1 fails remotely�[0m.
    5441:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
    5442:  (11:04:40) �[32mINFO: �[0mStreaming build results to: https://gypsum.cluster.engflow.com/invocation/5c2d535d-0950-4749-85d6-5bdc5848fcb2
    5443:  �[0m
    5444:  ##[error]Process completed with exit code 3.
    

    ✨ CI feedback usage guide:

    The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
    The tool analyzes the failed checks and provides several feedbacks:

    • Failed stage
    • Failed test name
    • Failure summary
    • Relevant error logs

    In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:

    /checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"
    

    where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.

    Configuration options

    • enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
    • excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
    • enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
    • persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
    • final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.

    See more information about the checks tool in the docs.

    @VietND96 VietND96 merged commit 8a04527 into trunk Dec 24, 2024
    32 of 33 checks passed
    @VietND96 VietND96 deleted the distributor-handle-restarted-node branch December 24, 2024 22:43
    sandeepsuryaprasad pushed a commit to sandeepsuryaprasad/selenium that referenced this pull request Dec 27, 2024
    …HQ#14938)
    
    Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    1 participant