Frontend requests can exhaust 128 MB while loading the Google Fonts catalog

Đang mở
#4,679 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Sôi nổi
Công nghệ
php, wordpress
Lĩnh vực
frontend, performance

Hướng nghiên cứu

Start with globals/utilities.php around neve_get_google_fonts() (line ~400 in v4.1.4, ~444-453 currently) and trace who calls it from inc/views/font_manager.php (init(), add_body_variants(), enqueue_google_font()), loaded via inc/core/core_loader.php. The report gives no reproduction steps, so the first task is measuring memory before and after theme module init on a 128 MB frontend request. Done means a reproducible memory measurement and a clear root cause; existing tests are in tests/test-neve-file-guards.php.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug-report bug-report-triage crash-report

Summary

A frontend request is expected to complete within the configured PHP memory limit. In the reported Neve 4.1.4 environment, PHP instead terminated the request with an allowed-memory-size fatal while loading the Google Fonts catalog. The affected page could not render. Telemetry recorded repeated failures on two sites using a 128 MB limit.

Customer context

Product / area: Neve frontend typography loading
Version: Neve 4.1.4
Environment: WordPress 7.1.3, PHP 8.3.36, 128 MB PHP memory limit
Integration / third party: Unknown from available evidence
Reported error / symptom: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097152 bytes) at globals/utilities.php:400
Impact: 120 frontend crash occurrences across two sites from 2026-10-24 through 2026-10-27.

Reproduction notes

Production telemetry reports the frontend fatal at the Google Fonts catalog include in Neve 4.1.4, occurring 120 times across two sites with WordPress 7.1.3, PHP 8.3.36, and a 128 MB limit. The exact page, theme typography settings, active plugins, and pre-include memory usage were not provided. No local runtime reproduction was performed.

Diagnosis

Conclusion

The report is consistent with Neve's frontend typography initialization allocating the Google Fonts catalog while the request has insufficient remaining memory. The telemetry reports 120 occurrences across two sites, and the affected-version source eagerly reads the catalog during normal theme initialization. This supports a recurring product allocation path, although the memory already consumed before Neve reaches it is unknown.

Where this likely occurs
  • inc/core/core_loader.php — Core_Loader::define_modules() approx. lines 83–89 includes Views\Font_Manager in the loaded feature set.
  • inc/views/font_manager.php — Font_Manager::init() and Font_Manager::add_body_variants() approx. lines 90–104 call neve_get_google_fonts( true ) during initialization. The latter path is present in the affected v4.1.4 tag.
  • globals/utilities.php — neve_get_google_fonts() at v4.1.4 approx. line 400 directly includes globals/google-fonts.php; the current implementation at lines 444–453 still reads and returns that catalog through neve_require_array().
  • inc/views/font_manager.php — Font_Manager::enqueue_google_font() approx. lines 209–216 also retrieves the catalog when registering a buffered font.
  • The v4.1.4 catalog file globals/google-fonts.php is 107,148 bytes. Production telemetry identifies the catalog include location, but does not provide memory measurements before that operation.
  • Closed Neve issue #4556 documents a similar catalog-loading memory fatal. It was closed after four occurrences on one site; the current report has 120 occurrences across two sites. It is closed and does not count as an open issue tracking this report.
Engineering notes

The font manager is part of the theme's normal module initialization, so the catalog read is not limited to Customizer requests. The failure occurs when the allocation crosses the configured request limit; the available evidence does not identify what consumed the preceding memory or establish that Neve accounts for the full request footprint. Current source retains the catalog-loading path, although its helper checks file presence and validates the returned value.

Test coverage status

tests/test-neve-file-guards.php covers successful Google Fonts loading, missing catalog handling, and invalid filter results, but no memory-limit assertion was found. Typography e2e coverage exists in e2e-tests/specs/customizer/typography/font-family.spec.ts; no relevant frontend memory coverage was found during inspection.

What to verify or explore next
  • May be worth capturing memory usage immediately before and after theme module initialization on a 128 MB frontend request.
  • If reproducible, checking whether the fatal occurs with no configured Google font and whether it correlates with other plugins or request types may clarify the trigger.
  • May be worth comparing the same request profile on the affected v4.1.4 tag and a current release, since the catalog-loading path remains present.
Unknowns / follow-up

The telemetry lacks active-plugin details, page type, selected-font configuration, memory usage before theme initialization, and a local reproduction. PHP CLI was unavailable in the inspection environment, so the catalog's runtime memory delta was not measured.

Confidence

Confidence: 80/100

Crash 2 recurred 120 times across two sites, and Neve 4.1.4 loads the Google Fonts catalog during frontend initialization; this allocation path remains in current source. The similar issue #4556 is closed, and the newer telemetry provides materially wider recurrence evidence. Crashes 1 and 3 are the same historical autoloader defect, guarded from Neve 4.2.11 onward and tracked in open issue #4605; both affected versions predate that released guard.

Crash telemetry

Occurrences 120
Distinct sites 2
First seen 2026-10-24 23:38 UTC
Last seen 2026-10-27 22:46 UTC
Crash location product:globals/utilities.php:400
Request context frontend
Inside Themeisle SDK no
Product versions 4.1.4
WP versions 7.1.3
PHP versions 8.3.36
SDK versions 3.3.67

Source: automated crash report — neve, fingerprint e5f17586a3d134bc5431629a38b91a43
Generated by bug-report-triage (ID: bug-report-triage_6ae6d5eb37cda9.34524256)

Ngôn ngữ chính
PHP
Star
307
Fork
89
Merge trung bình
3 ngày 6 giờ
Pull request đã merge (30 ngày)
24

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Codeinwp/neve

Tất cả issue của Codeinwp/neve

Issue tương tự

Thêm issue về PHP

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.