Opened 3 years ago
Closed 3 years ago
#57883 closed defect (bug) (reported-upstream)
block_core_comment_template_render_comments() fatal error
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | normal | Version: | 6.1 |
| Component: | Comments | Keywords: | has-patch gutenberg-merge has-screenshots |
| Focuses: | Cc: |
Description (last modified by )
I got this error.
PHP Fatal error: Uncaught ArgumentCountError: xxx arguments are required, 1 given in /wp-includes/blocks/comment-template.php:65
This error is when the following conditions are met.
- WP: 6.1.1
- Theme: Twenty Twenty Three
- Permalink setting: Post name
- And, WP blog have comments depth more than option the "Enable threaded (nested) comments xx levels deep"
(In other words, when "Enable threaded (nested) comments 2 levels deep" and WP blog have comments 3 depth)
This error code below
wp-includes/blocks/comment-template.php Line-65
$block_content .= sprintf( $inner_content );
Details of the cause
For example, using Japanese as the permalink, the permalink would look like this:
https://example.com/example-%e6%8a%95%e7%a8%bf
And $inner_content contains html with percent characters(post permalink).
sprintf does the formatting but gives an error because there are no arguments.
Reference:
- Fixed in Gutenberg PR 49054
Attachments (2)
Change History (20)
This ticket was mentioned in PR #4232 on WordPress/wordpress-develop by @aristath.
3 years ago
#3
- Keywords has-patch added; needs-patch removed
Trac ticket: https://core.trac.wordpress.org/ticket/57883
(Original ticket: https://core.trac.wordpress.org/ticket/57919)
@audrasjb commented on PR #4232:
3 years ago
#5
Hey @aristath thanks for the PR but AFAIK, this file shouldn't be edited directly in Core. This probably has to be fixed on Gutenberg's side only and merged into Core via a package update.
@aristath commented on PR #4232:
3 years ago
#6
I wasn't clear on the process now that we're on RC, that's why I created the separate PR for Core... Just in case it's too late for automated package updates (there's a lot of confusion around what goes where, until when etc)
@Mamaduka commented on PR #4232:
3 years ago
#7
The changes will be part of the package update. We can close this PR and related Trac ticket.
#8
@
3 years ago
- Description modified (diff)
- Keywords gutenberg-merge added
Bug introduced in #56467 / [54335] in a @worpdress package update during 6.1.0 Beta 2 cycle (back in September 2022).
With 6.2 in the RC phase, RC guidelines limit commits to only bugs and regressions introduced in 6.2 https://make.wordpress.org/core/2023/03/09/wordpress-6-2-release-candidate-phase/.
For the remainder of the cycle, only two types of tickets may be placed on/remain on the 6.2 milestone:
- Regressions: bugs that have been introduced during the WordPress 6.2 development cycle, either to existing or new features.
- Test suite expansion: tests can be committed at any time without regard to code or string freezes. This can cover either new or existing features.
That said, this is a fatal error. Since it's a fatal error, let's discuss if it should be fixed during RC or punted to 6.2.1.
Some thoughts:
- The code change is minor with little to no risk.
- But why hasn't been reported sooner? This makes me think it's a highly specific use case, meaning it could be okay to punt it to 6.2.1.
#9
@
3 years ago
Strictly speaking per the RC guidelines, this should be punted to 6.2.1. But as I noted in comment 8, this is a fatal, though likely a specific use case.
@audrasjb what do you think?
#10
@
3 years ago
Given it's a known fatal error and as we have a patch for this I'd try to include it in RC2.
We can still revert in RC3 if needed, and punt to 6.2.1 but in my opinion, it's worth trying to remove the error now.
This ticket was mentioned in Slack in #core by hellofromtonya. View the logs.
3 years ago
#15
@
3 years ago
- Keywords needs-testing needs-unit-tests added
- Milestone changed from 6.2 to 6.2.1
After discussing with Core Committers in Make/Core slack, there's consensus for the following:
- Punt this fix to 6.2.1
- Add tests in Gutenberg and Core for this fix
And for the question of if a fatal error from a previous release can be considered during a current RC cycle:
When in a RC cycle, fatal errors from a previous release can be considered on a case-by-case basis with open committer discussions (like the one started here today). BUT serious consideration should be given to whether that fatal error fix should go into the RC including minimum criteria of must-have automated tests and the risk assessments of the code changes.
Punting this ticket to 6.2.1.
Its fix will be part of a @wordpress packages update commit as the file in question is maintained in Gutenberg and not in Core.
Though reported upstream, keeping this ticket open due to the fatal error for tracking and awareness.
Great catch!
Core should be scanned for similar cases as there are several other places where
sprintf()and (similar functions, e.g.printf()) is called with only one argument (this can be done in the scope of this ticket).Regarding the
comment-template.phpfile, I think the fix should be submitted to the Gutenberg repo instead and then backported to Core.