Closed
Bug 1718540
Opened 4 years ago
Closed 4 years ago
moz-phab submit crashes when updating a differential without commit author information
Categories
(Conduit :: moz-phab, defect)
Conduit
moz-phab
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: emilio, Assigned: emilio)
References
Details
Attachments
(1 file)
https://phabricator.services.mozilla.com/D116943 was initially submitted without author information. I applied that locally and made a commit with the right author information and moz-phab submit <commit> --single failed with:
$ moz-phab HEAD --single
Submitting 1 commit for review
IndexError: list index out of range
Run moz-phab again with '--trace' to show debugging output
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
Output of the same command with --trace:
$ moz-phab HEAD --single --trace
DEBUG 2021-06-28 17:01:54,257 MozPhab (0.1.99)
DEBUG 2021-06-28 17:01:54,257 found git repo in /home/emilio/src/moz/gecko-4
DEBUG 2021-06-28 17:01:54,257 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 rev-parse --git-common-dir
DEBUG 2021-06-28 17:01:54,261 /home/emilio/src/moz/gecko/.git
DEBUG 2021-06-28 17:01:54,261 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 --version
DEBUG 2021-06-28 17:01:54,265 git version 2.31.1
DEBUG 2021-06-28 17:01:54,265 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 config --list
DEBUG 2021-06-28 17:01:54,268 https://phabricator.services.mozilla.com/api/user.whoami {}
DEBUG 2021-06-28 17:01:54,971 https://bugzilla.mozilla.org/rest/whoami {'url': 'https://bugzilla.mozilla.org/rest/whoami', 'method': 'GET', 'headers': {'X-PHABRICATOR-TOKEN': 'cli-XXXX', 'User-Agent': 'MozPhab/0.1.99'}}
DEBUG 2021-06-28 17:01:55,713 BMOAPIErrori: Bugzilla Error: HTTP Error 400: Bad Request
DEBUG 2021-06-28 17:01:55,715 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 help --all
DEBUG 2021-06-28 17:01:55,721 See 'git help <command>' to read about a specific subcommand
Main Porcelain Commands
add Add file contents to the index
am Apply a series of patches from a mailbox
archive Create an archive of files from a named tree
bisect Use binary search to find the commit that introduced a bug
branch List, create, or delete branches
bundle Move objects and refs by archive
checkout Switch branches or restore working tree files
cherry-pick Apply the changes introduced by some existing commits
citool Graphical alternative to git-commit
clean Remove untracked files from the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
describe Give an object a human readable name based on an available ref
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
format-patch Prepare patches for e-mail submission
gc Cleanup unnecessary files and optimize the local repository
gitk The Git repository browser
grep Print lines matching a pattern
gui A portable graphical interface to Git
init Create an empty Git repository or reinitialize an existing one
log Show commit logs
maintenance Run tasks to optimize Git repository data
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
notes Add or inspect object notes
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
range-diff Compare two commit ranges (e.g. two versions of a branch)
rebase Reapply commits on top of another base tip
reset Reset current HEAD to the specified state
restore Restore working tree files
revert Revert some existing commits
rm Remove files from the working tree and from the index
shortlog Summarize 'git log' output
show Show various types of objects
sparse-checkout Initialize and modify the sparse-checkout
stash Stash the changes in a dirty working directory away
status Show the working tree status
submodule Initialize, update or inspect submodules
switch Switch branches
tag Create, list, delete or verify a tag object signed with GPG
worktree Manage multiple working trees
Ancillary Commands / Manipulators
config Get and set repository or global options
fast-export Git data exporter
fast-import Backend for fast Git data importers
filter-branch Rewrite branches
mergetool Run merge conflict resolution tools to resolve merge conflicts
pack-refs Pack heads and tags for efficient repository access
prune Prune all unreachable objects from the object database
reflog Manage reflog information
remote Manage set of tracked repositories
repack Pack unpacked objects in a repository
replace Create, list, delete refs to replace objects
Ancillary Commands / Interrogators
annotate Annotate file lines with commit information
blame Show what revision and author last modified each line of a file
bugreport Collect information for user to file a bug report
count-objects Count unpacked number of objects and their disk consumption
difftool Show changes using common diff tools
fsck Verifies the connectivity and validity of the objects in the database
gitweb Git web interface (web frontend to Git repositories)
help Display help information about Git
instaweb Instantly browse your working repository in gitweb
merge-tree Show three-way merge without touching index
rerere Reuse recorded resolution of conflicted merges
show-branch Show branches and their commits
verify-commit Check the GPG signature of commits
verify-tag Check the GPG signature of tags
whatchanged Show logs with difference each commit introduces
Interacting with Others
cvsexportcommit Export a single commit to a CVS checkout
cvsimport Salvage your data out of another SCM people love to hate
cvsserver A CVS server emulator for Git
imap-send Send a collection of patches from stdin to an IMAP folder
quiltimport Applies a quilt patchset onto the current branch
request-pull Generates a summary of pending changes
send-email Send a collection of patches as emails
svn Bidirectional operation between a Subversion repository and Git
Low-level Commands / Manipulators
apply Apply a patch to files and/or to the index
checkout-index Copy files from the index to the working tree
commit-graph Write and verify Git commit-graph files
commit-tree Create a new commit object
hash-object Compute object ID and optionally creates a blob from a file
index-pack Build pack index file for an existing packed archive
merge-file Run a three-way file merge
merge-index Run a merge for files needing merging
mktag Creates a tag object with extra validation
mktree Build a tree-object from ls-tree formatted text
multi-pack-index Write and verify multi-pack-indexes
pack-objects Create a packed archive of objects
prune-packed Remove extra objects that are already in pack files
read-tree Reads tree information into the index
symbolic-ref Read, modify and delete symbolic refs
unpack-objects Unpack objects from a packed archive
update-index Register file contents in the working tree to the index
update-ref Update the object name stored in a ref safely
write-tree Create a tree object from the current index
Low-level Commands / Interrogators
cat-file Provide content or type and size information for repository objects
cherry Find commits yet to be applied to upstream
diff-files Compares files in the working tree and the index
diff-index Compare a tree to the working tree or index
diff-tree Compares the content and mode of blobs found via two tree objects
for-each-ref Output information on each ref
for-each-repo Run a Git command on a list of repositories
get-tar-commit-id Extract commit ID from an archive created using git-archive
ls-files Show information about files in the index and the working tree
ls-remote List references in a remote repository
ls-tree List the contents of a tree object
merge-base Find as good common ancestors as possible for a merge
name-rev Find symbolic names for given revs
pack-redundant Find redundant pack files
rev-list Lists commit objects in reverse chronological order
rev-parse Pick out and massage parameters
show-index Show packed archive index
show-ref List references in a local repository
unpack-file Creates a temporary file with a blob's contents
var Show a Git logical variable
verify-pack Validate packed Git archive files
Low-level Commands / Syncing Repositories
daemon A really simple server for Git repositories
fetch-pack Receive missing objects from another repository
http-backend Server side implementation of Git over HTTP
send-pack Push objects over Git protocol to another repository
update-server-info Update auxiliary info file to help dumb servers
Low-level Commands / Internal Helpers
check-attr Display gitattributes information
check-ignore Debug gitignore / exclude files
check-mailmap Show canonical names and email addresses of contacts
check-ref-format Ensures that a reference name is well formed
column Display data in columns
credential Retrieve and store user credentials
credential-cache Helper to temporarily store passwords in memory
credential-store Helper to store credentials on disk
fmt-merge-msg Produce a merge commit message
interpret-trailers Add or parse structured information in commit messages
mailinfo Extracts patch and authorship from a single e-mail message
mailsplit Simple UNIX mbox splitter program
merge-one-file The standard helper program to use with git-merge-index
patch-id Compute unique ID for a patch
sh-i18n Git's i18n setup code for shell scripts
sh-setup Common Git shell script setup code
stripspace Remove unnecessary whitespace
External commands
cache
cinnabar
cinnabar-helper
cl
clang-format
crrev-parse
drover
find-releases
footers
freeze
gs
hyper-blame
map
map-branches
mark-merge-base
migrate-default-branch
nav-downstream
nav-upstream
new-branch
number
rebase-update
remote-hg
rename-branch
reparent-branch
retry
review
revise
runhooks
squash-branch
thaw
upstream-diff
Command aliases
ci commit -s
fup !git fetch upstream master && git rebase upstream/master
lol log --oneline --graph
DEBUG 2021-06-28 17:01:55,722 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 diff-index HEAD
DEBUG 2021-06-28 17:01:55,783 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 symbolic-ref HEAD
DEBUG 2021-06-28 17:01:55,787 refs/heads/phab-D117187
DEBUG 2021-06-28 17:01:55,787 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 log --reverse --ancestry-path --quiet '--format=%aD%n%an%n%ae%n%p%n%T%n%H%n%s%n%n%b--155ba0944897433a92ea154d5a4b8899--\n' 'HEAD^..HEAD'
DEBUG 2021-06-28 17:01:55,792 Mon, 28 Jun 2021 17:01:05 +0200
jaygala260
jaygala260@gmail.com
e1968a0cc75d2
2cda789798ae2d5d2f2fd2e40420bc5628a22d16
14d9e8573e040e0a5f2a476a848bf79a8707a32f
Bug 1713521 - layout/base/nsFrameTraversal.cpp: do not use 'else' after 'break'. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D116943
--155ba0944897433a92ea154d5a4b8899--
WARNING 2021-06-28 17:01:55,795 Submitting 1 commit for review
DEBUG 2021-06-28 17:01:55,795 https://phabricator.services.mozilla.com/api/differential.revision.search {'constraints': {'ids': [116943]}, 'attachments': {'reviewers': True}}
DEBUG 2021-06-28 17:01:56,551 https://phabricator.services.mozilla.com/api/differential.diff.search {'constraints': {'phids': ['PHID-DIFF-cmoemb2yipelsg3ulzuq']}, 'attachments': {'commits': True}}
DEBUG 2021-06-28 17:01:57,262 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 gc --auto --quiet
DEBUG 2021-06-28 17:01:57,266 $ git -c i18n.logOutputEncoding=UTF-8 -c i18n.commitEncoding=UTF-8 checkout --quiet phab-D117187
ERROR 2021-06-28 17:01:57,572 Traceback (most recent call last):
File "/home/emilio/.local/lib/python3.9/site-packages/mozphab/mozphab.py", line 84, in main
args.func(repo, args)
File "/home/emilio/.local/lib/python3.9/site-packages/mozphab/commands/submit.py", line 458, in submit
show_commit_stack(commits, validate=True)
File "/home/emilio/.local/lib/python3.9/site-packages/mozphab/commands/submit.py", line 191, in show_commit_stack
sha1_changed = commit["node"] != diff_commits[0]["identifier"]
IndexError: list index out of range
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
diff_commits is empty in sha1_changed = commit["node"] != diff_commits[0]["identifier"]
| Assignee | ||
Comment 1•4 years ago
|
||
Updated•4 years ago
|
Assignee: nobody → emilio
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•