git gclient sync problem with hunspell_dictionaries

663 views
Skip to first unread message

Marshall Greenblatt

unread,
Jul 22, 2013, 7:56:11 PM7/22/13
to chromium-dev
Hi All,

I'm using the managed git workflow and I'm trying to sync from HEAD to Chromium revision 208345:

$ gclient sync --revision 6f38331380559ffc3c4f28dddf51c5e52294eb84 --force

Most of the checkouts sync successfully but hunspell_dictionaries fails with the following error:

Error: 23> Unrecognized error, please merge or rebase manually.
23> cd /Users/marshall/code/chromium_git/src/third_party/hunspell_dictionaries && git rebase --onto a078a87551eb3e36e74cf3c550e69c4be7ad7da7 refs/remotes/origin/master

And when I run the suggested command manually:

spotmagretina:chromium_git marshall$ cd /Users/marshall/code/chromium_git/src/third_party/hunspell_dictionaries && git rebase --onto a078a87551eb3e36e74cf3c550e69c4be7ad7da7 refs/remotes/origin/master
fatal: Needed a single revision
Does not point to a valid commit: a078a87551eb3e36e74cf3c550e69c4be7ad7da7

How should I fix this problem?

Thanks,
Marshall

Marc-Antoine Ruel

unread,
Jul 22, 2013, 8:09:15 PM7/22/13
to Marshall Greenblatt, chromium-dev
Try to:
rm -rf /Users/marshall/code/chromium_git/src/third_party/hunspell_dictionaries
and sync again.

M-A


2013/7/22 Marshall Greenblatt <magree...@gmail.com>

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
 
 

Marshall Greenblatt

unread,
Jul 22, 2013, 8:46:19 PM7/22/13
to Marc-Antoine Ruel, chromium-dev
On Mon, Jul 22, 2013 at 8:09 PM, Marc-Antoine Ruel <mar...@chromium.org> wrote:
Try to:
rm -rf /Users/marshall/code/chromium_git/src/third_party/hunspell_dictionaries
and sync again.

I was having the same problem with the hunspell directory so I deleted both hunspell and hunspell_dictionaries. Now I get the following (same result with or without the --force flag):

$ rm -rf src/third_party/hunspell src/third_party/hunspell_dictionaries
$ gclient sync --revision 6f38331380559ffc3c4f28dddf51c5e52294eb84 --force --jobs=1

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress --template=/Users/marshall/code/depot_tools/git-templates https://chromium.googlesource.com/chromium/deps/hunspell.git /Users/marshall/code/chromium_git/src/third_party/_gclient_hunspell_2_PUDm' in '/Users/marshall/code/chromium_git'
Cloning into '/Users/marshall/code/chromium_git/src/third_party/_gclient_hunspell_2_PUDm'...
remote: Sending approximately 41.79 MiB ...
remote: Counting objects: 1   
remote: Counting objects: 465, done
remote: Finding sources: 100% (20/20)   
remote: Finding sources: 100% (20/20)
remote: Getting sizes: 100% (9/9)   
remote: Getting sizes: 100% (9/9)
remote: Compressing objects: 100% (73870/73870)   
remote: Compressing objects: 100% (73870/73870)
remote: Total 958 (delta 288), reused 958 (delta 288)
Receiving objects: 100% (958/958), 35.24 MiB | 2.78 MiB/s   
Receiving objects: 100% (958/958), 35.61 MiB | 2.79 MiB/s, done.
Resolving deltas: 100% (288/288)   
Resolving deltas: 100% (288/288), done.

________ running 'git checkout --quiet b7195d9c26be6dac1d236023189f366a9c750083' in '/Users/marshall/code/chromium_git/src/third_party/hunspell'
fatal: reference is not a tree: b7195d9c26be6dac1d236023189f366a9c750083
Error: Command git checkout --quiet b7195d9c26be6dac1d236023189f366a9c750083 returned non-zero exit status 128 in /Users/marshall/code/chromium_git/src/third_party/hunspell

And if I run it again:

$ gclient sync --revision 6f38331380559ffc3c4f28dddf51c5e52294eb84 --force --jobs=1

_____ src/third_party/hunspell : Attempting rebase onto b7195d9c26be6dac1d236023189f366a9c750083...

Rebase produced error output:
fatal: Needed a single revision
Does not point to a valid commit: b7195d9c26be6dac1d236023189f366a9c750083
Error: Unrecognized error, please merge or rebase manually.
cd /Users/marshall/code/chromium_git/src/third_party/hunspell && git rebase --onto b7195d9c26be6dac1d236023189f366a9c750083 refs/remotes/origin/master

$ cd /Users/marshall/code/chromium_git/src/third_party/hunspell && git rebase --onto b7195d9c26be6dac1d236023189f366a9c750083 refs/remotes/origin/master
fatal: Needed a single revision
Does not point to a valid commit: b7195d9c26be6dac1d236023189f366a9c750083

The hunspell directory contains only a .git folder and the hunspell_dictionaries directory is still missing. If I delete both directories again and run 'gclient sync --force' without specifying a revision the directories will be checked out correctly to the HEAD revision.

Rachel Blum

unread,
Jul 22, 2013, 10:26:34 PM7/22/13
to magree...@gmail.com, Marc-Antoine Ruel, chromium-dev
Hm. Interesting. The hunspell DEPS haven't changed since r206989, and the SHA you're syncing to is the equivalent of r208345

The HEAD of hunspell is git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/hunspell@206172 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
An svn find-rev for b7195d9c26be6dac1d236023189f366a9c750083 gives indeed r206172, but a git log does not show that commit - HEAD is 37403978cd
git log b7195dc26 gives _exactly_ the same entry, except for the git-svn-id. Compare:

git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/hunspell@206172 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
git-svn-id: http://src.chromium.org/svn/trunk/deps/third_party/hunspell@206172 0039d316-1c4b-4281-b951-d872f2087c98

Your hunspell SHA is remotes/origin/master, as opposed to the local master. Here's what the history looks like

remotes/origin/master b7195d
... lots of commits
|                \
|                a lot of commits that have already happened below master
|
|
master  37403978cd
... lots of commits

So it looks like there was a bad merge at some point. Strangely, after blowing away my local tree and resyncing, the "odd" origin/master is gone now, and master and origin/master agree.

I have no idea what happened, but I guess at some point history was bad and got manually fixed up?

 - rachel

Isaac Levy

unread,
Jul 23, 2013, 1:07:21 AM7/23/13
to Rachel Blum, magree...@gmail.com, Marc-Antoine Ruel, chromium-dev
During a June 25 configuration change, there was a bad push to several chromium repos:
deps/cygwin, deps/gpu/software_rendering_list, deps/hunspell, deps/hunspell_dictionaries, 
reference_builds/chrome_win, src/crypto, third_party/gles2_book, tools/build/third_party/simplejson

We had to manually clean up, which involved force pushes to the repos above.

Summary of problem:
The script which replicates svn commits to git was was changed to pull from svn://svn.chromium.org/chrome,
which has a different uuid than src.chromium.org/svn.  git-svn didn't recognize existing commits, but happily reimported everything
on a fresh commit line, created a merge commit and then pushed another fresh copy on top of everything,
with a different uuid (the 0039 one).  This evaded the safety checks in place at the time.

deps2git picks the most recent commit with a matching revision line, and it appears to have picked up the bad sha and broke .DEPS.git between 10pm PST on June 25 and 6am on June 26.

For the record, here was the two shas (for the same svn revision):
hunspell.git$ git rev-list 37403978cd | wc -l
45  [good]
hunspell.git$ git rev-list b7195d9c26 | wc -l
152 [bad]


Nice sleuthing :-)
-Isaac

Isaac Levy

unread,
Jul 23, 2013, 1:52:04 AM7/23/13
to Isaac Levy, Rachel Blum, magreenblatt, Marc-Antoine Ruel, chromium-dev
Sorry -- this was June 24th, not June 25.

Marshall Greenblatt

unread,
Jul 23, 2013, 11:04:49 AM7/23/13
to Isaac Levy, Rachel Blum, Marc-Antoine Ruel, chromium-dev
Thanks everyone! In that case I'll just move along to a newer revision and hope for better luck picking revisions in the future :-)

Satoru Takabayashi

unread,
Aug 20, 2013, 9:29:00 PM8/20/13
to magree...@gmail.com, Isaac Levy, Rachel Blum, Marc-Antoine Ruel, chromium-dev
To bisect an issue, I'm trying to sync my client to r208345 (6f38331380559ffc3c4f28dddf51c5e52294eb84) but failing:

% GYP_GENERATOR_FLAGS='config=Release use_deps=1' GYP_GENERATORS=ninja GYP_DEFINES="remove_webcore_debug_symbols=1 disable_nacl=1 chromeos=1 enable_svg=1 remoting=0  component=shared_library"  gclient sync -r src@6f38331380559ffc3c4f28dddf51c5e52294eb84 --jobs=1
<snip>
Does not point to a valid commit: b7195d9c26be6dac1d236023189f366a9c750083
Error: Unrecognized error, please merge or rebase manually.
cd /usr/local/google/home/satorux/chrome3/src/third_party/hunspell && git rebase --onto b7195d9c26be6dac1d236023189f366a9c750083 refs/remotes/origin/master

Any way to work around this issue? "b7195d9c26be6dac1d236023189f366a9c750083" indicates that the issue seemed to be caused by the git repos glitch Isaac mentioned.

Satoru Takabayashi

unread,
Aug 20, 2013, 9:45:37 PM8/20/13
to magree...@gmail.com, Isaac Levy, Rachel Blum, Marc-Antoine Ruel, chromium-dev
FWIW, syncing to a bit later revision (r218591) worked. Hopefully, I can start bisecting from this revision.

% GYP_GENERATOR_FLAGS='config=Release use_deps=1' GYP_GENERATORS=ninja GYP_DEFINES="remove_webcore_debug_symbols=1 disable_nacl=1 chromeos=1 enable_svg=1 remoting=0  component=shared_library"  gclient sync -r src@5dc00f0979e1b020f8bf541cf681e7bb0ab8ada7 --jobs=1
Reply all
Reply to author
Forward
0 new messages