Page MenuHomeFreeBSD

devel/arcanist-lib: handle 'arc patch' runtime exception
ClosedPublic

Authored by jrm on Jan 6 2023, 5:43 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 12, 3:04 PM
Unknown Object (File)
Tue, Nov 12, 2:20 PM
Unknown Object (File)
Wed, Oct 30, 7:07 AM
Unknown Object (File)
Oct 5 2024, 2:02 AM
Unknown Object (File)
Oct 4 2024, 11:54 PM
Unknown Object (File)
Oct 2 2024, 6:48 AM
Unknown Object (File)
Oct 1 2024, 10:30 PM
Unknown Object (File)
Sep 29 2024, 7:50 PM
Subscribers

Details

Summary

Before patch, running arc patch could fail.

% arc patching D37961
 Exception
 preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated
 (Run with `--trace` for a full exception trace.)

With --trace:

% arc patch --trace D37961
 ARGV  /usr/local/bin/arc patch --trace D37961
  PCNTL  Unable to install signal handler, pcntl_signal() unavailable. Continuing without signal handling.
  >>> [0] (+0) <exec> $ /usr/local/bin/php -f /usr/local/lib/php/arcanist/scripts/arcanist.php -- patch --trace D37961
   ARGV  /usr/local/lib/php/arcanist/scripts/arcanist.php patch --trace D37961
    LOAD  Loaded "arcanist" from "/usr/local/lib/php/arcanist/src".
    Config: Reading user configuration file "/home/jrm/.arcrc"...
    Config: Did not find system configuration at "/etc/arcconfig".
    Working Copy: Reading .arcconfig from "/usr/ports/.arcconfig".
    Working Copy: Path "/usr/ports/devel/arcanist-lib" is part of `git` working copy "/usr/ports".
    Working Copy: Project root is at "/usr/ports".
    Config: Did not find local configuration at "/usr/ports/.git/arc/config".
    >>> [0] (+0) <http> https://reviews.freebsd.org/api/differential.querydiffs
    <<< [0] (+636) <http> 636,457 us
    >>> [1] (+637) <http> https://reviews.freebsd.org/api/user.whoami
    <<< [1] (+692) <http> 55,693 us
    >>> [2] (+693) <http> https://reviews.freebsd.org/api/differential.querydiffs
    <<< [2] (+938) <http> 244,954 us
    >>> [3] (+947) <http> https://reviews.freebsd.org/api/repository.query
    <<< [3] (+1,003) <http> 56,653 us
    >>> [4] (+1,006) <exec> $ git --version
    <<< [4] (+1,016) <exec> 9,685 us
    >>> [5] (+1,016) <exec> $ git status --porcelain=2 -z
    <<< [5] (+1,531) <exec> 514,642 us

[2023-01-06 16:45:12] EXCEPTION: (RuntimeException) preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist()
  #0 PhutilErrorHandler::handleError(integer, string, string, integer)
  #1 preg_match(string, NULL, NULL) called at [<arcanist>/src/repository/api/ArcanistGitAPI.php:603]
  #2 ArcanistGitAPI::getCanonicalRevisionName(NULL) called at [<arcanist>/src/repository/api/ArcanistGitAPI.php:1146]
  #3 ArcanistGitAPI::hasLocalCommit(NULL) called at [<arcanist>/src/workflow/ArcanistPatchWorkflow.php:433]
  #4 ArcanistPatchWorkflow::run() called at [<arcanist>/src/workflow/ArcanistPatchWorkflow.php:398]
  #5 ArcanistPatchWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
<<< [0] (+1,563) <exec> 1,563,354 us
Test Plan

run-time test resolves the error in the case above

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 48980
Build 45869: arc lint + arc unit