Page MenuHomePhabricator

`arc land` Exception; null passed to `idx()`
Closed, ResolvedPublic

Description

After upgrading recently, I get a strange exception when I try to land a feature branch.

$ arc version
arcanist 8fe013b0ecb58bd38213f13064bcc918416b8d4d (28 May 2015)
libphutil c2cd90ee7aec642dcdf72de6119a9cac6e735cff (26 May 2015)

Command Trace:

$ arc land
libphutil loaded from '/Users/jgable/projects/fb/libphutil/src'.
arcanist loaded from '/Users/jgable/projects/fb/arcanist/src'.
Config: Reading user configuration file "/Users/jgable/.arcrc"...
Config: Did not find system configuration at "/etc/arcconfig".
Working Copy: Reading .arcconfig from "/Users/jgable/projects/summit/traject/.arcconfig".
Working Copy: Path "/Users/jgable/projects/summit/traject" is part of `git` working copy "/Users/jgable/projects/summit/traject".
Working Copy: Project root is at "/Users/jgable/projects/summit/traject".
Config: Did not find local configuration at "/Users/jgable/projects/summit/traject/.git/arc/config".
>>> [0] <conduit> conduit.connect() <bytes = 482>
>>> [1] <http> http://phabricator.openeducationlabs.org/api/conduit.connect
<<< [1] <http> 237,565 us
<<< [0] <conduit> 239,683 us
>>> [2] <conduit> repository.query() <bytes = 194>
>>> [3] <http> http://phabricator.openeducationlabs.org/api/repository.query
<<< [3] <http> 226,652 us
<<< [2] <conduit> 226,897 us

[2015-05-28 19:27:28] EXCEPTION: (InvalidArgumentException) Argument 1 passed to idx() must be of the type array, null given, called in /Users/jgable/projects/fb/arcanist/src/workflow/ArcanistLandWorkflow.php on line 266 and defined at [<phutil>/src/error/PhutilErrorHandler.php:200]
arcanist(head=master, ref.master=8fe013b0ecb5), phutil(head=master, ref.master=c2cd90ee7aec)
  #0 PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<phutil>/src/utils/utils.php:36]
  #1 idx(NULL, string) called at [<arcanist>/src/workflow/ArcanistLandWorkflow.php:266]
  #2 ArcanistLandWorkflow::readArguments() called at [<arcanist>/src/workflow/ArcanistLandWorkflow.php:198]
  #3 ArcanistLandWorkflow::run() called at [<arcanist>/scripts/arcanist.php:382]

arc which --trace

$ arc which --trace
libphutil loaded from '/Users/jgable/projects/fb/libphutil/src'.
arcanist loaded from '/Users/jgable/projects/fb/arcanist/src'.
Config: Reading user configuration file "/Users/jgable/.arcrc"...
Config: Did not find system configuration at "/etc/arcconfig".
Working Copy: Reading .arcconfig from "/Users/jgable/projects/summit/traject/.arcconfig".
Working Copy: Path "/Users/jgable/projects/summit/traject" is part of `git` working copy "/Users/jgable/projects/summit/traject".
Working Copy: Project root is at "/Users/jgable/projects/summit/traject".
Config: Did not find local configuration at "/Users/jgable/projects/summit/traject/.git/arc/config".
>>> [0] <conduit> conduit.connect() <bytes = 483>
>>> [1] <http> http://phabricator.openeducationlabs.org/api/conduit.connect
<<< [1] <http> 289,520 us
<<< [0] <conduit> 289,965 us
REPOSITORY
>>> [2] <conduit> repository.query() <bytes = 194>
>>> [3] <http> http://phabricator.openeducationlabs.org/api/repository.query
<<< [3] <http> 229,874 us
<<< [2] <conduit> 230,111 us
To identify the repository associated with this working copy, arc followed this process:

    Configuration value "repository.callsign" is set to "PLP".

    No repositories matched the query. Check that your configuration is
    correct, or use "repository.callsign" to select a repository explicitly.

This working copy is not associated with any repository.

>>> [4] <exec> $ git rev-parse --verify HEAD^
<<< [4] <exec> 16,758 us
>>> [5] <exec> $ git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}'
<<< [5] <exec> 11,567 us
>>> [6] <exec> $ git cat-file -t 'remotes/origin/master'
<<< [6] <exec> 12,603 us
>>> [7] <exec> $ git merge-base 'remotes/origin/master' HEAD
<<< [7] <exec> 12,822 us
>>> [8] <exec> $ git rev-parse 'HEAD'
<<< [8] <exec> 9,943 us
>>> [9] <exec> $ git log '86a79dd80db77f6a2585d821b3768d6fd121c336' --not '10519398a8b20a78514cca9c236f4e1ea72744e6' --format='%H%x01%T%x01%P%x01%at%x01%an%x01%aE%x01%s%x01%s%n%n%b%x02' --
<<< [9] <exec> 12,394 us
>>> [10] <exec> $ git log -n 1 --format=%s '10519398a8b20a78514cca9c236f4e1ea72744e6'
<<< [10] <exec> 12,431 us
COMMIT RANGE
If you run 'arc diff', changes between the commit:

    10519398a8b20a78  Confirmation modal when deleting free form tasks

...and the current working copy state will be sent to Differential, because
it is the merge-base of 'remotes/origin/master' (the Git upstream of the
current branch) HEAD.

You can see the exact changes that will be sent by running this command:

    $ git diff 10519398a8b20a78..HEAD

These commits will be included in the diff:

    86a79dd80db77f6a  Add AutoSizeTextArea core component for Reflections


>>> [11] <exec> $ git log --first-parent --format=medium '10519398a8b20a78514cca9c236f4e1ea72744e6'..'86a79dd80db77f6a2585d821b3768d6fd121c336'
<<< [11] <exec> 13,549 us
>>> [12] <conduit> differential.query() <bytes = 217>
>>> [13] <http> http://phabricator.openeducationlabs.org/api/differential.query
<<< [13] <http> 262,844 us
<<< [12] <conduit> 263,083 us
MATCHING REVISIONS
These Differential revisions match the changes in this working copy:

    D720 Add AutoSizeTextArea core component for Reflections
        Reason: Commit message for '86a79dd80db77f6a' has explicit 'Differential Revision'.

Since exactly one revision in Differential matches this working copy, it will
be updated if you run 'arc diff'.