Skip to content

phpcbf slow execution with unfixable comment #3148

Description

@alechko

Describe the bug
I've worked on a Drupal 7 project, and some files were taking 15+ seconds to run phpcbf. After some investigation I've narrowed the issue to a mis-formatted comment that is not fixable by phpcbf.

I've created 2 sample files (~1000 lines) with the same content except for one comment at the beginning of the test-slow.php file. The normal file takes <1sec to complete and the slow ~15sec.

When having phpcbf run on every file save (with vscode) the long execution time prevents the file from being saved causing serious delay in workflow.

Code sample
test-normal.php
test-slow.php

Custom ruleset
Drupal Code Standard

To reproduce
Steps to reproduce the behavior:

  1. Download the test files called test-normal.php and test-slow.php:
    1.1 curl -O https://gist.githubusercontent.com/alechko/394a97649460929a5347d8149f4e1f86/raw/276543c6864cf7b3af6e407188fd2a2989df0b76/test-normal.php
    1.2 curl -O https://gist.githubusercontent.com/alechko/394a97649460929a5347d8149f4e1f86/raw/276543c6864cf7b3af6e407188fd2a2989df0b76/test-slow.php
  2. Install Drupal CS
  3. Run phpcbf --standard=Drupal test-normal.php and phpcbf --standard=Drupal test-slow.php
phpcbf --standard=Drupal test-normal.php

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/Users/alex/dev/php/test-normal.php        1      1052
----------------------------------------------------------------------
A TOTAL OF 1 ERROR WERE FIXED IN 1 FILE
----------------------------------------------------------------------

Time: 886ms; Memory: 20MB




phpcbf --standard=Drupal test-slow.php

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/Users/alex/dev/php/test-slow.php          FAILED TO FIX
----------------------------------------------------------------------
A TOTAL OF 0 ERRORS WERE FIXED IN 1 FILE
----------------------------------------------------------------------
PHPCBF FAILED TO FIX 1 FILE
----------------------------------------------------------------------

Time: 15.21 secs; Memory: 22MB


Expected behavior
phpcbf execution time should not be delayed because of mis-formatted comment, the comments could be simply ignored.

Versions (please complete the following information):

  • OS: MacOS 10.15.7
  • PHP: 7.3.11
  • PHPCS: 3.5.6
  • Standard: Drupal

Note:

phpcs does not have the this issue, if you run phpcs --standard=Drupal on both files the execution time with be almost identical (<1 sec), only phpcbf has this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions