Jay McCure (61ea7f36) at 18 Mar 04:18
Fix Errno::E2BIG in duo test selection for large diffs
This change fixes a problem where the test selection tool would crash when analyzing very large code changes.
Previously, the tool was passing the entire code diff as part of a command-line argument, but operating systems have limits on how long command arguments can be (around 128KB on Linux). When code changes were too large, this would cause the system to reject the command with an "argument too long" error.
The fix moves the large diff content from the command-line argument into an environment variable instead, since environment variables don't have the same size restrictions. The tool now passes the diff as "additional context" through this environment variable while keeping the main command argument small.
The change also adds proper error handling - if the old "argument too long" error still occurs somehow, the tool will now catch it gracefully and return a safe fallback response instead of crashing. This ensures the test selection process can continue even when dealing with very large code changes.
Tests were added to verify both the new approach works correctly and that the error handling prevents crashes.
| Before | After |
|---|---|
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
This is a good initiative, as the vast majority of failure issues is noise
Turning them off for lower level specs first would be a good iterative approach.
These are the usages for the lower level specs I can think of:
top flaky test issues?)top flaky test issues or manually created issues?)top flaky test issues?)@willmeek might think of additional use cases
Jay McCure (786f0fa6) at 18 Mar 03:12
Fix Errno::E2BIG in duo test selection for large diffs
see !227787
GitLab CI's =~ operator does partial/substring matching by default. So a regex like /gitlab-go/ matches any job name that contains gitlab-go — including gitlab-gomplate.
When gitlab-go's image already exists in the registry, it gets added to the skip list, building a regex like:
/final-images-listing|gitlab-go|gitaly|.../
This inadvertently also matches gitlab-gomplate and gitaly-init-cgroups, causing those jobs to be skipped with when: never. When those skipped jobs are then needed as dependencies (e.g. gitlab-base depends on gitlab-gomplate), the pipeline fails.
The fix adds ^ (start) and $ (end) anchors with a capturing group:
/^(final-images-listing|gitlab-go|gitaly|...)$/
Now the regex only matches a job name that is exactly one of the listed strings — gitlab-go can no longer accidentally match gitlab-gomplate. Changelog: fixed EE: true
| Before | After |
|---|---|
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #18
Hi @vishal.s.patel
LGTM, but I will let @timofurrer chime in as he has more context around the breaking change in #8204
jobs don't contain these characters
Hi @lauraionel
The tests passed in my MR so the failures are likely related to this MR
Hi @lauraionel
This does not cause the failure though. The failure is because of failed tests. If you look at the video the token is verified in the settings, but then there is an endless spinner in the bottom right corner. It would be worth checking if it occurs in main also.
This change removes the end-to-end (E2E) test metrics collection system from the GitLab JetBrains plugin project.
The system previously collected test results after running automated tests and sent performance data to an InfluxDB database for monitoring and analysis. This included tracking which tests passed or failed, how long they took to run, and other metadata about the test execution.
The removal includes:
This will remove this warning: !2339 (comment 3166938059)
The influx instance has been removed and this hasn't been working for 4+ months, prior to that, these metrics were not being used.
gitlab-org/quality/analytics#30 (comment 2841647568) gitlab-org/quality/quality-engineering/team-tasks#4325
Unreleased section of CHANGELOG.md.Jay McCure (83e347cb) at 18 Mar 00:10
chore(ci): remove e2e test metric recording
Kicking off a pipelinetier-3 to trigger CNG e2e tests
@shekharpatnaik
Jay McCure (e6c66dc2) at 17 Mar 23:42
CI: Update CNG mirror skip job regex
Fixes gitlab-org/quality/quality-engineering/team-tasks#4339
GitLab CI's =~ operator does partial/substring matching by default. So a regex like /gitlab-go/ matches any job name that contains gitlab-go — including gitlab-gomplate.
When gitlab-go's image already exists in the registry, it gets added to the skip list, building a regex like:
/final-images-listing|gitlab-go|gitaly|.../
This inadvertently also matches gitlab-gomplate and gitaly-init-cgroups, causing those jobs to be skipped with when: never. When those skipped jobs are then needed as dependencies (e.g. gitlab-base depends on gitlab-gomplate), the pipeline fails.
The fix adds ^ (start) and $ (end) anchors with a capturing group:
/^(final-images-listing|gitlab-go|gitaly|...)$/
Now the regex only matches a job name that is exactly one of the listed strings — gitlab-go can no longer accidentally match gitlab-gomplate.
Note: this will need to be backported to fix stable branches
Tested in draft MR in 18.7 branch https://gitlab.com/gitlab-org/build/CNG-mirror/-/pipelines/2391718585
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Jay McCure (b8b71990) at 17 Mar 23:23
CI: Update CNG mirror skip job regex