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

Release Grid 4.28.0 #2599

Merged
merged 2 commits into from
Jan 20, 2025
Merged

Release Grid 4.28.0 #2599

merged 2 commits into from
Jan 20, 2025

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Jan 20, 2025

User description

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

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

Description

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

Enhancement, Configuration changes


Description

  • Updated dependency versions in Base/Dockerfile for compatibility.

  • Incremented Selenium version to 4.28.0 in Makefile.

  • Added SBOM and provenance attestations to Docker build commands.

  • Improved build configurations for standalone browser images.


Changes walkthrough 📝

Relevant files
Configuration changes
Dockerfile
Updated dependency versions for compatibility                       

Base/Dockerfile

  • Updated OPENTELEMETRY_VERSION to 1.46.0.
  • Updated GRPC_VERSION to 1.69.0.
  • Updated NETTY_VERSION to 4.1.117.Final.
  • Updated POSTGRESQL_VERSION to 42.7.5.
  • Updated MVN_SELENIUM_VERSION to 4.28.0.
  • +5/-5     
    Enhancement
    Makefile
    Enhanced build configurations and version updates               

    Makefile

  • Incremented Selenium version to 4.28.0.
  • Added SBOM and provenance attestations to build commands.
  • Adjusted nightly version to 4.29.0-SNAPSHOT.
  • Enhanced build configurations for standalone browser images.
  • +17/-11 

    Need help?
  • Type /help how to ... in the comments thread for any question about Qodo Merge usage.
  • Check out the documentation for more information.
  • Signed-off-by: Viet Nguyen Duc <[email protected]>
    Copy link

    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

    Version Compatibility

    Multiple dependency version updates (OpenTelemetry, gRPC, Netty, PostgreSQL) should be validated for compatibility with Selenium 4.28.0 to ensure no breaking changes or regressions

    ARG OPENTELEMETRY_VERSION=1.46.0
    ARG GRPC_VERSION=1.69.0
    ARG NETTY_VERSION=4.1.117.Final
    ARG CS_VERSION=2.1.18
    ARG POSTGRESQL_VERSION=42.7.5

    Copy link

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    Add error handling for failures

    Add error handling for the case when the platform check fails in standalone browser
    targets. Currently, the error message is printed but the build might continue
    silently.

    Makefile [225-228]

     case "$(PLATFORMS)" in \
         *) \
            echo "Google Chrome doesn't support platform $(PLATFORMS)" ; \
    +       exit 1 ; \
           ;; \
     esac
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Adding explicit error handling with 'exit 1' is crucial for build reliability, preventing silent failures that could lead to incomplete or incorrect builds. This is particularly important in CI/CD pipelines.

    8
    General
    Standardize build configuration across targets

    Standardize the build arguments format across all standalone browser targets for
    consistency and maintainability.

    Makefile [209]

    -cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) $(FROM_IMAGE_ARGS) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .
    +cd ./Standalone && docker buildx build --platform $(PLATFORMS) $(BUILD_ARGS) --sbom=true --attest type=provenance,mode=max \
    +--build-arg NAMESPACE=$(NAME) --build-arg VERSION=$(TAG_VERSION) --build-arg BASE=node-firefox -t $(NAME)/standalone-firefox:$(TAG_VERSION) .
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: The suggestion improves consistency by aligning the build configuration with the dev/beta targets, adding important security features (SBOM and provenance attestations) that are present in other similar targets.

    7

    Copy link

    qodo-merge-pro bot commented Jan 20, 2025

    CI Feedback 🧐

    (Feedback updated until commit bd99970)

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

    Action: Test Selenium Grid on Docker / Test Docker Selenium (test_node_docker, false, true, false, ubuntu-24.04-arm, true, false)

    Failed stage: Set up containerd image store feature [❌]

    Failed test name: setup_dev_env

    Failure summary:

    The action failed during the setup of the development environment due to Docker service issues:

  • Docker service failed to start and restart with timeout errors
  • Multiple attempts to restart docker.service resulted in "Connection timed out" errors
  • The systemd service (org.freedesktop.systemd1) failed to activate with timeout errors
  • The command make setup_dev_env failed after 3 retry attempts with exit code 2
  • Root cause appears to be systemd service timeout issues preventing proper Docker initialization

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    159:  �[36;1mfi�[0m
    160:  �[36;1m�[0m
    161:  �[36;1m# Option: Remove large packages�[0m
    162:  �[36;1m# REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh�[0m
    163:  �[36;1m�[0m
    164:  �[36;1mif [[ false == 'true' ]]; then�[0m
    165:  �[36;1m  BEFORE=$(getAvailableSpace)�[0m
    166:  �[36;1m  �[0m
    167:  �[36;1m  sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."�[0m
    168:  �[36;1m  sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding..."�[0m
    169:  �[36;1m  sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding..."�[0m
    170:  �[36;1m  sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding..."�[0m
    171:  �[36;1m  sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding..."�[0m
    172:  �[36;1m  sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..."�[0m
    173:  �[36;1m  sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding..."�[0m
    174:  �[36;1m  sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding..."�[0m
    175:  �[36;1m  sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding..."�[0m
    176:  �[36;1m  sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."�[0m
    177:  �[36;1m  sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."�[0m
    ...
    
    418:  shfmt -l -w -d ${PWD}/*.sh ${PWD}/**/*.sh $PWD/**.sh $PWD/**/generate_** $PWD/**/wrap_* ; \
    419:  git diff --stat --exit-code ; \
    420:  EXIT_CODE=$? ; \
    421:  if [ $EXIT_CODE -ne 0 ]; then \
    422:  echo "Some shell scripts are not formatted. Please run 'make format_shell_scripts' to format and update them." ; \
    423:  exit $EXIT_CODE ; \
    424:  fi ; \
    425:  exit $EXIT_CODE
    426:  Error: Timeout was reached
    ...
    
    456:  (Reading database ... 90%
    457:  (Reading database ... 95%
    458:  (Reading database ... 100%
    459:  (Reading database ... 233178 files and directories currently installed.)
    460:  Preparing to unpack .../shfmt_3.8.0-1_arm64.deb ...
    461:  Unpacking shfmt (3.8.0-1) ...
    462:  Setting up shfmt (3.8.0-1) ...
    463:  Processing triggers for man-db (2.12.0-4build2) ...
    464:  Error: Timeout was reached
    ...
    
    466:  with:
    467:  timeout_minutes: 10
    468:  max_attempts: 3
    469:  command: make setup_dev_env
    470:  
    471:  retry_wait_seconds: 10
    472:  polling_interval_seconds: 1
    473:  warning_on_retry: true
    474:  continue_on_error: false
    475:  ##[endgroup]
    476:  ./tests/charts/make/chart_setup_env.sh ; \
    477:  make set_containerd_image_store
    478:  Set ENV variables
    479:  Installing Docker for AMD64 / ARM64
    480:  Error: Timeout was reached
    ...
    
    523:  Unpacking libcurl4t64:arm64 (8.5.0-2ubuntu10.6) over (8.5.0-2ubuntu10.5) ...
    524:  Preparing to unpack .../libcurl3t64-gnutls_8.5.0-2ubuntu10.6_arm64.deb ...
    525:  Unpacking libcurl3t64-gnutls:arm64 (8.5.0-2ubuntu10.6) over (8.5.0-2ubuntu10.5) ...
    526:  Setting up libcurl4t64:arm64 (8.5.0-2ubuntu10.6) ...
    527:  Setting up libcurl3t64-gnutls:arm64 (8.5.0-2ubuntu10.6) ...
    528:  Setting up curl (8.5.0-2ubuntu10.6) ...
    529:  Processing triggers for man-db (2.12.0-4build2) ...
    530:  Processing triggers for libc-bin (2.39-0ubuntu8.3) ...
    531:  Error: Timeout was reached
    532:  Error: Timeout was reached
    ...
    
    568:  (Reading database ... 100%
    569:  (Reading database ... 233183 files and directories currently installed.)
    570:  Preparing to unpack .../docker-ce-cli_5%3a27.5.0-1~ubuntu.24.04~noble_arm64.deb ...
    571:  Unpacking docker-ce-cli (5:27.5.0-1~ubuntu.24.04~noble) over (5:26.1.3-1~ubuntu.24.04~noble) ...
    572:  Preparing to unpack .../docker-ce_5%3a27.5.0-1~ubuntu.24.04~noble_arm64.deb ...
    573:  Unpacking docker-ce (5:27.5.0-1~ubuntu.24.04~noble) over (5:26.1.3-1~ubuntu.24.04~noble) ...
    574:  Setting up docker-ce-cli (5:27.5.0-1~ubuntu.24.04~noble) ...
    575:  Setting up docker-ce (5:27.5.0-1~ubuntu.24.04~noble) ...
    576:  Reload daemon failed: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
    577:  �[0;1;31mFailed to retrieve unit state: Connection timed out�[0m
    578:  invoke-rc.d: could not determine current runlevel
    579:  Failed to get properties: Connection timed out
    580:  Reload daemon failed: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
    581:  Failed to get unit file state for docker.service: Connection timed out
    582:  Failed to retrieve unit state: Connection timed out
    583:  docker.service is a disabled or a static unit not running, not starting it.
    584:  Failed to get unit file state for docker.socket: Connection timed out
    585:  Failed to retrieve unit state: Connection timed out
    586:  docker.socket is a disabled or a static unit not running, not starting it.
    587:  Processing triggers for man-db (2.12.0-4build2) ...
    588:  Error: Timeout was reached
    ...
    
    634:  Preparing to unpack .../docker-compose-plugin_2.32.4-1~ubuntu.24.04~noble_arm64.deb ...
    635:  Unpacking docker-compose-plugin (2.32.4-1~ubuntu.24.04~noble) ...
    636:  Selecting previously unselected package qemu-user-static.
    637:  Preparing to unpack .../qemu-user-static_1%3a8.2.2+ds-0ubuntu1.4_arm64.deb ...
    638:  Unpacking qemu-user-static (1:8.2.2+ds-0ubuntu1.4) ...
    639:  Setting up qemu-user-static (1:8.2.2+ds-0ubuntu1.4) ...
    640:  Setting up docker-buildx-plugin (0.19.3-1~ubuntu.24.04~noble) ...
    641:  Setting up containerd.io (1.7.25-1) ...
    642:  Reload daemon failed: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
    643:  Failed to get unit file state for containerd.service: Connection timed out
    644:  Failed to retrieve unit state: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
    645:  containerd.service is a disabled or a static unit not running, not starting it.
    646:  Setting up docker-compose-plugin (2.32.4-1~ubuntu.24.04~noble) ...
    647:  Processing triggers for man-db (2.12.0-4build2) ...
    648:  Processing triggers for systemd (255.4-1ubuntu8.4) ...
    649:  �[0;1;31mFailed to restart systemd-binfmt.service: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)�[0m
    650:  �[0;1;31mSee system logs and 'systemctl status systemd-binfmt.service' for details.�[0m
    651:  Error: Timeout was reached
    ...
    
    696:  24752f2a9b6d: Pull complete
    697:  1bb83505e71f: Pull complete
    698:  b9922d81f8dd: Pull complete
    699:  aa73ede2d57b: Verifying Checksum
    700:  aa73ede2d57b: Download complete
    701:  aa73ede2d57b: Pull complete
    702:  Digest: sha256:9511e9363ce42fd18b9448151b1e0f6323eed396c5279295080375e01cc1b626
    703:  Status: Downloaded newer image for aptman/qus:latest
    704:  docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply cgroup configuration: unable to start unit "docker-4a3628f77bda6b73f5eb38ef2f06b748c313ba7febd9aa7a97a495494b9cc681.scope" (properties [{Name:Description Value:"libcontainer container 4a3628f77bda6b73f5eb38ef2f06b748c313ba7febd9aa7a97a495494b9cc681"} {Name:Slice Value:"system.slice"} {Name:Delegate Value:true} {Name:PIDs Value:@au [7507]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms): unknown.
    705:  There is step failed with exit status 125
    706:  make[1]: Entering directory '/home/runner/work/docker-selenium/docker-selenium'
    707:  sudo mkdir -p /etc/docker
    708:  sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak || true
    709:  mv: cannot stat '/etc/docker/daemon.json': No such file or directory
    710:  echo "{\"features\":{\"containerd-snapshotter\": true, \"containerd\": true}, \"experimental\": true}" | sudo tee /etc/docker/daemon.json
    711:  {"features":{"containerd-snapshotter": true, "containerd": true}, "experimental": true}
    712:  sudo systemctl restart docker
    713:  Failed to restart docker.service: Connection timed out
    714:  See system logs and 'systemctl status docker.service' for details.
    715:  make[1]: *** [Makefile:67: set_containerd_image_store] Error 1
    716:  make[1]: Leaving directory '/home/runner/work/docker-selenium/docker-selenium'
    717:  make: *** [Makefile:60: setup_dev_env] Error 2
    718:  ##[warning]Attempt 1 failed. Reason: Child_process exited with error code 2
    719:  ./tests/charts/make/chart_setup_env.sh ; \
    720:  make set_containerd_image_store
    721:  Set ENV variables
    722:  Installing Docker for AMD64 / ARM64
    723:  Error: Timeout was reached
    724:  Reading package lists...
    725:  Building dependency tree...
    726:  Reading state information...
    727:  ca-certificates is already the newest version (20240203).
    728:  curl is already the newest version (8.5.0-2ubuntu10.6).
    729:  wget is already the newest version (1.21.4-1ubuntu4.1).
    730:  jq is already the newest version (1.7.1-3build1).
    731:  0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.
    732:  Error: Timeout was reached
    ...
    
    767:  GitCommit:        57f17b0a6295a39009d861b89e3b3b87b005ca27
    768:  runc:
    769:  Version:          1.2.4
    770:  GitCommit:        v1.2.4-0-g6c52b3f
    771:  docker-init:
    772:  Version:          0.19.0
    773:  GitCommit:        de40ad0
    774:  github.com/docker/buildx v0.19.3 48d6a39
    775:  docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply cgroup configuration: unable to start unit "docker-7b9671af7b9ca494b5074f0e0dd01e7ee268683350f2c7d8576ce302b7d2e80e.scope" (properties [{Name:Description Value:"libcontainer container 7b9671af7b9ca494b5074f0e0dd01e7ee268683350f2c7d8576ce302b7d2e80e"} {Name:Slice Value:"system.slice"} {Name:Delegate Value:true} {Name:PIDs Value:@au [8325]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms): unknown.
    776:  There is step failed with exit status 125
    777:  make[1]: Entering directory '/home/runner/work/docker-selenium/docker-selenium'
    778:  sudo mkdir -p /etc/docker
    779:  sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak || true
    780:  echo "{\"features\":{\"containerd-snapshotter\": true, \"containerd\": true}, \"experimental\": true}" | sudo tee /etc/docker/daemon.json
    781:  {"features":{"containerd-snapshotter": true, "containerd": true}, "experimental": true}
    782:  sudo systemctl restart docker
    783:  Failed to restart docker.service: Connection timed out
    784:  See system logs and 'systemctl status docker.service' for details.
    785:  make[1]: *** [Makefile:67: set_containerd_image_store] Error 1
    786:  make[1]: Leaving directory '/home/runner/work/docker-selenium/docker-selenium'
    787:  make: *** [Makefile:60: setup_dev_env] Error 2
    788:  ##[warning]Attempt 2 failed. Reason: Child_process exited with error code 2
    789:  ./tests/charts/make/chart_setup_env.sh ; \
    790:  make set_containerd_image_store
    791:  Set ENV variables
    792:  Installing Docker for AMD64 / ARM64
    793:  Error: Timeout was reached
    794:  Reading package lists...
    795:  Building dependency tree...
    796:  Reading state information...
    797:  ca-certificates is already the newest version (20240203).
    798:  curl is already the newest version (8.5.0-2ubuntu10.6).
    799:  wget is already the newest version (1.21.4-1ubuntu4.1).
    800:  jq is already the newest version (1.7.1-3build1).
    801:  0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.
    802:  Error: Timeout was reached
    ...
    
    837:  GitCommit:        57f17b0a6295a39009d861b89e3b3b87b005ca27
    838:  runc:
    839:  Version:          1.2.4
    840:  GitCommit:        v1.2.4-0-g6c52b3f
    841:  docker-init:
    842:  Version:          0.19.0
    843:  GitCommit:        de40ad0
    844:  github.com/docker/buildx v0.19.3 48d6a39
    845:  docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply cgroup configuration: unable to start unit "docker-18721cdf4591eda505583089dbe4cb1ae11f0ea2f447e4cb781ad3122b7a32a6.scope" (properties [{Name:Description Value:"libcontainer container 18721cdf4591eda505583089dbe4cb1ae11f0ea2f447e4cb781ad3122b7a32a6"} {Name:Slice Value:"system.slice"} {Name:Delegate Value:true} {Name:PIDs Value:@au [9136]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms): unknown.
    846:  There is step failed with exit status 125
    847:  make[1]: Entering directory '/home/runner/work/docker-selenium/docker-selenium'
    848:  sudo mkdir -p /etc/docker
    849:  sudo mv /etc/docker/daemon.json /etc/docker/daemon.json.bak || true
    850:  echo "{\"features\":{\"containerd-snapshotter\": true, \"containerd\": true}, \"experimental\": true}" | sudo tee /etc/docker/daemon.json
    851:  {"features":{"containerd-snapshotter": true, "containerd": true}, "experimental": true}
    852:  sudo systemctl restart docker
    853:  Failed to restart docker.service: Connection timed out
    854:  See system logs and 'systemctl status docker.service' for details.
    855:  make[1]: *** [Makefile:67: set_containerd_image_store] Error 1
    856:  make[1]: Leaving directory '/home/runner/work/docker-selenium/docker-selenium'
    857:  make: *** [Makefile:60: setup_dev_env] Error 2
    858:  ##[error]Final attempt failed. Child_process exited with error code 2
    

    @VietND96 VietND96 merged commit f4779d7 into trunk Jan 20, 2025
    27 checks passed
    @VietND96 VietND96 deleted the 4.28.0 branch January 20, 2025 23:15
    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