Skip to content

Revert "Add WebKit to e2e test matrix (#37298)"#37315

Merged
techknowlogick merged 4 commits intogo-gitea:mainfrom
silverwind:revert-webkit-e2e
Apr 20, 2026
Merged

Revert "Add WebKit to e2e test matrix (#37298)"#37315
techknowlogick merged 4 commits intogo-gitea:mainfrom
silverwind:revert-webkit-e2e

Conversation

@silverwind
Copy link
Copy Markdown
Member

@silverwind silverwind commented Apr 20, 2026

This reverts commit 6f76121.

WebKit on Linux has a long history of flakiness in Playwright CI runs,
with the exact "WebKit encountered an internal error" class of failures
repeatedly reported and closed without a real fix (typically as
stale/no-repro, or worked around by retries). See:

- microsoft/playwright#34450
- microsoft/playwright#35773
- microsoft/playwright#35870
- microsoft/playwright#35293
- microsoft/playwright#38838

Keep chromium and firefox in the e2e matrix.

Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Apr 20, 2026
@silverwind
Copy link
Copy Markdown
Member Author

If we have MacOS runner resources, it may be an option as WebKit seems much more stable on MacOS than Linux, otherwise I opt for the revert.

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Apr 20, 2026
@lunny lunny added the skip-changelog This PR is irrelevant for the (next) changelog, for example bug fixes for unreleased features. label Apr 20, 2026
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Apr 20, 2026
@lunny lunny added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Apr 20, 2026
@techknowlogick techknowlogick enabled auto-merge (squash) April 20, 2026 18:10
@techknowlogick techknowlogick merged commit b6ea666 into go-gitea:main Apr 20, 2026
26 checks passed
@GiteaBot GiteaBot added this to the 1.27.0 milestone Apr 20, 2026
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Apr 20, 2026
@silverwind silverwind deleted the revert-webkit-e2e branch April 20, 2026 20:38
@silverwind
Copy link
Copy Markdown
Member Author

For future reference, I made Claude reproduce this failure inside docker, here is its verdict:


Reproduced on iteration 4/30. Root cause is visible in browser stderr right before the playwright error:

pw:browser [pid=43942][err] malloc_consolidate(): unaligned fastbin chunk detected
pw:browser [pid=43942][err] ERROR: WebKit encountered an internal error. This is a WebKit bug.
pw:browser [pid=43942][err] /home/pwuser/webkit/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp(668)
                            : void WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired()

What happened: The WebContent (WebProcess) died from glibc heap corruption (malloc_consolidate: unaligned fastbin chunk detected). Playwright saw the kill, hit WebLoaderStrategy::internallyFailedLoadTimerFired on the browser side, and surfaced that as "WebKit encountered an internal error" on the next page.goto. The specific test is incidental — CI hit it on login.test.ts, this run caught it on issue-project.test.ts.

This confirms the class of bug cited in the revert commit: a genuine WebKit C++ heap bug, not a gitea-side problem. The revert was the right call.

Harness

  • Worktree: /tmp/gitea-webkit-repro (branch webkit-repro, cherry-pick of 6f761219b2)
  • Dockerfile + run-repro.sh: /tmp/webkit-repro-harness/
  • Image: gitea-webkit-repro (Ubuntu 24.04, Go 1.26.2, Node 24, pnpm 10.33.0)
  • Output: /tmp/webkit-repro-out/run-004.log has the full crash, trace artefacts in run-004.e2e-output/
  • Repro rate: ~1 in 4 iterations here (arm64 + orbstack). Rerun with docker run --rm --shm-size=2g --cpus=4 --ulimit core=-1 -v /tmp/gitea-webkit-repro:/src -v /tmp/webkit-repro-out:/out gitea-webkit-repro 30.

silverwind added a commit to silverwind/gitea that referenced this pull request Apr 20, 2026
…-lang

* origin/main:
  Update go js dependencies (go-gitea#37312)
  Update GitHub Actions to latest major versions (go-gitea#37313)
  Revert "Add WebKit to e2e test matrix (go-gitea#37298)" (go-gitea#37315)
  Add `form-fetch-action` to some forms, fix "fetch action" resp bug (go-gitea#37305)
  Move heatmap to first-party code (go-gitea#37262)
  Use updated yaml fields for snapcraft (go-gitea#37318)
  Remove dead code identified by `deadcode` tool (go-gitea#37271)
  Enable strict TypeScript, add `errorMessage` helper (go-gitea#37292)
  Fix vite manifest update masking build errors (go-gitea#37279)
  bump snapcraft base (go-gitea#37301)

# Conflicts:
#	web_src/js/modules/errors.ts
silverwind added a commit to 6543-forks/gitea that referenced this pull request Apr 21, 2026
…n-better

* origin/main: (645 commits)
  When the requested arch rpm is missing fall back to noarch (go-gitea#37236)
  Fix `relative-time` error and improve global error handler (go-gitea#37241)
  Enhance styling in actions page (go-gitea#37323)
  fix(oauth): Error on auth sources with spaces (go-gitea#37327)
  Fix actions concurrency groups cross-branch leak (go-gitea#37311)
  Fix bug when accessing user badges (go-gitea#37321)
  Fix AppFullLink (go-gitea#37325)
  Update go js dependencies (go-gitea#37312)
  Update GitHub Actions to latest major versions (go-gitea#37313)
  Revert "Add WebKit to e2e test matrix (go-gitea#37298)" (go-gitea#37315)
  Add `form-fetch-action` to some forms, fix "fetch action" resp bug (go-gitea#37305)
  Move heatmap to first-party code (go-gitea#37262)
  Use updated yaml fields for snapcraft (go-gitea#37318)
  Remove dead code identified by `deadcode` tool (go-gitea#37271)
  Enable strict TypeScript, add `errorMessage` helper (go-gitea#37292)
  Fix vite manifest update masking build errors (go-gitea#37279)
  bump snapcraft base (go-gitea#37301)
  Add WebKit to e2e test matrix (go-gitea#37298)
  Don't add useless labels which will bother changelog generation (go-gitea#37267)
  Fix Repository transferring page (go-gitea#37277)
  ...

# Conflicts:
#	options/locale/locale_en-US.ini
#	templates/package/content/debian.tmpl
zjjhot added a commit to zjjhot/gitea that referenced this pull request Apr 22, 2026
* main: (25 commits)
  Add URL to `Learn more about blocking a user` (go-gitea#37355)
  fix: use TriggerEvent instead of Event in workflow runs API response for scheduled runs (go-gitea#37288)
  Add event.schedule context for schedule actions task (go-gitea#37320)
  Fix typos (go-gitea#37346)
  Fix an issue where changing an organization’s visibility caused problems when users had forked its repositories. (go-gitea#37324)
  Fail vite build on rolldown warnings via NODE_ENV=test (go-gitea#37270)
  Use modern "git update-index --cacheinfo" syntax to support more file names (go-gitea#37338)
  Fix URL related escaping for oauth2 (go-gitea#37334)
  When the requested arch rpm is missing fall back to noarch (go-gitea#37236)
  Fix `relative-time` error and improve global error handler (go-gitea#37241)
  Enhance styling in actions page (go-gitea#37323)
  fix(oauth): Error on auth sources with spaces (go-gitea#37327)
  Fix actions concurrency groups cross-branch leak (go-gitea#37311)
  Fix bug when accessing user badges (go-gitea#37321)
  Fix AppFullLink (go-gitea#37325)
  Update go js dependencies (go-gitea#37312)
  Update GitHub Actions to latest major versions (go-gitea#37313)
  Revert "Add WebKit to e2e test matrix (go-gitea#37298)" (go-gitea#37315)
  Add `form-fetch-action` to some forms, fix "fetch action" resp bug (go-gitea#37305)
  Move heatmap to first-party code (go-gitea#37262)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. skip-changelog This PR is irrelevant for the (next) changelog, for example bug fixes for unreleased features. type/testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants