Skip to content

Docker: Grid endpoint /metrics for exporter or K8s ServiceMonitor#3135

Open
VietND96 wants to merge 1 commit into
trunkfrom
revamp-monitoring
Open

Docker: Grid endpoint /metrics for exporter or K8s ServiceMonitor#3135
VietND96 wants to merge 1 commit into
trunkfrom
revamp-monitoring

Conversation

@VietND96
Copy link
Copy Markdown
Member

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.

@qodo-code-review
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Implement built-in Prometheus exporter and comprehensive monitoring dashboards for Selenium Grid

✨ Enhancement 🧪 Tests 📝 Documentation

Grey Divider

Walkthroughs

Description
• **Implemented built-in Prometheus exporter for Selenium Grid** written in Go that collects 20+
  metrics covering grid health, node status, sessions, and queue depth
• **Migrated from standalone exporter deployment to built-in model** integrated directly into Hub
  and Router containers, eliminating separate exporter pods
• **Added comprehensive Grafana dashboards** (5 new dashboards) for monitoring grid overview,
  sessions, cross-browser testing, node health, and queue/capacity metrics
• **Updated Kubernetes/Helm integration** with ServiceMonitor and PodMonitor for Prometheus
  scraping, automatic dashboard provisioning via ConfigMaps, and metrics port exposure on Hub/Router
  services
• **Added Docker Compose monitoring stack** with pre-configured Prometheus and Grafana for local
  development and testing
• **Updated build system** with new targets for compiling the Go exporter and copying dashboards
  into Helm charts
• **Fixed Traefik ServersTransport condition** to properly check for Traefik ingress class
• **Updated test suite** to validate ServiceMonitor configuration, Grafana dashboard provisioning,
  and metrics port exposure
Diagram
flowchart LR
  A["Selenium Hub/Router"] -->|exposes metrics| B["Port 9615"]
  B -->|scraped by| C["Prometheus"]
  C -->|queries| D["Grafana Dashboards"]
  E["Go Exporter"] -->|built into| A
  F["GraphQL Client"] -->|queries Grid| A
  G["Collector"] -->|emits metrics| E
  D -->|displays| H["Grid Health<br/>Sessions<br/>Queue<br/>Nodes"]
Loading

Grey Divider

File Changes

1. Router/start-selenium-grid-router.sh ✨ Enhancement +2/-0

Start Prometheus exporter alongside router service

• Added command to start the Selenium Grid exporter as a background process before launching the
 Java router service
• Exporter runs on port 9615 and exposes metrics for Prometheus scraping

Router/start-selenium-grid-router.sh


2. Hub/start-selenium-grid-hub.sh ✨ Enhancement +2/-0

Start Prometheus exporter alongside hub service

• Added command to start the Selenium Grid exporter as a background process before launching the
 Java hub service
• Exporter runs on port 9615 and exposes metrics for Prometheus scraping

Hub/start-selenium-grid-hub.sh


3. tests/charts/templates/test.py 🧪 Tests +44/-9

Update monitoring tests for ServiceMonitor and dashboards

• Replaced test_monitoring_exporter_tolerations with test_monitoring_service_monitor to verify
 ServiceMonitor resource configuration
• Added test_monitoring_grafana_dashboards to validate Grafana dashboard ConfigMaps are created
 with correct labels
• Added test_monitoring_metrics_port to verify the tcp-metrics port (9615) is exposed on the
 router service

tests/charts/templates/test.py


View more (38)
4. .monitoring/exporter/collector.go ✨ Enhancement +393/-0

Prometheus collector implementation for Grid metrics

• Implements Prometheus collector for Selenium Grid metrics using GraphQL queries
• Tracks node status, sessions (active/completed), stereotypes, and queue metrics with lifecycle
 management
• Manages session records with start/stop timestamps and retention window for completed sessions
• Emits 20+ Prometheus metrics covering grid health, node status, session duration, and queue depth

.monitoring/exporter/collector.go


5. .monitoring/exporter/graphql.go ✨ Enhancement +215/-0

GraphQL client and data structures for Grid queries

• Defines GraphQL query to fetch grid summary, node info, and session data in a single request
• Implements HTTP client with basic auth support for querying the Grid endpoint
• Provides capability and stereotype parsing utilities for metric label extraction
• Handles Grid's date format parsing with timezone support for session start times

.monitoring/exporter/graphql.go


6. .monitoring/exporter/main.go ✨ Enhancement +75/-0

Exporter main entry point with configuration and HTTP server

• Entry point for the Selenium Grid Prometheus exporter with configurable flags
• Constructs GraphQL endpoint URL from environment variables (SE_SERVER_PROTOCOL, SE_ROUTER_PORT,
 SE_SUB_PATH)
• Registers collector with Prometheus registry and exposes metrics on configurable port (default
 9615)
• Supports basic auth, timezone configuration, and session retention window settings

.monitoring/exporter/main.go


7. .monitoring/dashboards/selenium-grid-overview.json ✨ Enhancement +986/-0

Grafana dashboard for Grid overview and health monitoring

• Grafana dashboard displaying high-level Grid health metrics (capacity, active sessions, queue
 depth, node count)
• Includes stat panels for total slots, active sessions, max sessions, and slot utilization gauge
• Time-series charts for sessions/capacity trends and queue depth over time
• Node quick status table and exporter health indicators (scrape success/duration)

.monitoring/dashboards/selenium-grid-overview.json


8. .monitoring/dashboards/selenium-sessions.json ✨ Enhancement +918/-0

Grafana dashboard for session monitoring and lifecycle tracking

• Grafana dashboard for detailed session analysis and lifecycle tracking
• Displays active sessions by browser/platform, session duration trends, and per-session details
 table
• Tracks completed sessions with start/stop timestamps and total duration calculations
• Shows session throughput (completions per second) and browser/platform breakdowns

.monitoring/dashboards/selenium-sessions.json


9. .monitoring/dashboards/selenium-cross-browser.json ✨ Enhancement +800/-0

Grafana dashboard for cross-browser testing metrics

• Grafana dashboard for cross-browser testing analysis and capacity planning
• Displays active sessions, queue depth, and slot utilization per browser type
• Includes browser version breakdown table and queue pressure metrics (queued/available slots ratio)
• Tracks longest running sessions per browser and average duration trends

.monitoring/dashboards/selenium-cross-browser.json


10. .monitoring/exporter/README.md 📝 Documentation +298/-0

Exporter documentation with metrics reference and usage examples

• Comprehensive documentation for the Selenium Grid Prometheus exporter including build and
 deployment instructions
• Detailed metrics reference covering exporter health, grid summary, node status, sessions, and
 queue metrics
• Deployment examples for Docker Compose and Kubernetes with Helm values
• Useful PromQL query examples for monitoring capacity, utilization, node status, and session
 lifecycle

.monitoring/exporter/README.md


11. charts/selenium-grid/CONFIGURATION.md ⚙️ Configuration changes +8/-25

Update Helm chart configuration for built-in exporter

• Removed old GraphQL exporter configuration (imageRegistry, imageName, imageTag, service, replicas,
 tolerations)
• Updated exporter port from 9199 to 9615 and changed to built-in exporter model
• Enabled ServiceMonitor and PodMonitor by default (changed from false to true)
• Added Grafana dashboards configuration and updated kube-prometheus-stack dependencies

charts/selenium-grid/CONFIGURATION.md


12. .monitoring/dashboards/selenium-node-health.json ✨ Enhancement +780/-0

Add Grafana dashboard for Selenium Grid node health monitoring

• New Grafana dashboard JSON file for monitoring per-node health metrics
• Displays node status (UP/DRAINING/DOWN), capacity, stereotype slot breakdown, and status duration
 trends
• Includes stat panels for node counts, table with detailed node information, and time-series charts
 for session activity
• Configured to query Prometheus metrics like selenium_grid_node_status,
 selenium_grid_node_session_count, and selenium_grid_node_stereotype_slots_total

.monitoring/dashboards/selenium-node-health.json


13. .monitoring/dashboards/selenium-queue-capacity.json ✨ Enhancement +778/-0

Add Grafana dashboard for queue and capacity monitoring

• New Grafana dashboard JSON file for queue and capacity monitoring
• Displays queue size, available slots, slot utilization percentage, and queue-to-available ratio
 metrics
• Includes gauge visualization for overall utilization and bar gauge for queue requests by
 browser/version
• Queries metrics like selenium_grid_session_queue_size, selenium_grid_total_slots, and
 selenium_grid_session_count

.monitoring/dashboards/selenium-queue-capacity.json


14. .monitoring/exporter/go.sum Dependencies +46/-0

Add Go module dependencies for Prometheus exporter

• New Go module dependencies file for the Prometheus exporter
• Contains checksums for 46 Go packages including Prometheus client library and dependencies
• Includes transitive dependencies for metrics collection and protocol buffer support

.monitoring/exporter/go.sum


15. Makefile ⚙️ Configuration changes +21/-10

Update build targets for exporter and dashboards

• Updated Selenium version from 4.44.0 to 4.43.0 and build date to 20260404
• Added new build_exporter target to compile the Go-based Prometheus exporter
• Added new copy_dashboards target to sync dashboard JSON files into Helm chart
• Updated hub and router build targets to include exporter source as build context
• Modified chart_build_nightly and chart_build targets to depend on copy_dashboards

Makefile


16. charts/selenium-grid/values.yaml ⚙️ Configuration changes +19/-39

Migrate from standalone to built-in Prometheus exporter

• Removed standalone exporter deployment configuration (image registry, name, tag, service,
 replicas)
• Changed exporter port from 9199 to 9615 (built-in exporter port)
• Removed additionalScrapeConfigs configuration
• Added grafana.dashboards.enabled: true configuration
• Enabled serviceMonitor.enabled: true and podMonitor.enabled: true by default
• Added Traefik service annotations for AWS load balancer connection timeout
• Updated kube-prometheus-stack configuration to disable node exporter, disable admission webhooks,
 and set Grafana admin credentials

charts/selenium-grid/values.yaml


17. .monitoring/dashboards/README.md 📝 Documentation +74/-0

Add documentation for Grafana dashboards

• New documentation file describing five pre-built Grafana dashboards for Selenium Grid monitoring
• Documents dashboard UIDs, purposes, and auto-refresh intervals
• Provides provisioning instructions for both Docker Compose and Kubernetes/Helm deployments
• Includes guidance on datasource requirements and dashboard update procedures

.monitoring/dashboards/README.md


18. docker-compose-v3-monitoring.yml ⚙️ Configuration changes +68/-0

Add Docker Compose monitoring stack configuration

• New Docker Compose file for monitoring stack with Selenium Grid
• Includes services for Chrome, Edge, Firefox nodes, Selenium Hub, Prometheus, and Grafana
• Configures Prometheus to scrape metrics from Hub on port 9615
• Mounts Grafana provisioning configs and dashboards from .monitoring directory
• Sets Grafana admin password to "admin" and disables user sign-up

docker-compose-v3-monitoring.yml


19. charts/selenium-grid/templates/monitoring-exporter-service.yaml ⚙️ Configuration changes +1/-39

Remove standalone exporter service template

• Removed entire standalone exporter service definition
• Replaced with comment indicating metrics are now exposed on Hub/Router service as tcp-metrics
 port

charts/selenium-grid/templates/monitoring-exporter-service.yaml


20. charts/selenium-grid/templates/monitoring-exporter-deployment.yaml ⚙️ Configuration changes +1/-39

Remove standalone exporter deployment template

• Removed entire standalone exporter deployment definition
• Replaced with comment indicating metrics are served by built-in exporter on port 9615 inside
 Hub/Router containers

charts/selenium-grid/templates/monitoring-exporter-deployment.yaml


21. charts/selenium-grid/templates/monitoring-pod-monitor.yaml ⚙️ Configuration changes +1/-33

Remove PodMonitor template

• Removed entire PodMonitor resource definition
• Replaced with comment indicating ServiceMonitor on Hub/Router service is sufficient to avoid
 metric duplication

charts/selenium-grid/templates/monitoring-pod-monitor.yaml


22. Hub/Dockerfile ✨ Enhancement +14/-0

Add built-in Prometheus exporter to Hub image

• Added multi-stage build with exporter-builder stage to compile Go-based Prometheus exporter
• Copies exporter source from build context and builds with CGO disabled
• Exposes port 9615 for metrics endpoint
• Copies compiled exporter binary to /opt/bin/selenium-grid-exporter in final image

Hub/Dockerfile


23. tests/charts/templates/render/dummy_solution.yaml ⚙️ Configuration changes +5/-21

Update test chart template for new monitoring approach

• Removed exporter tolerations configuration
• Removed additionalScrapeConfigs with GraphQL endpoint and complex query configuration
• Added serviceMonitor.enabled: true and grafana.dashboards.enabled: true configuration

tests/charts/templates/render/dummy_solution.yaml


24. tests/charts/templates/render/dummy.yaml ⚙️ Configuration changes +5/-21

Update test chart template for new monitoring approach

• Removed exporter tolerations configuration
• Removed additionalScrapeConfigs with GraphQL endpoint and complex query configuration
• Added serviceMonitor.enabled: true and grafana.dashboards.enabled: true configuration

tests/charts/templates/render/dummy.yaml


25. charts/selenium-grid/templates/monitoring-service-monitor.yaml ⚙️ Configuration changes +8/-2

Update ServiceMonitor to target Hub/Router metrics port

• Updated selector to target Hub or Router pods based on isolateComponents flag instead of
 exporter pods
• Added release label to ServiceMonitor metadata
• Changed port name from http-port to tcp-metrics
• Updated pod selector to use Hub/Router app labels and instance label

charts/selenium-grid/templates/monitoring-service-monitor.yaml


26. charts/selenium-grid/templates/monitoring-scape-secret.yaml ⚙️ Configuration changes +1/-24

Remove scrape config Secret template

• Removed entire scrape configuration Secret definition
• Replaced with comment indicating ServiceMonitor or PodMonitor should be used instead

charts/selenium-grid/templates/monitoring-scape-secret.yaml


27. Router/Dockerfile ✨ Enhancement +14/-0

Add built-in Prometheus exporter to Router image

• Added multi-stage build with exporter-builder stage to compile Go-based Prometheus exporter
• Copies exporter source from build context and builds with CGO disabled
• Exposes port 9615 for metrics endpoint
• Copies compiled exporter binary to /opt/bin/selenium-grid-exporter in final image

Router/Dockerfile


28. charts/selenium-grid/templates/router-deployment.yaml ✨ Enhancement +8/-0

Add metrics port to Router deployment

• Added ports section with Router port and conditional tcp-metrics port (9615) when monitoring is
 enabled
• Exposes metrics endpoint on the Router container

charts/selenium-grid/templates/router-deployment.yaml


29. .monitoring/exporter/go.mod Dependencies +19/-0

Add Go module definition for Prometheus exporter

• New Go module file for Prometheus exporter project
• Declares module name selenium-grid-exporter with Go version 1.26.3
• Specifies direct dependency on github.com/prometheus/client_golang v1.23.2
• Lists indirect dependencies for metrics collection and protocol buffer support

.monitoring/exporter/go.mod


30. charts/selenium-grid/templates/monitoring-grafana-dashboards.yaml ✨ Enhancement +18/-0

Add Grafana dashboard provisioning template

• New template file to provision Grafana dashboards as ConfigMaps
• Iterates over all JSON files in files/dashboards/ directory
• Creates ConfigMap per dashboard with grafana_dashboard: "1" label for sidecar discovery
• Includes dashboard content as ConfigMap data for Grafana provisioning

charts/selenium-grid/templates/monitoring-grafana-dashboards.yaml


31. charts/selenium-grid/templates/hub-deployment.yaml ✨ Enhancement +5/-0

Add metrics port to Hub deployment

• Added conditional tcp-metrics port (9615) to Hub container ports when monitoring is enabled
• Exposes metrics endpoint on the Hub container

charts/selenium-grid/templates/hub-deployment.yaml


32. charts/selenium-grid/templates/hub-service.yaml ✨ Enhancement +6/-0

Add metrics port to Hub service

• Added conditional tcp-metrics service port (9615) when monitoring is enabled
• Routes traffic to the metrics port on Hub pods

charts/selenium-grid/templates/hub-service.yaml


33. charts/selenium-grid/templates/router-service.yaml ✨ Enhancement +6/-0

Add metrics port to Router service

• Added conditional tcp-metrics service port (9615) when monitoring is enabled
• Routes traffic to the metrics port on Router pods

charts/selenium-grid/templates/router-service.yaml


34. Hub/selenium-grid-hub.conf ⚙️ Configuration changes +14/-0

Add exporter process to Hub supervisord configuration

• Added new supervisord program section for selenium-grid-exporter
• Configures exporter to start automatically with priority 10
• Sets up auto-restart, signal handling, and logging to stdout

Hub/selenium-grid-hub.conf


35. Router/selenium-grid-router.conf ⚙️ Configuration changes +14/-0

Add exporter process to Router supervisord configuration

• Added new supervisord program section for selenium-grid-exporter
• Configures exporter to start automatically with priority 10
• Sets up auto-restart, signal handling, and logging to stdout

Router/selenium-grid-router.conf


36. charts/selenium-grid/templates/traefik-servers-transport.yaml 🐞 Bug fix +1/-1

Fix Traefik ServersTransport condition check

• Updated condition to check for ingress.className == "traefik" in addition to existing checks
• Ensures ServersTransport is only created when Traefik is explicitly configured as ingress class

charts/selenium-grid/templates/traefik-servers-transport.yaml


37. .monitoring/config/prometheus.yml ⚙️ Configuration changes +14/-0

Add Prometheus configuration for Grid metrics

• New Prometheus configuration file for scraping Selenium Grid metrics
• Configures global scrape interval of 15 seconds
• Defines job selenium_grid targeting Hub and Router on port 9615
• Includes commented example for Basic Auth configuration

.monitoring/config/prometheus.yml


38. .monitoring/README.md 📝 Documentation +8/-0

Add monitoring directory documentation

• New root documentation file for monitoring directory
• Describes purpose of monitoring stack and links to exporter and dashboards documentation
• Provides table of contents for subdirectories

.monitoring/README.md


39. .monitoring/config/grafana/provisioning/datasources/prometheus.yml ⚙️ Configuration changes +11/-0

Add Grafana Prometheus datasource provisioning

• New Grafana datasource provisioning file for Prometheus
• Configures Prometheus datasource with UID selenium-prometheus and URL http://prometheus:9090
• Sets as default datasource with 15-second time interval

.monitoring/config/grafana/provisioning/datasources/prometheus.yml


40. .monitoring/config/grafana/provisioning/dashboards/selenium.yml ⚙️ Configuration changes +9/-0

Add Grafana dashboard provisioning configuration

• New Grafana dashboard provisioning configuration file
• Configures file-based dashboard provider for Selenium Grid folder
• Sets update interval to 30 seconds and disables folder structure from file paths

.monitoring/config/grafana/provisioning/dashboards/selenium.yml


41. charts/selenium-grid/configs/scrape/selenium-grid.yaml Additional files +0/-15

...

charts/selenium-grid/configs/scrape/selenium-grid.yaml


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented May 15, 2026

Code Review by Qodo

🐞 Bugs (6) 📘 Rule violations (1)

Grey Divider


Action required

1. Prometheus/Grafana images use latest 📘 Rule violation ⛨ Security
Description
docker-compose-v3-monitoring.yml pins Prometheus and Grafana to :latest, which is an implicit
floating version and can change over time. This reduces build/deployment reproducibility and
increases supply-chain risk.
Code

docker-compose-v3-monitoring.yml[R39-54]

+  prometheus:
+    image: prom/prometheus:latest
+    container_name: prometheus
+    ports:
+      - "9090:9090"
+    volumes:
+      - ./.monitoring/config/prometheus.yml:/etc/prometheus/prometheus.yml:ro
+    command:
+      - --config.file=/etc/prometheus/prometheus.yml
+      - --storage.tsdb.retention.time=7d
+    depends_on:
+      - selenium-hub
+
+  grafana:
+    image: grafana/grafana:latest
+    container_name: grafana
Evidence
PR Compliance ID 2 forbids implicit latest artifact usage. The added docker-compose file
explicitly uses prom/prometheus:latest and grafana/grafana:latest, which are unpinned and can
change without notice.

docker-compose-v3-monitoring.yml[39-54]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`docker-compose-v3-monitoring.yml` uses `prom/prometheus:latest` and `grafana/grafana:latest`, which violates the requirement to avoid implicit `latest` artifacts.

## Issue Context
The compliance checklist requires pinned versions (and ideally integrity verification). For container images, pinning to a specific version tag and/or digest improves reproducibility and reduces supply-chain risk.

## Fix Focus Areas
- docker-compose-v3-monitoring.yml[39-54]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Exporter started twice 🐞 Bug ☼ Reliability
Description
Hub/Router start scripts background-launch /opt/bin/selenium-grid-exporter while supervisord also
autostarts the same binary. This will cause a deterministic port 9615 bind conflict and unstable
exporter behavior (one instance immediately fails), breaking /metrics availability.
Code

Hub/start-selenium-grid-hub.sh[R204-205]

+/opt/bin/selenium-grid-exporter &
+
Evidence
The Hub/Router start scripts launch the exporter in the background, and the supervisord configs also
define an autostarting exporter program, meaning two processes will attempt to bind the same listen
address/port.

Hub/start-selenium-grid-hub.sh[202-207]
Hub/selenium-grid-hub.conf[18-25]
Router/start-selenium-grid-router.sh[195-201]
Router/selenium-grid-router.conf[18-25]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The exporter is launched twice (in the start script and as a supervisord program), which will race to bind port 9615 and cause one process to fail.

## Issue Context
The Hub/Router images run `start-selenium-grid-*.sh` under supervisord, and the PR also adds a dedicated supervisord program for the exporter.

## Fix Focus Areas
- Hub/start-selenium-grid-hub.sh[202-206]
- Router/start-selenium-grid-router.sh[195-199]
- Hub/selenium-grid-hub.conf[18-26]
- Router/selenium-grid-router.conf[18-26]

## How to fix
Remove the background `selenium-grid-exporter &` lines from both start scripts and rely on supervisord to manage the exporter (recommended), or alternatively remove the supervisord exporter program blocks and keep the start-script launch (but then handle restarts/logging explicitly).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Pinned build date/version 🐞 Bug ⚙ Maintainability
Description
Makefile replaces a dynamic BUILD_DATE default with a hard-coded value and changes default Selenium
versions from 4.44.0 to 4.43.0. This will unexpectedly alter image tags and build outputs for anyone
using the default Makefile targets.
Code

Makefile[R3-9]

+BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),20260404)
+BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.43.0)
+BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.43.0)
+BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.43.0)
BASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.45.0-SNAPSHOT)
-VERSION := $(or $(VERSION),$(VERSION),4.44.0)
+VERSION := $(or $(VERSION),$(VERSION),4.43.0)
Evidence
The Makefile now uses a fixed BUILD_DATE and sets BASE_RELEASE/BASE_VERSION/BINDING_VERSION/VERSION
to 4.43.0, which changes default build artifacts.

Makefile[1-12]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The Makefile hardcodes BUILD_DATE and downgrades the default Selenium version variables, which changes image tags and build behavior globally.

## Issue Context
This PR is about monitoring/exporter changes; these Makefile changes affect all image builds and releases.

## Fix Focus Areas
- Makefile[1-12]

## How to fix
Revert BUILD_DATE to default to `$(CURRENT_DATE)` (or another computed value), and restore the prior default BASE_RELEASE/BASE_VERSION/BINDING_VERSION/VERSION unless this PR explicitly intends to pin/downgrade. If pinning is intended, add documentation/comments and keep the previous defaults behind overrides.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

4. Missing router scrape target 🐞 Bug ≡ Correctness
Description
.monitoring/config/prometheus.yml scrapes selenium-router:9615 but docker-compose-v3-monitoring.yml
does not define a selenium-router service. This leaves a permanently failing Prometheus target in
the provided monitoring compose setup.
Code

.monitoring/config/prometheus.yml[R6-10]

+  - job_name: selenium_grid
+    static_configs:
+      - targets:
+          - "selenium-hub:9615"
+          - "selenium-router:9615"
Evidence
The Prometheus config explicitly lists selenium-router:9615, but the compose file defines
selenium-hub and no selenium-router service, so the DNS name will not resolve on the compose
network.

.monitoring/config/prometheus.yml[5-10]
docker-compose-v3-monitoring.yml[4-38]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Prometheus is configured to scrape a router target that is not present in the provided Docker Compose stack.

## Issue Context
The docker-compose-v3-monitoring.yml file defines only `selenium-hub` as the grid entrypoint.

## Fix Focus Areas
- .monitoring/config/prometheus.yml[5-10]
- docker-compose-v3-monitoring.yml[4-51]

## How to fix
Either:
1) Remove `selenium-router:9615` from `.monitoring/config/prometheus.yml`, or
2) Add a `selenium-router` service to `docker-compose-v3-monitoring.yml` (and ensure it exposes/hosts the exporter),
so the default monitoring example has no dead scrape targets.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. Hardcoded Grafana credentials 🐞 Bug ⛨ Security
Description
charts/selenium-grid/values.yaml sets kube-prometheus-stack.grafana adminUser/adminPassword to
"admin"/"admin". If users enable the bundled kube-prometheus-stack without overriding values, they
will deploy Grafana with well-known default credentials.
Code

charts/selenium-grid/values.yaml[R2325-2327]

+  grafana:
+    adminUser: "admin"
+    adminPassword: "admin"
Evidence
The default values explicitly configure Grafana admin credentials as admin/admin under
kube-prometheus-stack.

charts/selenium-grid/values.yaml[2312-2327]
charts/selenium-grid/CONFIGURATION.md[783-789]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The chart sets predictable Grafana admin credentials in default values.

## Issue Context
These values apply when the dependency `kube-prometheus-stack` is enabled through this chart.

## Fix Focus Areas
- charts/selenium-grid/values.yaml[2312-2327]
- charts/selenium-grid/CONFIGURATION.md[783-789]

## How to fix
Remove these defaults (let the dependency chart defaults apply), or set them to empty and document that users must provide secure values when enabling Grafana. If you need dev defaults, gate them behind an explicit `monitoring.devMode`-style flag and clearly warn in docs.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


6. Undefined exporter-src stage 🐞 Bug ☼ Reliability
Description
Hub/Router Dockerfiles use COPY --from=exporter-src but do not define a stage named exporter-src,
so plain docker build will fail unless BuildKit --build-context exporter-src=... is used. This
creates an easy-to-hit build failure path outside the Makefile/buildx workflow.
Code

Hub/Dockerfile[R6-9]

+FROM golang:1.26-alpine AS exporter-builder
+WORKDIR /src
+COPY --from=exporter-src . .
+RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /selenium-grid-exporter .
Evidence
The Dockerfile references an undefined exporter-src stage, and the Makefile shows this is only
satisfied when using buildx with a named build context.

Hub/Dockerfile[6-10]
Router/Dockerfile[6-10]
Makefile[171-182]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The Dockerfiles depend on an external build context/stage name (`exporter-src`) that is not defined in the Dockerfile.

## Issue Context
The Makefile uses `docker buildx build --build-context exporter-src=../.monitoring/exporter`, but users (or CI) invoking `docker build` directly in Hub/Router directories will get an error like "invalid from flag value exporter-src".

## Fix Focus Areas
- Hub/Dockerfile[3-10]
- Router/Dockerfile[3-10]
- Makefile[171-182]

## How to fix
Either:
- Add a clearly documented build requirement (and ideally a build-time check) that Hub/Router images must be built via buildx with the `exporter-src` build context, or
- Rework the Docker build so the exporter sources are available via the normal build context (e.g., build from repo root, or vendor/copy exporter sources into Hub/Router contexts as part of the build pipeline).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (1)
7. HTTP server lacks timeouts 🐞 Bug ☼ Reliability
Description
The exporter starts its metrics HTTP server with http.ListenAndServe, which applies no
ReadHeaderTimeout/IdleTimeout by default. A small number of slow connections can tie up resources
and degrade exporter availability.
Code

.monitoring/exporter/main.go[R71-73]

+	log.Printf("selenium-grid-exporter listening on %s (grid: %s, tz: %s)", *listenAddr, *gridURL, loc)
+	if err := http.ListenAndServe(*listenAddr, mux); err != nil {
+		log.Fatalf("listen: %v", err)
Evidence
The exporter uses http.ListenAndServe without constructing an http.Server, so no explicit
timeouts are configured for incoming HTTP connections.

.monitoring/exporter/main.go[61-74]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The exporter uses `http.ListenAndServe` directly, which does not configure defensive server timeouts.

## Issue Context
This exporter is intended to be scraped continuously; hardening it against slow clients reduces the chance of metrics loss.

## Fix Focus Areas
- .monitoring/exporter/main.go[61-74]

## How to fix
Replace `http.ListenAndServe` with an `http.Server{Addr, Handler, ReadHeaderTimeout, IdleTimeout, ReadTimeout, WriteTimeout}` and call `server.ListenAndServe()`. Pick conservative defaults (e.g., ReadHeaderTimeout 5s, IdleTimeout 30s) appropriate for Prometheus scrapes.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented May 15, 2026

CI Feedback 🧐

(Feedback updated until commit 66a7d33)

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

Action: Test Selenium Grid on Kubernetes / Test K8s (v1.33.6, minikube, v3.18.6, 28.5.2, 3.10, true, true, ubuntu-22.04, false, job_relay)

Failed stage: Build Helm charts [❌]

Failed test name: ""

Failure summary:

The action failed during make setup_dev_env, specifically the copy_dashboards target:
- The command
cp -r .monitoring/dashboards/*.json charts/selenium-grid/files/dashboards/ failed with cp: target
'charts/selenium-grid/files/dashboards/' is not a directory, meaning the destination path did not
exist as a directory (or was a file) at runtime.
- This caused make to abort with make: ***
[Makefile:150: copy_dashboards] Error 1, and the job exited with code 2 (##[error]Process completed
with exit code 2.).
- A subsequent step actions/upload-artifact@main then failed with Input required
and not supplied: path, likely because the expected artifact path was not created due to the earlier
make failure.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

170:  �[36;1m�[0m
171:  �[36;1m  sudo rm -rf /opt/ghc || true�[0m
172:  �[36;1m  sudo rm -rf /usr/local/.ghcup || true�[0m
173:  �[36;1m  �[0m
174:  �[36;1m  AFTER=$(getAvailableSpace)�[0m
175:  �[36;1m  SAVED=$((AFTER-BEFORE))�[0m
176:  �[36;1m  printSavedSpace $SAVED "Haskell runtime"�[0m
177:  �[36;1mfi�[0m
178:  �[36;1m�[0m
179:  �[36;1m# Option: Remove large packages�[0m
180:  �[36;1m# REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh�[0m
181:  �[36;1m�[0m
182:  �[36;1mif [[ false == 'true' ]]; then�[0m
183:  �[36;1m  BEFORE=$(getAvailableSpace)�[0m
184:  �[36;1m  �[0m
185:  �[36;1m  sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."�[0m
186:  �[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
187:  �[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
188:  �[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
189:  �[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
190:  �[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
191:  �[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
192:  �[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
193:  �[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
194:  �[36;1m  sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."�[0m
195:  �[36;1m  sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."�[0m
196:  �[36;1m�[0m
...

475:  git switch -
476:  Turn off this advice by setting config variable advice.detachedHead to false
477:  HEAD is now at 2ed6983 Merge 66a7d339f324fce6aeb9c48c2826dd5472e2795b into 6a51dc1a0cb5bd6be6df5f984db847560b4f7829
478:  ##[endgroup]
479:  [command]/usr/bin/git log -1 --format=%H
480:  2ed69836b8dc12a2363608c39610e996d51305bc
481:  ##[group]Run nick-invision/retry@master
482:  with:
483:  timeout_minutes: 10
484:  max_attempts: 3
485:  command: make setup_dev_env
486:  
487:  retry_wait_seconds: 10
488:  polling_interval_seconds: 1
489:  warning_on_retry: true
490:  continue_on_error: false
491:  env:
...

504:  ##[endgroup]
505:  ##[group]Attempt 1
506:  ./tests/charts/make/chart_setup_env.sh ; \
507:  exit_code=$? ; \
508:  make set_containerd_image_store ; \
509:  exit $exit_code ;
510:  + echo 'Set ENV variables'
511:  Set ENV variables
512:  + CLUSTER=minikube
513:  + DOCKER_VERSION=28.5.2
514:  + DOCKER_ENABLE_QEMU=true
515:  + HELM_VERSION=v3.18.6
516:  + KUBERNETES_VERSION=v1.33.6
517:  + INSTALL_DOCKER=true
518:  + [[ true != \t\r\u\e ]]
519:  + trap on_failure ERR
520:  + echo 'Installing Docker for AMD64 / ARM64'
...

1474:  go/src/cmd/asm/internal/arch/ppc64.go
1475:  go/src/cmd/asm/internal/arch/riscv64.go
1476:  go/src/cmd/asm/internal/arch/s390x.go
1477:  go/src/cmd/asm/internal/asm/
1478:  go/src/cmd/asm/internal/asm/asm.go
1479:  go/src/cmd/asm/internal/asm/endtoend_test.go
1480:  go/src/cmd/asm/internal/asm/expr_test.go
1481:  go/src/cmd/asm/internal/asm/line_test.go
1482:  go/src/cmd/asm/internal/asm/operand_test.go
1483:  go/src/cmd/asm/internal/asm/parse.go
1484:  go/src/cmd/asm/internal/asm/pseudo_test.go
1485:  go/src/cmd/asm/internal/asm/testdata/
1486:  go/src/cmd/asm/internal/asm/testdata/386.s
1487:  go/src/cmd/asm/internal/asm/testdata/386enc.s
1488:  go/src/cmd/asm/internal/asm/testdata/amd64.s
1489:  go/src/cmd/asm/internal/asm/testdata/amd64dynlinkerror.s
1490:  go/src/cmd/asm/internal/asm/testdata/amd64enc.s
1491:  go/src/cmd/asm/internal/asm/testdata/amd64enc_extra.s
1492:  go/src/cmd/asm/internal/asm/testdata/amd64error.s
1493:  go/src/cmd/asm/internal/asm/testdata/arm.s
1494:  go/src/cmd/asm/internal/asm/testdata/arm64.s
1495:  go/src/cmd/asm/internal/asm/testdata/arm64enc.s
1496:  go/src/cmd/asm/internal/asm/testdata/arm64error.s
1497:  go/src/cmd/asm/internal/asm/testdata/armerror.s
1498:  go/src/cmd/asm/internal/asm/testdata/armv6.s
...

1502:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_4vnniw.s
1503:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_bitalg.s
1504:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_ifma.s
1505:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_vbmi.s
1506:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_vbmi2.s
1507:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_vnni.s
1508:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512_vpopcntdq.s
1509:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512bw.s
1510:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512cd.s
1511:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512dq.s
1512:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512er.s
1513:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512f.s
1514:  go/src/cmd/asm/internal/asm/testdata/avx512enc/avx512pf.s
1515:  go/src/cmd/asm/internal/asm/testdata/avx512enc/gfni_avx512f.s
1516:  go/src/cmd/asm/internal/asm/testdata/avx512enc/vpclmulqdq_avx512f.s
1517:  go/src/cmd/asm/internal/asm/testdata/buildtagerror.s
1518:  go/src/cmd/asm/internal/asm/testdata/duperror.s
1519:  go/src/cmd/asm/internal/asm/testdata/loong64.s
1520:  go/src/cmd/asm/internal/asm/testdata/loong64enc1.s
1521:  go/src/cmd/asm/internal/asm/testdata/loong64enc2.s
1522:  go/src/cmd/asm/internal/asm/testdata/loong64enc3.s
1523:  go/src/cmd/asm/internal/asm/testdata/mips.s
1524:  go/src/cmd/asm/internal/asm/testdata/mips64.s
1525:  go/src/cmd/asm/internal/asm/testdata/ppc64.s
1526:  go/src/cmd/asm/internal/asm/testdata/ppc64_p10.s
1527:  go/src/cmd/asm/internal/asm/testdata/riscv64.s
1528:  go/src/cmd/asm/internal/asm/testdata/riscv64error.s
1529:  go/src/cmd/asm/internal/asm/testdata/s390x.s
...

1773:  go/src/cmd/cgo/internal/testcshared/testdata/libgo2/dup2.go
1774:  go/src/cmd/cgo/internal/testcshared/testdata/libgo2/dup3.go
1775:  go/src/cmd/cgo/internal/testcshared/testdata/libgo2/libgo2.go
1776:  go/src/cmd/cgo/internal/testcshared/testdata/libgo4/
1777:  go/src/cmd/cgo/internal/testcshared/testdata/libgo4/libgo4.go
1778:  go/src/cmd/cgo/internal/testcshared/testdata/libgo5/
1779:  go/src/cmd/cgo/internal/testcshared/testdata/libgo5/libgo5.go
1780:  go/src/cmd/cgo/internal/testcshared/testdata/main0.c
1781:  go/src/cmd/cgo/internal/testcshared/testdata/main1.c
1782:  go/src/cmd/cgo/internal/testcshared/testdata/main2.c
1783:  go/src/cmd/cgo/internal/testcshared/testdata/main3.c
1784:  go/src/cmd/cgo/internal/testcshared/testdata/main4.c
1785:  go/src/cmd/cgo/internal/testcshared/testdata/main5.c
1786:  go/src/cmd/cgo/internal/testcshared/testdata/p/
1787:  go/src/cmd/cgo/internal/testcshared/testdata/p/p.go
1788:  go/src/cmd/cgo/internal/testerrors/
1789:  go/src/cmd/cgo/internal/testerrors/argposition_test.go
1790:  go/src/cmd/cgo/internal/testerrors/badsym_test.go
1791:  go/src/cmd/cgo/internal/testerrors/errors_test.go
1792:  go/src/cmd/cgo/internal/testerrors/ptr_test.go
1793:  go/src/cmd/cgo/internal/testerrors/testdata/
1794:  go/src/cmd/cgo/internal/testerrors/testdata/err1.go
1795:  go/src/cmd/cgo/internal/testerrors/testdata/err2.go
1796:  go/src/cmd/cgo/internal/testerrors/testdata/err4.go
1797:  go/src/cmd/cgo/internal/testerrors/testdata/err5.go
1798:  go/src/cmd/cgo/internal/testerrors/testdata/issue11097a.go
1799:  go/src/cmd/cgo/internal/testerrors/testdata/issue11097b.go
1800:  go/src/cmd/cgo/internal/testerrors/testdata/issue14669.go
1801:  go/src/cmd/cgo/internal/testerrors/testdata/issue18452.go
1802:  go/src/cmd/cgo/internal/testerrors/testdata/issue18889.go
1803:  go/src/cmd/cgo/internal/testerrors/testdata/issue28069.go
1804:  go/src/cmd/cgo/internal/testerrors/testdata/issue28721.go
1805:  go/src/cmd/cgo/internal/testerrors/testdata/issue33061.go
1806:  go/src/cmd/cgo/internal/testerrors/testdata/issue42580.go
1807:  go/src/cmd/cgo/internal/testerrors/testdata/issue50710.go
1808:  go/src/cmd/cgo/internal/testerrors/testdata/issue67517.go
1809:  go/src/cmd/cgo/internal/testerrors/testdata/issue67699a.go
1810:  go/src/cmd/cgo/internal/testerrors/testdata/issue67699b.go
1811:  go/src/cmd/cgo/internal/testerrors/testdata/issue67707.go
1812:  go/src/cmd/cgo/internal/testerrors/testdata/issue69176.go
1813:  go/src/cmd/cgo/internal/testerrors/testdata/long_double_size.go
1814:  go/src/cmd/cgo/internal/testerrors/testdata/malloc.go
1815:  go/src/cmd/cgo/internal/testerrors/testdata/notmatchedcfunction.go
1816:  go/src/cmd/cgo/internal/testfortran/
...

1942:  go/src/cmd/cgo/internal/testplugin/testdata/sub/
1943:  go/src/cmd/cgo/internal/testplugin/testdata/sub/plugin1/
1944:  go/src/cmd/cgo/internal/testplugin/testdata/sub/plugin1/plugin1.go
1945:  go/src/cmd/cgo/internal/testplugin/testdata/unnamed1/
1946:  go/src/cmd/cgo/internal/testplugin/testdata/unnamed1/main.go
1947:  go/src/cmd/cgo/internal/testplugin/testdata/unnamed2/
1948:  go/src/cmd/cgo/internal/testplugin/testdata/unnamed2/main.go
1949:  go/src/cmd/cgo/internal/testsanitizers/
1950:  go/src/cmd/cgo/internal/testsanitizers/asan_test.go
1951:  go/src/cmd/cgo/internal/testsanitizers/cc_test.go
1952:  go/src/cmd/cgo/internal/testsanitizers/cshared_test.go
1953:  go/src/cmd/cgo/internal/testsanitizers/empty_test.go
1954:  go/src/cmd/cgo/internal/testsanitizers/libfuzzer_test.go
1955:  go/src/cmd/cgo/internal/testsanitizers/msan_test.go
1956:  go/src/cmd/cgo/internal/testsanitizers/testdata/
1957:  go/src/cmd/cgo/internal/testsanitizers/testdata/arena_fail.go
1958:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan1_fail.go
1959:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan2_fail.go
1960:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan3_fail.go
1961:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan4_fail.go
1962:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan5_fail.go
1963:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_fuzz_test.go
1964:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_global1_fail.go
1965:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_global2_fail.go
1966:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_global3_fail.go
1967:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_global4_fail.go
1968:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_global5.go
1969:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_linkerx/
1970:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_linkerx/main.go
1971:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_linkerx/p/
1972:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_linkerx/p/p.go
1973:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_unsafe_fail1.go
1974:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_unsafe_fail2.go
1975:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_unsafe_fail3.go
1976:  go/src/cmd/cgo/internal/testsanitizers/testdata/asan_useAfterReturn.go
1977:  go/src/cmd/cgo/internal/testsanitizers/testdata/libfuzzer1.go
1978:  go/src/cmd/cgo/internal/testsanitizers/testdata/libfuzzer2.c
1979:  go/src/cmd/cgo/internal/testsanitizers/testdata/libfuzzer2.go
1980:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan.go
1981:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan2.go
1982:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan2_cmsan.go
1983:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan3.go
1984:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan4.go
1985:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan5.go
1986:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan6.go
1987:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan7.go
1988:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan8.go
1989:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan_fail.go
1990:  go/src/cmd/cgo/internal/testsanitizers/testdata/msan_shared.go
...

2571:  go/src/cmd/compile/internal/ssagen/intrinsics.go
2572:  go/src/cmd/compile/internal/ssagen/intrinsics_test.go
2573:  go/src/cmd/compile/internal/ssagen/nowb.go
2574:  go/src/cmd/compile/internal/ssagen/pgen.go
2575:  go/src/cmd/compile/internal/ssagen/phi.go
2576:  go/src/cmd/compile/internal/ssagen/ssa.go
2577:  go/src/cmd/compile/internal/staticdata/
2578:  go/src/cmd/compile/internal/staticdata/data.go
2579:  go/src/cmd/compile/internal/staticdata/embed.go
2580:  go/src/cmd/compile/internal/staticinit/
2581:  go/src/cmd/compile/internal/staticinit/sched.go
2582:  go/src/cmd/compile/internal/syntax/
2583:  go/src/cmd/compile/internal/syntax/branches.go
2584:  go/src/cmd/compile/internal/syntax/dumper.go
2585:  go/src/cmd/compile/internal/syntax/dumper_test.go
2586:  go/src/cmd/compile/internal/syntax/error_test.go
2587:  go/src/cmd/compile/internal/syntax/issues_test.go
...

2785:  go/src/cmd/compile/internal/types2/assignments.go
2786:  go/src/cmd/compile/internal/types2/basic.go
2787:  go/src/cmd/compile/internal/types2/builtins.go
2788:  go/src/cmd/compile/internal/types2/builtins_test.go
2789:  go/src/cmd/compile/internal/types2/call.go
2790:  go/src/cmd/compile/internal/types2/chan.go
2791:  go/src/cmd/compile/internal/types2/check.go
2792:  go/src/cmd/compile/internal/types2/check_test.go
2793:  go/src/cmd/compile/internal/types2/compiler_internal.go
2794:  go/src/cmd/compile/internal/types2/compilersupport.go
2795:  go/src/cmd/compile/internal/types2/const.go
2796:  go/src/cmd/compile/internal/types2/context.go
2797:  go/src/cmd/compile/internal/types2/context_test.go
2798:  go/src/cmd/compile/internal/types2/conversions.go
2799:  go/src/cmd/compile/internal/types2/decl.go
2800:  go/src/cmd/compile/internal/types2/errorcalls_test.go
2801:  go/src/cmd/compile/internal/types2/errors.go
2802:  go/src/cmd/compile/internal/types2/errors_test.go
2803:  go/src/cmd/compile/internal/types2/errsupport.go
...

3030:  go/src/cmd/go/init_test.go
3031:  go/src/cmd/go/internal/
3032:  go/src/cmd/go/internal/auth/
3033:  go/src/cmd/go/internal/auth/auth.go
3034:  go/src/cmd/go/internal/auth/auth_test.go
3035:  go/src/cmd/go/internal/auth/gitauth.go
3036:  go/src/cmd/go/internal/auth/gitauth_test.go
3037:  go/src/cmd/go/internal/auth/httputils.go
3038:  go/src/cmd/go/internal/auth/netrc.go
3039:  go/src/cmd/go/internal/auth/netrc_test.go
3040:  go/src/cmd/go/internal/auth/userauth.go
3041:  go/src/cmd/go/internal/auth/userauth_test.go
3042:  go/src/cmd/go/internal/base/
3043:  go/src/cmd/go/internal/base/base.go
3044:  go/src/cmd/go/internal/base/env.go
3045:  go/src/cmd/go/internal/base/error_notunix.go
3046:  go/src/cmd/go/internal/base/error_unix.go
3047:  go/src/cmd/go/internal/base/flag.go
...

3241:  go/src/cmd/go/internal/modload/import_test.go
3242:  go/src/cmd/go/internal/modload/init.go
3243:  go/src/cmd/go/internal/modload/list.go
3244:  go/src/cmd/go/internal/modload/load.go
3245:  go/src/cmd/go/internal/modload/modfile.go
3246:  go/src/cmd/go/internal/modload/mvs.go
3247:  go/src/cmd/go/internal/modload/mvs_test.go
3248:  go/src/cmd/go/internal/modload/query.go
3249:  go/src/cmd/go/internal/modload/query_test.go
3250:  go/src/cmd/go/internal/modload/search.go
3251:  go/src/cmd/go/internal/modload/stat_openfile.go
3252:  go/src/cmd/go/internal/modload/stat_unix.go
3253:  go/src/cmd/go/internal/modload/stat_windows.go
3254:  go/src/cmd/go/internal/modload/vendor.go
3255:  go/src/cmd/go/internal/mvs/
3256:  go/src/cmd/go/internal/mvs/errors.go
3257:  go/src/cmd/go/internal/mvs/graph.go
...

3634:  go/src/cmd/go/testdata/script/build_acl_windows.txt
3635:  go/src/cmd/go/testdata/script/build_arm.txt
3636:  go/src/cmd/go/testdata/script/build_buildvcs_auto.txt
3637:  go/src/cmd/go/testdata/script/build_cache_arch_mode.txt
3638:  go/src/cmd/go/testdata/script/build_cache_compile.txt
3639:  go/src/cmd/go/testdata/script/build_cache_disabled.txt
3640:  go/src/cmd/go/testdata/script/build_cache_gomips.txt
3641:  go/src/cmd/go/testdata/script/build_cache_link.txt
3642:  go/src/cmd/go/testdata/script/build_cache_output.txt
3643:  go/src/cmd/go/testdata/script/build_cache_pgo.txt
3644:  go/src/cmd/go/testdata/script/build_cache_trimpath.txt
3645:  go/src/cmd/go/testdata/script/build_cacheprog_issue70848.txt
3646:  go/src/cmd/go/testdata/script/build_cc_cache_issue64423.txt
3647:  go/src/cmd/go/testdata/script/build_cd_gopath_different.txt
3648:  go/src/cmd/go/testdata/script/build_cgo_consistent_results.txt
3649:  go/src/cmd/go/testdata/script/build_cgo_error.txt
3650:  go/src/cmd/go/testdata/script/build_concurrent_backend.txt
...

3677:  go/src/cmd/go/testdata/script/build_output.txt
3678:  go/src/cmd/go/testdata/script/build_overlay.txt
3679:  go/src/cmd/go/testdata/script/build_patterns_outside_gopath.txt
3680:  go/src/cmd/go/testdata/script/build_pgo.txt
3681:  go/src/cmd/go/testdata/script/build_pgo_auto.txt
3682:  go/src/cmd/go/testdata/script/build_pgo_auto_multi.txt
3683:  go/src/cmd/go/testdata/script/build_pie_race.txt
3684:  go/src/cmd/go/testdata/script/build_plugin_non_main.txt
3685:  go/src/cmd/go/testdata/script/build_plugin_reproducible.txt
3686:  go/src/cmd/go/testdata/script/build_relative_pkgdir.txt
3687:  go/src/cmd/go/testdata/script/build_relative_tmpdir.txt
3688:  go/src/cmd/go/testdata/script/build_repeated_godebug_issue62346.txt
3689:  go/src/cmd/go/testdata/script/build_runtime_gcflags.txt
3690:  go/src/cmd/go/testdata/script/build_shared_reproducible.txt
3691:  go/src/cmd/go/testdata/script/build_shorten_pkg.txt
3692:  go/src/cmd/go/testdata/script/build_single_error.txt
3693:  go/src/cmd/go/testdata/script/build_static.txt
3694:  go/src/cmd/go/testdata/script/build_tag_goexperiment.txt
3695:  go/src/cmd/go/testdata/script/build_tags_no_comma.txt
3696:  go/src/cmd/go/testdata/script/build_test_only.txt
3697:  go/src/cmd/go/testdata/script/build_trimpath.txt
3698:  go/src/cmd/go/testdata/script/build_trimpath_cgo.txt
3699:  go/src/cmd/go/testdata/script/build_trimpath_goroot.txt
3700:  go/src/cmd/go/testdata/script/build_unsupported_goos.txt
3701:  go/src/cmd/go/testdata/script/build_vendor.txt
3702:  go/src/cmd/go/testdata/script/build_version_stamping_git.txt
3703:  go/src/cmd/go/testdata/script/cache_unix.txt
3704:  go/src/cmd/go/testdata/script/cache_vet.txt
3705:  go/src/cmd/go/testdata/script/cgo_asm_error.txt
3706:  go/src/cmd/go/testdata/script/cgo_bad_directives.txt
...

3711:  go/src/cmd/go/testdata/script/cgo_long_cmd.txt
3712:  go/src/cmd/go/testdata/script/cgo_path.txt
3713:  go/src/cmd/go/testdata/script/cgo_path_space.txt
3714:  go/src/cmd/go/testdata/script/cgo_path_space_quote.txt
3715:  go/src/cmd/go/testdata/script/cgo_stale.txt
3716:  go/src/cmd/go/testdata/script/cgo_stale_precompiled.txt
3717:  go/src/cmd/go/testdata/script/cgo_suspect_flag_force_external.txt
3718:  go/src/cmd/go/testdata/script/cgo_syso_issue29253.txt
3719:  go/src/cmd/go/testdata/script/cgo_trimpath_macro.txt
3720:  go/src/cmd/go/testdata/script/cgo_undef.txt
3721:  go/src/cmd/go/testdata/script/chdir.txt
3722:  go/src/cmd/go/testdata/script/check_goexperiment.txt
3723:  go/src/cmd/go/testdata/script/clean_binary.txt
3724:  go/src/cmd/go/testdata/script/clean_cache_n.txt
3725:  go/src/cmd/go/testdata/script/clean_testcache.txt
3726:  go/src/cmd/go/testdata/script/cmd_import_error.txt
3727:  go/src/cmd/go/testdata/script/cover_asm.txt
...

3729:  go/src/cmd/go/testdata/script/cover_blank_func_decl.txt
3730:  go/src/cmd/go/testdata/script/cover_build_cmdline_pkgs.txt
3731:  go/src/cmd/go/testdata/script/cover_build_pkg_select.txt
3732:  go/src/cmd/go/testdata/script/cover_build_simple.txt
3733:  go/src/cmd/go/testdata/script/cover_cgo.txt
3734:  go/src/cmd/go/testdata/script/cover_cgo_extra_file.txt
3735:  go/src/cmd/go/testdata/script/cover_cgo_extra_test.txt
3736:  go/src/cmd/go/testdata/script/cover_cgo_xtest.txt
3737:  go/src/cmd/go/testdata/script/cover_coverpkg_partial.txt
3738:  go/src/cmd/go/testdata/script/cover_coverpkg_with_init.txt
3739:  go/src/cmd/go/testdata/script/cover_coverprofile_multipkg.txt
3740:  go/src/cmd/go/testdata/script/cover_coverprofile_nocoverpkg.txt
3741:  go/src/cmd/go/testdata/script/cover_dash_c.txt
3742:  go/src/cmd/go/testdata/script/cover_dep_loop.txt
3743:  go/src/cmd/go/testdata/script/cover_dot_import.txt
3744:  go/src/cmd/go/testdata/script/cover_error.txt
3745:  go/src/cmd/go/testdata/script/cover_import_main_loop.txt
...

3770:  go/src/cmd/go/testdata/script/embed_brackets.txt
3771:  go/src/cmd/go/testdata/script/embed_fmt.txt
3772:  go/src/cmd/go/testdata/script/env_cache.txt
3773:  go/src/cmd/go/testdata/script/env_changed.txt
3774:  go/src/cmd/go/testdata/script/env_cross_build.txt
3775:  go/src/cmd/go/testdata/script/env_exp.txt
3776:  go/src/cmd/go/testdata/script/env_gocacheprog.txt
3777:  go/src/cmd/go/testdata/script/env_gomod_issue61455.txt
3778:  go/src/cmd/go/testdata/script/env_issue46807.txt
3779:  go/src/cmd/go/testdata/script/env_sanitize.txt
3780:  go/src/cmd/go/testdata/script/env_unset.txt
3781:  go/src/cmd/go/testdata/script/env_write.txt
3782:  go/src/cmd/go/testdata/script/fileline.txt
3783:  go/src/cmd/go/testdata/script/fips.txt
3784:  go/src/cmd/go/testdata/script/fipssnap.txt
3785:  go/src/cmd/go/testdata/script/fmt_load_errors.txt
3786:  go/src/cmd/go/testdata/script/fsys_walk.txt
...

3828:  go/src/cmd/go/testdata/script/import_cycle.txt
3829:  go/src/cmd/go/testdata/script/import_ignore.txt
3830:  go/src/cmd/go/testdata/script/import_main.txt
3831:  go/src/cmd/go/testdata/script/import_unix_tag.txt
3832:  go/src/cmd/go/testdata/script/index.txt
3833:  go/src/cmd/go/testdata/script/install_cgo_excluded.txt
3834:  go/src/cmd/go/testdata/script/install_cleans_build.txt
3835:  go/src/cmd/go/testdata/script/install_cmd_gobin.txt
3836:  go/src/cmd/go/testdata/script/install_cross_gobin.txt
3837:  go/src/cmd/go/testdata/script/install_dep_version.txt
3838:  go/src/cmd/go/testdata/script/install_goroot_targets.txt
3839:  go/src/cmd/go/testdata/script/install_modcacherw_issue64282.txt
3840:  go/src/cmd/go/testdata/script/install_move_not_stale.txt
3841:  go/src/cmd/go/testdata/script/install_msan_and_race_and_asan_require_cgo.txt
3842:  go/src/cmd/go/testdata/script/install_rebuild_removed.txt
3843:  go/src/cmd/go/testdata/script/install_relative_gobin_fail.txt
3844:  go/src/cmd/go/testdata/script/install_shadow_gopath.txt
...

3859:  go/src/cmd/go/testdata/script/list_compiled_files_issue28749.txt
3860:  go/src/cmd/go/testdata/script/list_compiled_imports.txt
3861:  go/src/cmd/go/testdata/script/list_compiler_output.txt
3862:  go/src/cmd/go/testdata/script/list_constraints.txt
3863:  go/src/cmd/go/testdata/script/list_dedup_packages.txt
3864:  go/src/cmd/go/testdata/script/list_empty_import.txt
3865:  go/src/cmd/go/testdata/script/list_err_cycle.txt
3866:  go/src/cmd/go/testdata/script/list_err_stack.txt
3867:  go/src/cmd/go/testdata/script/list_export_e.txt
3868:  go/src/cmd/go/testdata/script/list_export_embed.txt
3869:  go/src/cmd/go/testdata/script/list_find.txt
3870:  go/src/cmd/go/testdata/script/list_find_nodeps.txt
3871:  go/src/cmd/go/testdata/script/list_gofile_in_goroot.txt
3872:  go/src/cmd/go/testdata/script/list_gomod_in_gopath.txt
3873:  go/src/cmd/go/testdata/script/list_goroot_symlink.txt
3874:  go/src/cmd/go/testdata/script/list_import_cycle_deps_errors.txt
3875:  go/src/cmd/go/testdata/script/list_import_err.txt
3876:  go/src/cmd/go/testdata/script/list_importmap.txt
3877:  go/src/cmd/go/testdata/script/list_issue_56509.txt
3878:  go/src/cmd/go/testdata/script/list_issue_59905.txt
3879:  go/src/cmd/go/testdata/script/list_issue_70600.txt
3880:  go/src/cmd/go/testdata/script/list_json_fields.txt
3881:  go/src/cmd/go/testdata/script/list_json_issue64946.txt
3882:  go/src/cmd/go/testdata/script/list_json_with_f.txt
3883:  go/src/cmd/go/testdata/script/list_legacy_mod.txt
3884:  go/src/cmd/go/testdata/script/list_linkshared.txt
3885:  go/src/cmd/go/testdata/script/list_load_err.txt
3886:  go/src/cmd/go/testdata/script/list_module_when_error.txt
3887:  go/src/cmd/go/testdata/script/list_n_cover.txt
3888:  go/src/cmd/go/testdata/script/list_overlay.txt
3889:  go/src/cmd/go/testdata/script/list_panic_issue68737.txt
3890:  go/src/cmd/go/testdata/script/list_parse_err.txt
3891:  go/src/cmd/go/testdata/script/list_perm.txt
3892:  go/src/cmd/go/testdata/script/list_pgo_issue66218.txt
3893:  go/src/cmd/go/testdata/script/list_pkgconfig_error.txt
3894:  go/src/cmd/go/testdata/script/list_replace_absolute_windows.txt
...

3948:  go/src/cmd/go/testdata/script/mod_download_insecure_redirect.txt
3949:  go/src/cmd/go/testdata/script/mod_download_issue51114.txt
3950:  go/src/cmd/go/testdata/script/mod_download_json.txt
3951:  go/src/cmd/go/testdata/script/mod_download_partial.txt
3952:  go/src/cmd/go/testdata/script/mod_download_private_vcs.txt
3953:  go/src/cmd/go/testdata/script/mod_download_replace_file.txt
3954:  go/src/cmd/go/testdata/script/mod_download_svn.txt
3955:  go/src/cmd/go/testdata/script/mod_download_too_many_redirects.txt
3956:  go/src/cmd/go/testdata/script/mod_e.txt
3957:  go/src/cmd/go/testdata/script/mod_edit.txt
3958:  go/src/cmd/go/testdata/script/mod_edit_go.txt
3959:  go/src/cmd/go/testdata/script/mod_edit_no_modcache.txt
3960:  go/src/cmd/go/testdata/script/mod_edit_toolchain.txt
3961:  go/src/cmd/go/testdata/script/mod_empty_err.txt
3962:  go/src/cmd/go/testdata/script/mod_enabled.txt
3963:  go/src/cmd/go/testdata/script/mod_errors_pos.txt
3964:  go/src/cmd/go/testdata/script/mod_exclude_go121.txt
...

3970:  go/src/cmd/go/testdata/script/mod_get_ambiguous_import.txt
3971:  go/src/cmd/go/testdata/script/mod_get_ambiguous_pkg.txt
3972:  go/src/cmd/go/testdata/script/mod_get_boost.txt
3973:  go/src/cmd/go/testdata/script/mod_get_changes.txt
3974:  go/src/cmd/go/testdata/script/mod_get_commit.txt
3975:  go/src/cmd/go/testdata/script/mod_get_deprecate_install.txt
3976:  go/src/cmd/go/testdata/script/mod_get_deprecated.txt
3977:  go/src/cmd/go/testdata/script/mod_get_direct.txt
3978:  go/src/cmd/go/testdata/script/mod_get_downadd_indirect.txt
3979:  go/src/cmd/go/testdata/script/mod_get_downgrade.txt
3980:  go/src/cmd/go/testdata/script/mod_get_downgrade_missing.txt
3981:  go/src/cmd/go/testdata/script/mod_get_downup_artifact.txt
3982:  go/src/cmd/go/testdata/script/mod_get_downup_indirect.txt
3983:  go/src/cmd/go/testdata/script/mod_get_downup_indirect_pruned.txt
3984:  go/src/cmd/go/testdata/script/mod_get_downup_pseudo_artifact.txt
3985:  go/src/cmd/go/testdata/script/mod_get_errors.txt
3986:  go/src/cmd/go/testdata/script/mod_get_exec_toolchain.txt
...

4039:  go/src/cmd/go/testdata/script/mod_getmode_vendor.txt
4040:  go/src/cmd/go/testdata/script/mod_getx.txt
4041:  go/src/cmd/go/testdata/script/mod_git_export_subst.txt
4042:  go/src/cmd/go/testdata/script/mod_go_version.txt
4043:  go/src/cmd/go/testdata/script/mod_go_version_missing.txt
4044:  go/src/cmd/go/testdata/script/mod_go_version_mixed.txt
4045:  go/src/cmd/go/testdata/script/mod_gobuild_import.txt
4046:  go/src/cmd/go/testdata/script/mod_gofmt_invalid.txt
4047:  go/src/cmd/go/testdata/script/mod_goline.txt
4048:  go/src/cmd/go/testdata/script/mod_goline_old.txt
4049:  go/src/cmd/go/testdata/script/mod_goline_too_new.txt
4050:  go/src/cmd/go/testdata/script/mod_gomodcache.txt
4051:  go/src/cmd/go/testdata/script/mod_gomodcache_vendor.txt
4052:  go/src/cmd/go/testdata/script/mod_gonoproxy.txt
4053:  go/src/cmd/go/testdata/script/mod_gopkg_unstable.txt
4054:  go/src/cmd/go/testdata/script/mod_goroot_errors.txt
4055:  go/src/cmd/go/testdata/script/mod_graph.txt
...

4123:  go/src/cmd/go/testdata/script/mod_missingpkg_prerelease.txt
4124:  go/src/cmd/go/testdata/script/mod_modinfo.txt
4125:  go/src/cmd/go/testdata/script/mod_multirepo.txt
4126:  go/src/cmd/go/testdata/script/mod_no_gopath.txt
4127:  go/src/cmd/go/testdata/script/mod_nomod.txt
4128:  go/src/cmd/go/testdata/script/mod_notall.txt
4129:  go/src/cmd/go/testdata/script/mod_off.txt
4130:  go/src/cmd/go/testdata/script/mod_off_init.txt
4131:  go/src/cmd/go/testdata/script/mod_outside.txt
4132:  go/src/cmd/go/testdata/script/mod_overlay.txt
4133:  go/src/cmd/go/testdata/script/mod_patterns.txt
4134:  go/src/cmd/go/testdata/script/mod_patterns_vendor.txt
4135:  go/src/cmd/go/testdata/script/mod_perm.txt
4136:  go/src/cmd/go/testdata/script/mod_permissions.txt
4137:  go/src/cmd/go/testdata/script/mod_prefer_compatible.txt
4138:  go/src/cmd/go/testdata/script/mod_proxy_errors.txt
4139:  go/src/cmd/go/testdata/script/mod_proxy_https.txt
...

4153:  go/src/cmd/go/testdata/script/mod_retention.txt
4154:  go/src/cmd/go/testdata/script/mod_retract.txt
4155:  go/src/cmd/go/testdata/script/mod_retract_fix_version.txt
4156:  go/src/cmd/go/testdata/script/mod_retract_incompatible.txt
4157:  go/src/cmd/go/testdata/script/mod_retract_noupgrade.txt
4158:  go/src/cmd/go/testdata/script/mod_retract_pseudo_base.txt
4159:  go/src/cmd/go/testdata/script/mod_retract_rationale.txt
4160:  go/src/cmd/go/testdata/script/mod_retract_rename.txt
4161:  go/src/cmd/go/testdata/script/mod_retract_replace.txt
4162:  go/src/cmd/go/testdata/script/mod_retract_versions.txt
4163:  go/src/cmd/go/testdata/script/mod_run_flags_issue64738.txt
4164:  go/src/cmd/go/testdata/script/mod_run_issue52331.txt
4165:  go/src/cmd/go/testdata/script/mod_run_nonmain.txt
4166:  go/src/cmd/go/testdata/script/mod_run_path.txt
4167:  go/src/cmd/go/testdata/script/mod_run_pkg_version.txt
4168:  go/src/cmd/go/testdata/script/mod_run_pkgerror.txt
4169:  go/src/cmd/go/testdata/script/mod_skip_write.txt
...

4188:  go/src/cmd/go/testdata/script/mod_test_files.txt
4189:  go/src/cmd/go/testdata/script/mod_tidy.txt
4190:  go/src/cmd/go/testdata/script/mod_tidy_compat.txt
4191:  go/src/cmd/go/testdata/script/mod_tidy_compat_added.txt
4192:  go/src/cmd/go/testdata/script/mod_tidy_compat_ambiguous.txt
4193:  go/src/cmd/go/testdata/script/mod_tidy_compat_deleted.txt
4194:  go/src/cmd/go/testdata/script/mod_tidy_compat_implicit.txt
4195:  go/src/cmd/go/testdata/script/mod_tidy_compat_incompatible.txt
4196:  go/src/cmd/go/testdata/script/mod_tidy_compat_irrelevant.txt
4197:  go/src/cmd/go/testdata/script/mod_tidy_convergence.txt
4198:  go/src/cmd/go/testdata/script/mod_tidy_convergence_loop.txt
4199:  go/src/cmd/go/testdata/script/mod_tidy_cycle.txt
4200:  go/src/cmd/go/testdata/script/mod_tidy_diff.txt
4201:  go/src/cmd/go/testdata/script/mod_tidy_downgrade_ambiguous.txt
4202:  go/src/cmd/go/testdata/script/mod_tidy_duplicates.txt
4203:  go/src/cmd/go/testdata/script/mod_tidy_error.txt
4204:  go/src/cmd/go/testdata/script/mod_tidy_indirect.txt
...

4233:  go/src/cmd/go/testdata/script/mod_vendor_issue46867.txt
4234:  go/src/cmd/go/testdata/script/mod_vendor_nodeps.txt
4235:  go/src/cmd/go/testdata/script/mod_vendor_redundant_requirement.txt
4236:  go/src/cmd/go/testdata/script/mod_vendor_replace.txt
4237:  go/src/cmd/go/testdata/script/mod_vendor_trimpath.txt
4238:  go/src/cmd/go/testdata/script/mod_vendor_unused.txt
4239:  go/src/cmd/go/testdata/script/mod_vendor_unused_only.txt
4240:  go/src/cmd/go/testdata/script/mod_verify.txt
4241:  go/src/cmd/go/testdata/script/mod_verify_work.txt
4242:  go/src/cmd/go/testdata/script/mod_versions.txt
4243:  go/src/cmd/go/testdata/script/mod_why.txt
4244:  go/src/cmd/go/testdata/script/modfile_flag.txt
4245:  go/src/cmd/go/testdata/script/netrc_issue66832.txt
4246:  go/src/cmd/go/testdata/script/noncanonical_import.txt
4247:  go/src/cmd/go/testdata/script/old_tidy_toolchain.txt
4248:  go/src/cmd/go/testdata/script/pattern_syntax_error.txt
4249:  go/src/cmd/go/testdata/script/prevent_sys_unix_import.txt
...

4260:  go/src/cmd/go/testdata/script/run_vendor.txt
4261:  go/src/cmd/go/testdata/script/run_vers.txt
4262:  go/src/cmd/go/testdata/script/run_wildcard.txt
4263:  go/src/cmd/go/testdata/script/run_work_versioned.txt
4264:  go/src/cmd/go/testdata/script/script_help.txt
4265:  go/src/cmd/go/testdata/script/script_wait.txt
4266:  go/src/cmd/go/testdata/script/slashpath.txt
4267:  go/src/cmd/go/testdata/script/src_file.txt
4268:  go/src/cmd/go/testdata/script/std_vendor.txt
4269:  go/src/cmd/go/testdata/script/telemetry.txt
4270:  go/src/cmd/go/testdata/script/test2json_interrupt.txt
4271:  go/src/cmd/go/testdata/script/test_android_issue62123.txt
4272:  go/src/cmd/go/testdata/script/test_bad_example.txt
4273:  go/src/cmd/go/testdata/script/test_badtest.txt
4274:  go/src/cmd/go/testdata/script/test_benchmark_1x.txt
4275:  go/src/cmd/go/testdata/script/test_benchmark_chatty_fail.txt
4276:  go/src/cmd/go/testdata/script/test_benchmark_chatty_success.txt
4277:  go/src/cmd/go/testdata/script/test_benchmark_fatal.txt
4278:  go/src/cmd/go/testdata/script/test_benchmark_labels.txt
4279:  go/src/cmd/go/testdata/script/test_benchmark_timeout.txt
4280:  go/src/cmd/go/testdata/script/test_build_failure.txt
4281:  go/src/cmd/go/testdata/script/test_buildinfo.txt
4282:  go/src/cmd/go/testdata/script/test_buildinfo_godebug_issue68053.txt
4283:  go/src/cmd/go/testdata/script/test_buildvcs.txt
4284:  go/src/cmd/go/testdata/script/test_cache_inputs.txt
4285:  go/src/cmd/go/testdata/script/test_chatty_fail.txt
4286:  go/src/cmd/go/testdata/script/test_chatty_parallel_fail.txt
4287:  go/src/cmd/go/testdata/script/test_chatty_parallel_success.txt
4288:  go/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt
4289:  go/src/cmd/go/testdata/script/test_chatty_success.txt
4290:  go/src/cmd/go/testdata/script/test_cleanup_failnow.txt
4291:  go/src/cmd/go/testdata/script/test_compile_binary.txt
4292:  go/src/cmd/go/testdata/script/test_compile_multi_pkg.txt
4293:  go/src/cmd/go/testdata/script/test_compile_tempfile.txt
4294:  go/src/cmd/go/testdata/script/test_crlf_example.txt
4295:  go/src/cmd/go/testdata/script/test_deadline.txt
4296:  go/src/cmd/go/testdata/script/test_default_godebug_issue69203.txt
4297:  go/src/cmd/go/testdata/script/test_empty.txt
4298:  go/src/cmd/go/testdata/script/test_env_term.txt
4299:  go/src/cmd/go/testdata/script/test_example_goexit.txt
4300:  go/src/cmd/go/testdata/script/test_exit.txt
4301:  go/src/cmd/go/testdata/script/test_fail_fast.txt
4302:  go/src/cmd/go/testdata/script/test_fail_newline.txt
4303:  go/src/cmd/go/testdata/script/test_finished_subtest_goroutines.txt
4304:  go/src/cmd/go/testdata/script/test_flag.txt
4305:  go/src/cmd/go/testdata/script/test_flags.txt
4306:  go/src/cmd/go/testdata/script/test_fullpath.txt
4307:  go/src/cmd/go/testdata/script/test_fuzz.txt
4308:  go/src/cmd/go/testdata/script/test_fuzz_cache.txt
4309:  go/src/cmd/go/testdata/script/test_fuzz_cgo.txt
4310:  go/src/cmd/go/testdata/script/test_fuzz_chatty.txt
4311:  go/src/cmd/go/testdata/script/test_fuzz_cleanup.txt
4312:  go/src/cmd/go/testdata/script/test_fuzz_context.txt
4313:  go/src/cmd/go/testdata/script/test_fuzz_cov.txt
4314:  go/src/cmd/go/testdata/script/test_fuzz_deadline.txt
4315:  go/src/cmd/go/testdata/script/test_fuzz_dup_cache.txt
4316:  go/src/cmd/go/testdata/script/test_fuzz_err_deadlock.txt
4317:  go/src/cmd/go/testdata/script/test_fuzz_fuzztime.txt
4318:  go/src/cmd/go/testdata/script/test_fuzz_io_error.txt
4319:  go/src/cmd/go/testdata/script/test_fuzz_limit_dup_entry.txt
4320:  go/src/cmd/go/testdata/script/test_fuzz_match.txt
4321:  go/src/cmd/go/testdata/script/test_fuzz_minimize.txt
4322:  go/src/cmd/go/testdata/script/test_fuzz_minimize_dirty_cov.txt
4323:  go/src/cmd/go/testdata/script/test_fuzz_minimize_interesting.txt
4324:  go/src/cmd/go/testdata/script/test_fuzz_modcache.txt
4325:  go/src/cmd/go/testdata/script/test_fuzz_multiple.txt
4326:  go/src/cmd/go/testdata/script/test_fuzz_mutate_crash.txt
4327:  go/src/cmd/go/testdata/script/test_fuzz_mutate_fail.txt
4328:  go/src/cmd/go/testdata/script/test_fuzz_mutator.txt
4329:  go/src/cmd/go/testdata/script/test_fuzz_mutator_repeat.txt
4330:  go/src/cmd/go/testdata/script/test_fuzz_non_crash_signal.txt
4331:  go/src/cmd/go/testdata/script/test_fuzz_parallel.txt
4332:  go/src/cmd/go/testdata/script/test_fuzz_profile_flags.txt
4333:  go/src/cmd/go/testdata/script/test_fuzz_return.txt
4334:  go/src/cmd/go/testdata/script/test_fuzz_run.txt
4335:  go/src/cmd/go/testdata/script/test_fuzz_seed_corpus.txt
4336:  go/src/cmd/go/testdata/script/test_fuzz_setenv.txt
4337:  go/src/cmd/go/testdata/script/test_fuzz_test_race.txt
4338:  go/src/cmd/go/testdata/script/test_fuzz_unsupported.txt
4339:  go/src/cmd/go/testdata/script/test_generated_main.txt
4340:  go/src/cmd/go/testdata/script/test_go111module_cache.txt
4341:  go/src/cmd/go/testdata/script/test_goroot_PATH.txt
4342:  go/src/cmd/go/testdata/script/test_import_error_stack.txt
4343:  go/src/cmd/go/testdata/script/test_issue45477.txt
4344:  go/src/cmd/go/testdata/script/test_json.txt
4345:  go/src/cmd/go/testdata/script/test_json_build.txt
4346:  go/src/cmd/go/testdata/script/test_json_exit.txt
4347:  go/src/cmd/go/testdata/script/test_json_interleaved.txt
4348:  go/src/cmd/go/testdata/script/test_json_issue35169.txt
4349:  go/src/cmd/go/testdata/script/test_json_panic_exit.txt
4350:  go/src/cmd/go/testdata/script/test_json_prints.txt
4351:  go/src/cmd/go/testdata/script/test_json_timeout.txt
4352:  go/src/cmd/go/testdata/script/test_main.txt
4353:  go/src/cmd/go/testdata/script/test_main_archive.txt
4354:  go/src/cmd/go/testdata/script/test_main_panic.txt
4355:  go/src/cmd/go/testdata/script/test_main_twice.txt
4356:  go/src/cmd/go/testdata/script/test_match_benchmark_labels.txt
4357:  go/src/cmd/go/testdata/script/test_match_no_benchmarks.txt
4358:  go/src/cmd/go/testdata/script/test_match_no_subtests.txt
4359:  go/src/cmd/go/testdata/script/test_match_no_subtests_failure.txt
4360:  go/src/cmd/go/testdata/script/test_match_no_subtests_parallel.txt
4361:  go/src/cmd/go/testdata/script/test_match_no_tests.txt
4362:  go/src/cmd/go/testdata/script/test_match_no_tests_build_failure.txt
4363:  go/src/cmd/go/testdata/script/test_match_no_tests_with_subtests.txt
...

4375:  go/src/cmd/go/testdata/script/test_ppc64_linker_funcs.txt
4376:  go/src/cmd/go/testdata/script/test_ppc64le_cgo_inline_plt.txt
4377:  go/src/cmd/go/testdata/script/test_print.txt
4378:  go/src/cmd/go/testdata/script/test_profile.txt
4379:  go/src/cmd/go/testdata/script/test_race.txt
4380:  go/src/cmd/go/testdata/script/test_race_cover_mode_issue20435.txt
4381:  go/src/cmd/go/testdata/script/test_race_install.txt
4382:  go/src/cmd/go/testdata/script/test_race_install_cgo.txt
4383:  go/src/cmd/go/testdata/script/test_race_issue26995.txt
4384:  go/src/cmd/go/testdata/script/test_race_tag.txt
4385:  go/src/cmd/go/testdata/script/test_rebuildall.txt
4386:  go/src/cmd/go/testdata/script/test_regexps.txt
4387:  go/src/cmd/go/testdata/script/test_relative_cmdline.txt
4388:  go/src/cmd/go/testdata/script/test_relative_import.txt
4389:  go/src/cmd/go/testdata/script/test_script_cmdcd.txt
4390:  go/src/cmd/go/testdata/script/test_setup_error.txt
4391:  go/src/cmd/go/testdata/script/test_shuffle.txt
4392:  go/src/cmd/go/testdata/script/test_skip.txt
4393:  go/src/cmd/go/testdata/script/test_source_order.txt
4394:  go/src/cmd/go/testdata/script/test_status.txt
4395:  go/src/cmd/go/testdata/script/test_syntax_error_says_fail.txt
4396:  go/src/cmd/go/testdata/script/test_timeout.txt
...

4432:  go/src/cmd/go/testdata/script/version_goexperiment.txt
4433:  go/src/cmd/go/testdata/script/version_replace.txt
4434:  go/src/cmd/go/testdata/script/vet.txt
4435:  go/src/cmd/go/testdata/script/vet_asm.txt
4436:  go/src/cmd/go/testdata/script/vet_commandline.txt
4437:  go/src/cmd/go/testdata/script/vet_deps.txt
4438:  go/src/cmd/go/testdata/script/vet_flags.txt
4439:  go/src/cmd/go/testdata/script/vet_internal.txt
4440:  go/src/cmd/go/testdata/script/work.txt
4441:  go/src/cmd/go/testdata/script/work_build_no_modules.txt
4442:  go/src/cmd/go/testdata/script/work_disablevendor.txt
4443:  go/src/cmd/go/testdata/script/work_edit.txt
4444:  go/src/cmd/go/testdata/script/work_edit_toolchain.txt
4445:  go/src/cmd/go/testdata/script/work_empty_panic_GOPATH.txt
4446:  go/src/cmd/go/testdata/script/work_env.txt
4447:  go/src/cmd/go/testdata/script/work_errors_pos.txt
4448:  go/src/cmd/go/testdata/script/work_get_toolchain.txt
...

4869:  go/src/cmd/internal/quoted/
4870:  go/src/cmd/internal/quoted/quoted.go
4871:  go/src/cmd/internal/quoted/quoted_test.go
4872:  go/src/cmd/internal/robustio/
4873:  go/src/cmd/internal/robustio/robustio.go
4874:  go/src/cmd/internal/robustio/robustio_darwin.go
4875:  go/src/cmd/internal/robustio/robustio_flaky.go
4876:  go/src/cmd/internal/robustio/robustio_other.go
4877:  go/src/cmd/internal/robustio/robustio_windows.go
4878:  go/src/cmd/internal/script/
4879:  go/src/cmd/internal/script/cmds.go
4880:  go/src/cmd/internal/script/cmds_nonunix.go
4881:  go/src/cmd/internal/script/cmds_unix.go
4882:  go/src/cmd/internal/script/conds.go
4883:  go/src/cmd/internal/script/engine.go
4884:  go/src/cmd/internal/script/errors.go
4885:  go/src/cmd/internal/script/scripttest/
...

4967:  go/src/cmd/link/internal/dwtest/
4968:  go/src/cmd/link/internal/dwtest/dwtest.go
4969:  go/src/cmd/link/internal/ld/
4970:  go/src/cmd/link/internal/ld/ar.go
4971:  go/src/cmd/link/internal/ld/asmb.go
4972:  go/src/cmd/link/internal/ld/config.go
4973:  go/src/cmd/link/internal/ld/data.go
4974:  go/src/cmd/link/internal/ld/data_test.go
4975:  go/src/cmd/link/internal/ld/deadcode.go
4976:  go/src/cmd/link/internal/ld/deadcode_test.go
4977:  go/src/cmd/link/internal/ld/decodesym.go
4978:  go/src/cmd/link/internal/ld/dwarf.go
4979:  go/src/cmd/link/internal/ld/dwarf_test.go
4980:  go/src/cmd/link/internal/ld/elf.go
4981:  go/src/cmd/link/internal/ld/elf_test.go
4982:  go/src/cmd/link/internal/ld/errors.go
4983:  go/src/cmd/link/internal/ld/execarchive.go
...

5436:  go/src/cmd/vendor/golang.org/x/sync/errgroup/go120.go
5437:  go/src/cmd/vendor/golang.org/x/sync/errgroup/pre_go120.go
5438:  go/src/cmd/vendor/golang.org/x/sync/semaphore/
5439:  go/src/cmd/vendor/golang.org/x/sync/semaphore/semaphore.go
5440:  go/src/cmd/vendor/golang.org/x/sys/
5441:  go/src/cmd/vendor/golang.org/x/sys/LICENSE
5442:  go/src/cmd/vendor/golang.org/x/sys/PATENTS
5443:  go/src/cmd/vendor/golang.org/x/sys/plan9/
5444:  go/src/cmd/vendor/golang.org/x/sys/plan9/asm.s
5445:  go/src/cmd/vendor/golang.org/x/sys/plan9/asm_plan9_386.s
5446:  go/src/cmd/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s
5447:  go/src/cmd/vendor/golang.org/x/sys/plan9/asm_plan9_arm.s
5448:  go/src/cmd/vendor/golang.org/x/sys/plan9/const_plan9.go
5449:  go/src/cmd/vendor/golang.org/x/sys/plan9/dir_plan9.go
5450:  go/src/cmd/vendor/golang.org/x/sys/plan9/env_plan9.go
5451:  go/src/cmd/vendor/golang.org/x/sys/plan9/errors_plan9.go
5452:  go/src/cmd/vendor/golang.org/x/sys/plan9/mkall.sh
5453:  go/src/cmd/vendor/golang.org/x/sys/plan9/mkerrors.sh
5454:  go/src/cmd/vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh
...

5507:  go/src/cmd/vendor/golang.org/x/sys/unix/endian_little.go
5508:  go/src/cmd/vendor/golang.org/x/sys/unix/env_unix.go
5509:  go/src/cmd/vendor/golang.org/x/sys/unix/fcntl.go
5510:  go/src/cmd/vendor/golang.org/x/sys/unix/fcntl_darwin.go
5511:  go/src/cmd/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
5512:  go/src/cmd/vendor/golang.org/x/sys/unix/fdset.go
5513:  go/src/cmd/vendor/golang.org/x/sys/unix/gccgo.go
5514:  go/src/cmd/vendor/golang.org/x/sys/unix/gccgo_c.c
5515:  go/src/cmd/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
5516:  go/src/cmd/vendor/golang.org/x/sys/unix/ifreq_linux.go
5517:  go/src/cmd/vendor/golang.org/x/sys/unix/ioctl_linux.go
5518:  go/src/cmd/vendor/golang.org/x/sys/unix/ioctl_signed.go
5519:  go/src/cmd/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
5520:  go/src/cmd/vendor/golang.org/x/sys/unix/ioctl_zos.go
5521:  go/src/cmd/vendor/golang.org/x/sys/unix/mkall.sh
5522:  go/src/cmd/vendor/golang.org/x/sys/unix/mkerrors.sh
5523:  go/src/cmd/vendor/golang.org/x/sys/unix/mmap_nomremap.go
...

5592:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go
5593:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_solaris.go
5594:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
5595:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix.go
5596:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
5597:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
5598:  go/src/cmd/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go
5599:  go/src/cmd/vendor/golang.org/x/sys/unix/sysvshm_linux.go
5600:  go/src/cmd/vendor/golang.org/x/sys/unix/sysvshm_unix.go
5601:  go/src/cmd/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go
5602:  go/src/cmd/vendor/golang.org/x/sys/unix/timestruct.go
5603:  go/src/cmd/vendor/golang.org/x/sys/unix/unveil_openbsd.go
5604:  go/src/cmd/vendor/golang.org/x/sys/unix/vgetrandom_linux.go
5605:  go/src/cmd/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go
5606:  go/src/cmd/vendor/golang.org/x/sys/unix/xattr_bsd.go
5607:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
5608:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
5609:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
5610:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
5611:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
5612:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
5613:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
5614:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
5615:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
5616:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go
5617:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux.go
5618:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
5619:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
5620:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
5621:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
5622:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
5623:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
5624:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
5625:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
5626:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
5627:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go
5628:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
5629:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
5630:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
5631:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
5632:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
5633:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
5634:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
5635:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
5636:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
5637:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
5638:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
5639:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
5640:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
5641:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go
5642:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go
5643:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go
5644:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
5645:  go/src/cmd/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go
5646:  go/src/cmd/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
...

5776:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
5777:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
5778:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
5779:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go
5780:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go
5781:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go
5782:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
5783:  go/src/cmd/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go
5784:  go/src/cmd/vendor/golang.org/x/sys/windows/
5785:  go/src/cmd/vendor/golang.org/x/sys/windows/aliases.go
5786:  go/src/cmd/vendor/golang.org/x/sys/windows/dll_windows.go
5787:  go/src/cmd/vendor/golang.org/x/sys/windows/env_windows.go
5788:  go/src/cmd/vendor/golang.org/x/sys/windows/eventlog.go
5789:  go/src/cmd/vendor/golang.org/x/sys/windows/exec_windows.go
5790:  go/src/cmd/vendor/golang.org/x/sys/windows/memory_windows.go
5791:  go/src/cmd/vendor/golang.org/x/sys/windows/mkerrors.bash
5792:  go/src/cmd/vendor/golang.org/x/sys/windows/mkknownfolderids.bash
5793:  go/src/cmd/vendor/golang.org/x/sys/windows/mksyscall.go
5794:  go/src/cmd/vendor/golang.org/x/sys/windows/race.go
5795:  go/src/cmd/vendor/golang.org/x/sys/windows/race0.go
5796:  go/src/cmd/vendor/golang.org/x/sys/windows/security_windows.go
5797:  go/src/cmd/vendor/golang.org/x/sys/windows/service.go
5798:  go/src/cmd/vendor/golang.org/x/sys/windows/setupapi_windows.go
5799:  go/src/cmd/vendor/golang.org/x/sys/windows/str.go
5800:  go/src/cmd/vendor/golang.org/x/sys/windows/syscall.go
5801:  go/src/cmd/vendor/golang.org/x/sys/windows/syscall_windows.go
5802:  go/src/cmd/vendor/golang.org/x/sys/windows/types_windows.go
5803:  go/src/cmd/vendor/golang.org/x/sys/windows/types_windows_386.go
5804:  go/src/cmd/vendor/golang.org/x/sys/windows/types_windows_amd64.go
5805:  go/src/cmd/vendor/golang.org/x/sys/windows/types_windows_arm.go
5806:  go/src/cmd/vendor/golang.org/x/sys/windows/types_windows_arm64.go
5807:  go/src/cmd/vendor/golang.org/x/sys/windows/zerrors_windows.go
5808:  go/src/cmd/vendor/golang.org/x/sys/windows/zknownfolderids_windows.go
...

5985:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/cgocall/cgocall.go
5986:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/cgocall/cgocall_go120.go
5987:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/cgocall/cgocall_go121.go
5988:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/composite/
5989:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/composite/composite.go
5990:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/composite/whitelist.go
5991:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/copylock/
5992:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/copylock/copylock.go
5993:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/ctrlflow/
5994:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/ctrlflow/ctrlflow.go
5995:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/defers/
5996:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/defers/defers.go
5997:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/defers/doc.go
5998:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/directive/
5999:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/directive/directive.go
6000:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/errorsas/
6001:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/errorsas/errorsas.go
6002:  go/src/cmd/vendor/golang.org/x/tools/go/analysis/passes/framepointer/
...

6097:  go/src/cmd/vendor/golang.org/x/tools/internal/facts/
6098:  go/src/cmd/vendor/golang.org/x/tools/internal/facts/facts.go
6099:  go/src/cmd/vendor/golang.org/x/tools/internal/facts/imports.go
6100:  go/src/cmd/vendor/golang.org/x/tools/internal/stdlib/
6101:  go/src/cmd/vendor/golang.org/x/tools/internal/stdlib/manifest.go
6102:  go/src/cmd/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
6103:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/
6104:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/common.go
6105:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/coretype.go
6106:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/free.go
6107:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/normalize.go
6108:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/termlist.go
6109:  go/src/cmd/vendor/golang.org/x/tools/internal/typeparams/typeterm.go
6110:  go/src/cmd/vendor/golang.org/x/tools/internal/typesinternal/
6111:  go/src/cmd/vendor/golang.org/x/tools/internal/typesinternal/element.go
6112:  go/src/cmd/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
6113:  go/src/cmd/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go
6114:  go/src/cmd/vendor/golang.org/x/tools/internal/typesinternal/recv.go
...

7794:  go/src/encoding/encoding.go
7795:  go/src/encoding/gob/
7796:  go/src/encoding/gob/codec_test.go
7797:  go/src/encoding/gob/debug.go
7798:  go/src/encoding/gob/dec_helpers.go
7799:  go/src/encoding/gob/decgen.go
7800:  go/src/encoding/gob/decode.go
7801:  go/src/encoding/gob/decoder.go
7802:  go/src/encoding/gob/doc.go
7803:  go/src/encoding/gob/dump.go
7804:  go/src/encoding/gob/enc_helpers.go
7805:  go/src/encoding/gob/encgen.go
7806:  go/src/encoding/gob/encode.go
7807:  go/src/encoding/gob/encoder.go
7808:  go/src/encoding/gob/encoder_test.go
7809:  go/src/encoding/gob/error.go
7810:  go/src/encoding/gob/example_encdec_test.go
...

7846:  go/src/encoding/pem/example_test.go
7847:  go/src/encoding/pem/pem.go
7848:  go/src/encoding/pem/pem_test.go
7849:  go/src/encoding/xml/
7850:  go/src/encoding/xml/atom_test.go
7851:  go/src/encoding/xml/example_marshaling_test.go
7852:  go/src/encoding/xml/example_test.go
7853:  go/src/encoding/xml/example_text_marshaling_test.go
7854:  go/src/encoding/xml/marshal.go
7855:  go/src/encoding/xml/marshal_test.go
7856:  go/src/encoding/xml/read.go
7857:  go/src/encoding/xml/read_test.go
7858:  go/src/encoding/xml/typeinfo.go
7859:  go/src/encoding/xml/xml.go
7860:  go/src/encoding/xml/xml_test.go
7861:  go/src/errors/
7862:  go/src/errors/errors.go
7863:  go/src/errors/errors_test.go
7864:  go/src/errors/example_test.go
7865:  go/src/errors/join.go
7866:  go/src/errors/join_test.go
7867:  go/src/errors/wrap.go
7868:  go/src/errors/wrap_test.go
7869:  go/src/expvar/
7870:  go/src/expvar/expvar.go
7871:  go/src/expvar/expvar_test.go
7872:  go/src/flag/
7873:  go/src/flag/example_flagset_test.go
7874:  go/src/flag/example_func_test.go
7875:  go/src/flag/example_test.go
7876:  go/src/flag/example_textvar_test.go
7877:  go/src/flag/example_value_test.go
7878:  go/src/flag/export_test.go
7879:  go/src/flag/flag.go
7880:  go/src/flag/flag_test.go
7881:  go/src/fmt/
7882:  go/src/fmt/doc.go
7883:  go/src/fmt/errors.go
7884:  go/src/fmt/errors_test.go
7885:  go/src/fmt/example_test.go
...

8083:  go/src/go/doc/testdata/bugpara.2.golden
8084:  go/src/go/doc/testdata/bugpara.go
8085:  go/src/go/doc/testdata/c.0.golden
8086:  go/src/go/doc/testdata/c.1.golden
8087:  go/src/go/doc/testdata/c.2.golden
8088:  go/src/go/doc/testdata/c.go
8089:  go/src/go/doc/testdata/d.0.golden
8090:  go/src/go/doc/testdata/d.1.golden
8091:  go/src/go/doc/testdata/d.2.golden
8092:  go/src/go/doc/testdata/d1.go
8093:  go/src/go/doc/testdata/d2.go
8094:  go/src/go/doc/testdata/e.0.golden
8095:  go/src/go/doc/testdata/e.1.golden
8096:  go/src/go/doc/testdata/e.2.golden
8097:  go/src/go/doc/testdata/e.go
8098:  go/src/go/doc/testdata/error1.0.golden
8099:  go/src/go/doc/testdata/error1.1.golden
8100:  go/src/go/doc/testdata/error1.2.golden
8101:  go/src/go/doc/testdata/error1.go
8102:  go/src/go/doc/testdata/error2.0.golden
8103:  go/src/go/doc/testdata/error2.1.golden
8104:  go/src/go/doc/testdata/error2.2.golden
8105:  go/src/go/doc/testdata/error2.go
8106:  go/src/go/doc/testdata/example.go
...

8251:  go/src/go/internal/gcimporter/testdata/versions/test_go1.7_1.a
8252:  go/src/go/internal/gcimporter/testdata/versions/test_go1.8_4.a
8253:  go/src/go/internal/gcimporter/testdata/versions/test_go1.8_5.a
8254:  go/src/go/internal/gcimporter/ureader.go
8255:  go/src/go/internal/srcimporter/
8256:  go/src/go/internal/srcimporter/srcimporter.go
8257:  go/src/go/internal/srcimporter/srcimporter_test.go
8258:  go/src/go/internal/srcimporter/testdata/
8259:  go/src/go/internal/srcimporter/testdata/issue20855/
8260:  go/src/go/internal/srcimporter/testdata/issue20855/issue20855.go
8261:  go/src/go/internal/srcimporter/testdata/issue23092/
8262:  go/src/go/internal/srcimporter/testdata/issue23092/issue23092.go
8263:  go/src/go/internal/srcimporter/testdata/issue24392/
8264:  go/src/go/internal/srcimporter/testdata/issue24392/issue24392.go
8265:  go/src/go/parser/
8266:  go/src/go/parser/error_test.go
8267:  go/src/go/parser/example_test.go
...

8352:  go/src/go/printer/testdata/gobuild4.input
8353:  go/src/go/printer/testdata/gobuild5.golden
8354:  go/src/go/printer/testdata/gobuild5.input
8355:  go/src/go/printer/testdata/gobuild6.golden
8356:  go/src/go/printer/testdata/gobuild6.input
8357:  go/src/go/printer/testdata/gobuild7.golden
8358:  go/src/go/printer/testdata/gobuild7.input
8359:  go/src/go/printer/testdata/linebreaks.golden
8360:  go/src/go/printer/testdata/linebreaks.input
8361:  go/src/go/printer/testdata/parser.go
8362:  go/src/go/printer/testdata/slow.golden
8363:  go/src/go/printer/testdata/slow.input
8364:  go/src/go/printer/testdata/statements.golden
8365:  go/src/go/printer/testdata/statements.input
8366:  go/src/go/scanner/
8367:  go/src/go/scanner/errors.go
8368:  go/src/go/scanner/example_test.go
...

8387:  go/src/go/types/assignments.go
8388:  go/src/go/types/badlinkname.go
8389:  go/src/go/types/basic.go
8390:  go/src/go/types/builtins.go
8391:  go/src/go/types/builtins_test.go
8392:  go/src/go/types/call.go
8393:  go/src/go/types/chan.go
8394:  go/src/go/types/check.go
8395:  go/src/go/types/check_test.go
8396:  go/src/go/types/commentMap_test.go
8397:  go/src/go/types/const.go
8398:  go/src/go/types/context.go
8399:  go/src/go/types/context_test.go
8400:  go/src/go/types/conversions.go
8401:  go/src/go/types/decl.go
8402:  go/src/go/types/errorcalls_test.go
8403:  go/src/go/types/errors.go
8404:  go/src/go/types/errors_test.go
8405:  go/src/go/types/errsupport.go
...

8541:  go/src/html/escape_test.go
8542:  go/src/html/example_test.go
8543:  go/src/html/fuzz_test.go
8544:  go/src/html/template/
8545:  go/src/html/template/attr.go
8546:  go/src/html/template/attr_string.go
8547:  go/src/html/template/clone_test.go
8548:  go/src/html/template/content.go
8549:  go/src/html/template/content_test.go
8550:  go/src/html/template/context.go
8551:  go/src/html/template/css.go
8552:  go/src/html/template/css_test.go
8553:  go/src/html/template/delim_string.go
8554:  go/src/html/template/doc.go
8555:  go/src/html/template/element_string.go
8556:  go/src/html/template/error.go
8557:  go/src/html/template/escape.go
...

9153:  go/src/internal/itoa/
9154:  go/src/internal/itoa/itoa.go
9155:  go/src/internal/itoa/itoa_test.go
9156:  go/src/internal/lazyregexp/
9157:  go/src/internal/lazyregexp/lazyre.go
9158:  go/src/internal/lazytemplate/
9159:  go/src/internal/lazytemplate/lazytemplate.go
9160:  go/src/internal/msan/
9161:  go/src/internal/msan/doc.go
9162:  go/src/internal/msan/msan.go
9163:  go/src/internal/msan/nomsan.go
9164:  go/src/internal/nettrace/
9165:  go/src/internal/nettrace/nettrace.go
9166:  go/src/internal/obscuretestdata/
9167:  go/src/internal/obscuretestdata/obscuretestdata.go
9168:  go/src/internal/oserror/
9169:  go/src/internal/oserror/errors.go
9170:  go/src/internal/pkgbits/
...

9177:  go/src/internal/pkgbits/reloc.go
9178:  go/src/internal/pkgbits/support.go
9179:  go/src/internal/pkgbits/sync.go
9180:  go/src/internal/pkgbits/syncmarker_string.go
9181:  go/src/internal/pkgbits/version.go
9182:  go/src/internal/platform/
9183:  go/src/internal/platform/supported.go
9184:  go/src/internal/platform/zosarch.go
9185:  go/src/internal/platform/zosarch_test.go
9186:  go/src/internal/poll/
9187:  go/src/internal/poll/copy_file_range_freebsd.go
9188:  go/src/internal/poll/copy_file_range_linux.go
9189:  go/src/internal/poll/copy_file_range_unix.go
9190:  go/src/internal/poll/errno_unix.go
9191:  go/src/internal/poll/errno_windows.go
9192:  go/src/internal/poll/error_linux_test.go
9193:  go/src/internal/poll/error_stub_test.go
9194:  go/src/internal/poll/error_test.go
9195:  go/src/internal/poll/export_linux_test.go
...

9663:  go/src/internal/trace/traceviewer/format/format.go
9664:  go/src/internal/trace/traceviewer/histogram.go
9665:  go/src/internal/trace/traceviewer/http.go
9666:  go/src/internal/trace/traceviewer/mmu.go
9667:  go/src/internal/trace/traceviewer/pprof.go
9668:  go/src/internal/trace/traceviewer/static/
9669:  go/src/internal/trace/traceviewer/static/README.md
9670:  go/src/internal/trace/traceviewer/static/trace_viewer_full.html
9671:  go/src/internal/trace/traceviewer/static/webcomponents.min.js
9672:  go/src/internal/trace/value.go
9673:  go/src/internal/trace/version/
9674:  go/src/internal/trace/version/version.go
9675:  go/src/internal/txtar/
9676:  go/src/internal/txtar/archive.go
9677:  go/src/internal/types/
9678:  go/src/internal/types/errors/
9679:  go/src/internal/types/errors/code_string.go
9680:  go/src/internal/types/errors/codes.go
9681:  go/src/internal/types/errors/codes_test.go
9682:  go/src/internal/types/errors/generrordocs.go
9683:  go/src/internal/types/testdata/
...

9695:  go/src/internal/types/testdata/check/cycles0.go
9696:  go/src/internal/types/testdata/check/cycles1.go
9697:  go/src/internal/types/testdata/check/cycles2.go
9698:  go/src/internal/types/testdata/check/cycles3.go
9699:  go/src/internal/types/testdata/check/cycles4.go
9700:  go/src/internal/types/testdata/check/cycles5.go
9701:  go/src/internal/types/testdata/check/cycles5a.go
9702:  go/src/internal/types/testdata/check/decls0.go
9703:  go/src/internal/types/testdata/check/decls1.go
9704:  go/src/internal/types/testdata/check/decls2/
9705:  go/src/internal/types/testdata/check/decls2/decls2a.go
9706:  go/src/internal/types/testdata/check/decls2/decls2b.go
9707:  go/src/internal/types/testdata/check/decls3.go
9708:  go/src/internal/types/testdata/ch...

Comment on lines +39 to +54
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./.monitoring/config/prometheus.yml:/etc/prometheus/prometheus.yml:ro
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=7d
depends_on:
- selenium-hub

grafana:
image: grafana/grafana:latest
container_name: grafana
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

1. Prometheus/grafana images use latest 📘 Rule violation ⛨ Security

docker-compose-v3-monitoring.yml pins Prometheus and Grafana to :latest, which is an implicit
floating version and can change over time. This reduces build/deployment reproducibility and
increases supply-chain risk.
Agent Prompt
## Issue description
`docker-compose-v3-monitoring.yml` uses `prom/prometheus:latest` and `grafana/grafana:latest`, which violates the requirement to avoid implicit `latest` artifacts.

## Issue Context
The compliance checklist requires pinned versions (and ideally integrity verification). For container images, pinning to a specific version tag and/or digest improves reproducibility and reduces supply-chain risk.

## Fix Focus Areas
- docker-compose-v3-monitoring.yml[39-54]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +204 to +205
/opt/bin/selenium-grid-exporter &

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

2. Exporter started twice 🐞 Bug ☼ Reliability

Hub/Router start scripts background-launch /opt/bin/selenium-grid-exporter while supervisord also
autostarts the same binary. This will cause a deterministic port 9615 bind conflict and unstable
exporter behavior (one instance immediately fails), breaking /metrics availability.
Agent Prompt
## Issue description
The exporter is launched twice (in the start script and as a supervisord program), which will race to bind port 9615 and cause one process to fail.

## Issue Context
The Hub/Router images run `start-selenium-grid-*.sh` under supervisord, and the PR also adds a dedicated supervisord program for the exporter.

## Fix Focus Areas
- Hub/start-selenium-grid-hub.sh[202-206]
- Router/start-selenium-grid-router.sh[195-199]
- Hub/selenium-grid-hub.conf[18-26]
- Router/selenium-grid-router.conf[18-26]

## How to fix
Remove the background `selenium-grid-exporter &` lines from both start scripts and rely on supervisord to manage the exporter (recommended), or alternatively remove the supervisord exporter program blocks and keep the start-script launch (but then handle restarts/logging explicitly).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread Makefile Outdated
Comment on lines +3 to +9
BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),20260404)
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.43.0)
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.43.0)
BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.43.0)
BASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.45.0-SNAPSHOT)
VERSION := $(or $(VERSION),$(VERSION),4.44.0)
VERSION := $(or $(VERSION),$(VERSION),4.43.0)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Action required

3. Pinned build date/version 🐞 Bug ⚙ Maintainability

Makefile replaces a dynamic BUILD_DATE default with a hard-coded value and changes default Selenium
versions from 4.44.0 to 4.43.0. This will unexpectedly alter image tags and build outputs for anyone
using the default Makefile targets.
Agent Prompt
## Issue description
The Makefile hardcodes BUILD_DATE and downgrades the default Selenium version variables, which changes image tags and build behavior globally.

## Issue Context
This PR is about monitoring/exporter changes; these Makefile changes affect all image builds and releases.

## Fix Focus Areas
- Makefile[1-12]

## How to fix
Revert BUILD_DATE to default to `$(CURRENT_DATE)` (or another computed value), and restore the prior default BASE_RELEASE/BASE_VERSION/BINDING_VERSION/VERSION unless this PR explicitly intends to pin/downgrade. If pinning is intended, add documentation/comments and keep the previous defaults behind overrides.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@VietND96 VietND96 force-pushed the revamp-monitoring branch 5 times, most recently from 3fa7dba to 70e97c7 Compare May 17, 2026 21:23
Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
@VietND96 VietND96 force-pushed the revamp-monitoring branch from 70e97c7 to 2a7db3b Compare May 19, 2026 20:41
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