Frontend requests can exhaust 128 MB while loading the Google Fonts catalog
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
- 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ả
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 includesViews\Font_Managerin the loaded feature set.inc/views/font_manager.php—Font_Manager::init()andFont_Manager::add_body_variants()approx. lines 90–104 callneve_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 includesglobals/google-fonts.php; the current implementation at lines 444–453 still reads and returns that catalog throughneve_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.phpis 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
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Codeinwp/neve
-
customer report feature-request-triage
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug-report bug-report-triage
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug-report bug-report-triage crash-report
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Enhance home screen and front page customization options in Neve FreeCó thể đã có người làm @faisalahammad đã nhận 18 ngày trước. Đang mởfeature-request-triage
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Add basic Social Icons component to free Header and Footer builderCó thể đã có người làm @faisalahammad đã nhận 18 ngày trước. Đang mởfeature-request-triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Codeinwp/neve
Issue tương tự
-
Captured slideshow pass overwrites the route path, aborting compose with a rebind() TypeErrorĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Automattic/blocks-engine#5003 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
from-cloud mythic tracked
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
MythicalLTD/FeatherPanel#459 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: PostgreSQL backend: Queue.remove() / Job.remove() never emit the QueueEvents "removed" eventCó thể đã có người làm @1AbdullahButt đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
taskforcesh/bullmq#5085 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
shukiv/jabali-panel#2423 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100