Page MenuHomePhabricator

arc diff is going to infinite loop of calling differential.parsecommitmessage API method
Closed, InvalidPublic

Description

When I'm trying to make a diff with Arcanist it goes to an infinite loop and requesting Phabricator api method differential.parsecommitmessage. See the reproduce steps below.

❯ g checkout -b T57-some-task
Switched to a new branch 'T57-some-task'
❯ git add .
❯ git commit -m 'in progress'
[T57-some-task 7bf0f28] in progress
 1 file changed, 17 insertions(+), 13 deletions(-)

❯ arc diff --trace
libphutil loaded from '/Users/mbektimirov/_dev/arcanist_home/libphutil/src'.
arcanist loaded from '/Users/mbektimirov/_dev/arcanist_home/arcanist/src'.
Config: Reading user configuration file "/Users/mbektimirov/.arcrc"...
Config: Did not find system configuration at "/etc/arcconfig".
Working Copy: Reading .arcconfig from "/Users/mbektimirov/_dev/_work/project_root/.arcconfig".
Working Copy: Path "/Users/mbektimirov/_dev/_work/project_root" is part of `git` working copy "/Users/mbektimirov/_dev/_work/project_root".
Working Copy: Project root is at "/Users/mbektimirov/_dev/_work/project_root".
Config: Did not find local configuration at "/Users/mbektimirov/_dev/_work/project_root/.git/arc/config".
>>> [0] <conduit> user.whoami() <bytes = 117>
>>> [1] <http> https://phabricator_url.com/api/user.whoami
<<< [1] <http> 1,998,738 us
<<< [0] <conduit> 1,999,660 us
>>> [2] <exec> $ git diff --no-ext-diff --no-textconv --raw 'HEAD' --
>>> [3] <exec> $ git ls-files --others --exclude-standard
<<< [3] <exec> 26,712 us
<<< [2] <exec> 31,683 us
>>> [4] <exec> $ git diff-files --name-only
<<< [4] <exec> 10,210 us
>>> [5] <event> diff.didCollectChanges <listeners = 0>
<<< [5] <event> 88 us
>>> [6] <exec> $ git rev-parse --verify HEAD^
<<< [6] <exec> 10,060 us
>>> [7] <exec> $ git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}'
<<< [7] <exec> 9,240 us
>>> [8] <exec> $ git rev-parse --git-dir
<<< [8] <exec> 8,243 us
>>> [9] <exec> $ git cat-file -t 'origin/master'
<<< [9] <exec> 9,974 us
>>> [10] <exec> $ git merge-base 'origin/master' HEAD
<<< [10] <exec> 25,655 us
>>> [11] <exec> $ git rev-parse 'HEAD'
<<< [11] <exec> 8,651 us
>>> [12] <exec> $ git log --first-parent --format=medium '1432a5afd2ab89364b77263312f5bb700748c4cc'..'7bf0f28f97125b87f839066d9fcfa447aa81d935'
<<< [12] <exec> 30,896 us
>>> [13] <conduit> differential.query() <bytes = 378>
>>> [14] <http> https://phabricator_url.com/api/differential.query
<<< [14] <http> 193,650 us
<<< [13] <conduit> 193,928 us
>>> [15] <exec> $ git log '7bf0f28f97125b87f839066d9fcfa447aa81d935' --not '1432a5afd2ab89364b77263312f5bb700748c4cc' --format='%H%x01%T%x01%P%x01%at%x01%an%x01%aE%x01%s%x01%s%n%n%b%x02' --
<<< [15] <exec> 33,638 us
>>> [16] <conduit> differential.parsecommitmessage() <bytes = 175>
>>> [17] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [17] <http> 199,132 us
<<< [16] <conduit> 199,517 us
>>> [18] <conduit> differential.parsecommitmessage() <bytes = 592>
>>> [19] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [19] <http> 242,154 us
<<< [18] <conduit> 242,640 us
>>> [20] <conduit> differential.parsecommitmessage() <bytes = 666>
>>> [21] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [21] <http> 233,442 us
<<< [20] <conduit> 233,911 us
>>> [22] <conduit> differential.parsecommitmessage() <bytes = 543>
>>> [23] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [23] <http> 210,515 us
<<< [22] <conduit> 210,978 us
>>> [24] <conduit> differential.parsecommitmessage() <bytes = 845>
>>> [25] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [25] <http> 267,901 us
<<< [24] <conduit> 268,450 us
>>> [26] <conduit> differential.parsecommitmessage() <bytes = 691>
>>> [27] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [27] <http> 218,527 us
<<< [26] <conduit> 218,972 us
>>> [28] <conduit> differential.parsecommitmessage() <bytes = 465>
>>> [29] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [29] <http> 252,124 us
<<< [28] <conduit> 252,681 us
>>> [30] <conduit> differential.parsecommitmessage() <bytes = 1062>
>>> [31] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [31] <http> 239,513 us
<<< [30] <conduit> 239,976 us
>>> [32] <conduit> differential.parsecommitmessage() <bytes = 729>
>>> [33] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [33] <http> 254,415 us
<<< [32] <conduit> 254,870 us
>>> [34] <conduit> differential.parsecommitmessage() <bytes = 1272>
>>> [35] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [35] <http> 303,792 us
<<< [34] <conduit> 304,282 us
>>> [36] <conduit> differential.parsecommitmessage() <bytes = 1494>
>>> [37] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [37] <http> 264,883 us
<<< [36] <conduit> 265,365 us
>>> [38] <conduit> differential.parsecommitmessage() <bytes = 894>
>>> [39] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [39] <http> 294,291 us
<<< [38] <conduit> 294,723 us
>>> [40] <conduit> differential.parsecommitmessage() <bytes = 1254>
>>> [41] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [41] <http> 461,795 us
<<< [40] <conduit> 462,237 us
>>> [42] <conduit> differential.parsecommitmessage() <bytes = 1207>
>>> [43] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [43] <http> 334,105 us
<<< [42] <conduit> 334,581 us
>>> [44] <conduit> differential.parsecommitmessage() <bytes = 865>
>>> [45] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [45] <http> 366,259 us
<<< [44] <conduit> 366,801 us
>>> [46] <conduit> differential.parsecommitmessage() <bytes = 790>
>>> [47] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [47] <http> 408,499 us
<<< [46] <conduit> 408,923 us
>>> [48] <conduit> differential.parsecommitmessage() <bytes = 587>
>>> [49] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [49] <http> 480,729 us
<<< [48] <conduit> 481,140 us
>>> [50] <conduit> differential.parsecommitmessage() <bytes = 1108>
>>> [51] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [51] <http> 549,968 us
<<< [50] <conduit> 550,431 us
>>> [52] <conduit> differential.parsecommitmessage() <bytes = 983>
>>> [53] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [53] <http> 678,642 us
<<< [52] <conduit> 679,165 us
>>> [54] <conduit> differential.parsecommitmessage() <bytes = 646>
>>> [55] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [55] <http> 1,129,615 us
<<< [54] <conduit> 1,130,095 us
>>> [56] <conduit> differential.parsecommitmessage() <bytes = 281>
>>> [57] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [57] <http> 1,274,687 us
<<< [56] <conduit> 1,275,165 us
>>> [58] <conduit> differential.parsecommitmessage() <bytes = 298>
>>> [59] <http> https://phabricator_url.com/api/differential.parsecommitmessage
<<< [59] <http> 1,166,713 us
<<< [58] <conduit> 1,167,096 us

Event Timeline

mbektimirov renamed this task from `arc diff` is going to infinite loop of calling `differential.parsecommitmessage` to arc diff is going to infinite loop of calling differential.parsecommitmessage.Nov 1 2015, 2:42 PM
mbektimirov renamed this task from arc diff is going to infinite loop of calling differential.parsecommitmessage to arc diff is going to infinite loop of calling differential.parsecommitmessage API method.
mbektimirov updated the task description. (Show Details)

I'm not able to reproduce anything based on the steps you've provided.

What versions of Phabricator/Arcanist/Libphutil are you running? Does the issue reproduce on this server?

chad claimed this task.

Closing due to lack of feedback. Please follow the bug reporting guide and provide all steps to reproduce when you can: http://phab-dev.family.local/book/phabcontrib/article/bug_reports/