Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Playwright WebKit crashes on lab2 apps in Drone (frozen webkit_ubuntu20.04 build) #73740

Copy link
Copy link

Description

@stephenliang
Issue body actions

Summary

Playwright's frozen webkit_ubuntu20.04_x64_special-2092 WPE build crashes with SIGSEGV via WTFCrash() in FontCache::createFontPlatformData when loading lab2 apps (music, weblab2, pythonlab) on Drone's localhost dev build. The crash does not reproduce on:

  • The unfrozen WebKit 26.4 (revision 2272) on Ubuntu 24.04
  • Real Safari 16 via Saucelabs
  • test-studio.code.org (prod build) with the same frozen WebKit

Root Cause

The crash is a WTFCrash() assertion failure in WebKit's font fallback resolution chain. Our global font stack (fontConstants.js) declares 22 Noto Sans i18n variants as fallbacks. When combined with the dev build's larger JS bundles (54MB lab2.js), the frozen WPE build's FontCache::createFontPlatformData hits a bug during FontCascadeFonts::realizeFallbackRangesAt.

Backtrace

```
#0 WTFCrash()
#1-#4 ?? (stripped)
#5 WebCore::FontCache::createFontPlatformData(...)
#7 WebCore::FontCache::fontForFamily(...)
#11 WebCore::FontCascadeFonts::realizeFallbackRangesAt(...)
#14 WebCore::FontCascade::glyphDataForCharacter(...)
#19 WebCore::FontCascade::width(TextRun)
#28 WebCore::Document::resolveStyle(...)
#31 WebCore::Element::offsetWidth()
```

Evidence

Environment WebKit Build Bundle Result
Drone localhost `webkit_ubuntu20.04_x64_special-2092` (frozen) dev (54MB lab2.js) CRASH (SIGSEGV, WTFCrash)
Local Ubuntu 22.04 `webkit_ubuntu20.04_x64_special-2092` (frozen) dev (54MB lab2.js) CRASH (same)
Local Ubuntu 24.04 `webkit-2272` (WebKit 26.4, unfrozen) dev (54MB lab2.js) OK
test-studio `webkit_ubuntu20.04_x64_special-2092` (frozen) prod (3.9MB common) OK
Saucelabs Safari 16 Real Safari dev (54MB lab2.js) OK

Font chain that triggers the crash

```
Figtree, "Noto Sans", "Noto Sans Arabic", "Noto Sans Armenian",
"Noto Sans Bengali", "Noto Sans SC", "Noto Sans TC",
"Noto Sans Devanagari", "Noto Sans Georgian", "Noto Sans Hebrew",
"Noto Sans JP", "Noto Sans Kannada", "Noto Sans Khmer",
"Noto Sans KR", "Noto Sans Myanmar", "Noto Sans Sinhala",
"Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Thai",
"Noto Sans Thaana", "Noto Sans Math", sans-serif
```

Defined in `apps/src/fontConstants.js`. The same font chain on test-studio (prod build) does NOT crash — the dev build's larger bundles amplify the issue.

Resolution

Upgrade the Drone CI container from Ubuntu 20.04 to 24.04. This gives Playwright the unfrozen `webkit-2272` build (WebKit 26.4) which does not have this bug. Verified locally: same dev build, same font chain, no crash on Ubuntu 24.04.

Affected Tests

Playwright e2e tests for lab2 apps on WebKit in the Drone pipeline. Currently, Drone's `playwright_ui` task runs with `|| true` (non-blocking), so this doesn't block CI. Specific tests marked `test.fixme()` referencing this issue.

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.