[ANNOUNCE] Gerrit 2.7

2,780 views
Skip to first unread message

Dave Borowitz

unread,
Sep 18, 2013, 6:40:39 PM9/18/13
to repo-discuss
I am pleased to announce Gerrit Code Review 2.7

Release notes:


This is a new stable release. It is something of a transitional release between 2.6 and the major new features coming in 2.8. It includes some additional project configuration options (copyMaxScore for labels, per-project commentlinks and themes), more avatars, better binary support, some new REST APIs, and a bundle of bugfixes.

Download:

Edwin Kempin

unread,
Sep 19, 2013, 1:12:10 AM9/19/13
to Dave Borowitz, repo-discuss
Hey, that's great news that 2.7 is now released :-)
Dave, thanks for driving this release!


2013/9/19 Dave Borowitz <dbor...@google.com>

--
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en
 
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Luca Milanesio

unread,
Sep 19, 2013, 2:10:11 AM9/19/13
to Dave Borowitz, repo-discuss, Patrick Renaud
Wow, that's fantastic news ! Congratulations :-)

The per-project comment links will enable as well a more flexible hooks-its (Jira, BugZilla, Rational) integration.

It means each project can define their restriction and issue links pattern.

Very very good :-)

Luca
---------
Sent from my iPhone
Luca Milanesio
Skype: lucamilanesio

--

Deniz Türkoglu

unread,
Sep 19, 2013, 2:31:15 AM9/19/13
to Dave Borowitz, repo-discuss
Great work. Is this2.7rc5 tagged final?

I blame it on the phone for not checking myself :)

-deniz
--

Edwin Kempin

unread,
Sep 19, 2013, 2:36:43 AM9/19/13
to Deniz Türkoglu, Dave Borowitz, repo-discuss



2013/9/19 Deniz Türkoglu <de...@spotify.com>

Great work. Is this2.7rc5 tagged final?
No, there are couple of fixes on top:

$ git log --oneline v2.7-rc5...v2.7
01cea13 Set version to 2.7
a32c3ce Merge branch 'stable-2.6' into stable-2.7
6b12b35 Fix installation of plugins
3347628 Merge "Merge branch 'stable-2.6' into stable-2.7" into stable-2.7
88976d4 Merge branch 'stable-2.6' into stable-2.7
72fa3c2 Fix change stuck in SUBMITTED state but actually merged
ce4d28c Merge "Mark ALREADY_MERGED changes as merged in the DB and run hooks" into stable-2.7
640b95c Merge "NPE when deleting draft patch set when previous draft already deleted" into stable-2.6
5ff6ebe Remove documentation links from admin page
357b5be NPE when deleting draft patch set when previous draft already deleted
f9f46bd Fix example for 'test-submit rule' in Prolog cookbook
cdff6cf Mark ALREADY_MERGED changes as merged in the DB and run hooks

Dave Borowitz

unread,
Sep 19, 2013, 10:20:49 AM9/19/13
to Edwin Kempin, repo-discuss, Deniz Türkoglu

Yes, I was able to be convinced that the last few fixes were low risk and high reward enough to make it in without waiting yet another week for a new rc.

Dariusz Luksza

unread,
Sep 19, 2013, 10:24:26 AM9/19/13
to Dave Borowitz, repo-discuss
Yeah! That's great news! 2.7 finally out! :D

btw. What are the plans about cutting out 2.8-rc0?
> --
> --
> To unsubscribe, email repo-discuss...@googlegroups.com
> More info at http://groups.google.com/group/repo-discuss?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "Repo and Gerrit Discussion" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to repo-discuss...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



--
Best regards

GSM: +49 017 445 41235
Blog: http://luksza.org
LinkedIn: http://www.linkedin.com/in/dariuszluksza

David Pursehouse

unread,
Sep 19, 2013, 8:48:04 PM9/19/13
to repo-d...@googlegroups.com
On 09/19/2013 11:24 PM, Dariusz Luksza wrote:
> Yeah! That's great news! 2.7 finally out! :D
>
> btw. What are the plans about cutting out 2.8-rc0?
>

There are some features still under development that I think ought to be
in a more completed state before we make stable-2.8:

- New change screen
- UI actions
- Secondary index and additional query operators


There's also the inline editing feature, but that seems to still be in
early stages and might be better deferred to 2.9?

Does the end of next month sound reasonable for 2.8-rc0?

Shawn Pearce

unread,
Sep 20, 2013, 12:16:11 AM9/20/13
to David Pursehouse, repo-discuss
On Thu, Sep 19, 2013 at 5:48 PM, David Pursehouse
<david.pu...@sonymobile.com> wrote:
> On 09/19/2013 11:24 PM, Dariusz Luksza wrote:
>>
>> Yeah! That's great news! 2.7 finally out! :D
>>
>> btw. What are the plans about cutting out 2.8-rc0?
>>
>
> There are some features still under development that I think ought to be in
> a more completed state before we make stable-2.8:
>
> - New change screen
> - UI actions
> - Secondary index and additional query operators

Ack, this makes sense to me.

> There's also the inline editing feature, but that seems to still be in early
> stages and might be better deferred to 2.9?

Given how little time I have been able to (recently) devote to the 3
topics you suggested above, I fear this wouldn't be ready in time for
2.8 and maybe has to defer until 2.9.

> Does the end of next month sound reasonable for 2.8-rc0?

Maybe? I am having trouble devoting sufficient time to the 3 topics
above for 2.8, and I will be out of the office 3 out of 4 weeks in
October (1 week vacation, 1 week in office, 1 week vacation, 1 week at
EclipseCon).

Fortunately there are others that can help. :-)

Annulen

unread,
Sep 20, 2013, 5:56:37 AM9/20/13
to repo-d...@googlegroups.com

There are some features still under development that I think ought to be
in a more completed state before we make stable-2.8:

- New change screen

Will it be possible to configure Gerrit to use old change screen via preferences?

David Pursehouse

unread,
Sep 20, 2013, 5:59:40 AM9/20/13
to repo-d...@googlegroups.com
As far as I know the plan is to make the new one default (a change has
already been uploaded [1] to do that) and remove the old one completely.

[1] https://gerrit-review.googlesource.com/#/c/49601/

Edwin Kempin

unread,
Sep 20, 2013, 8:54:16 AM9/20/13
to Shawn Pearce, David Pursehouse, repo-discuss



2013/9/20 Shawn Pearce <s...@google.com>
I vote for releasing Gerrit 2.8 without waiting for any features to be ready (even
if Shawn would be fully available). Sure the new change screen, UI actions and
additional query operators are cool and I want to have them rather sooner than
later, but for 2.6 we already have almost 1000 commits [1] that for sure make a
great release.
What happened to the idea to release more often?
If at the end of October the listed features are ready we can simply release them
as Gerrit 2.9 then.

[1]
$ git rev-list --no-merges --count v2.7...HEAD
980

Edwin Kempin

unread,
Sep 20, 2013, 9:00:09 AM9/20/13
to David Pursehouse, Repo and Gerrit Discussion



2013/9/20 David Pursehouse <david.pu...@sonymobile.com>

On 09/20/2013 06:56 PM, Annulen wrote:

    There are some features still under development that I think ought
    to be
    in a more completed state before we make stable-2.8:

    - New change screen


Will it be possible to configure Gerrit to use old change screen via
preferences?


As far as I know the plan is to make the new one default (a change has already been uploaded [1] to do that) and remove the old one completely.
I would prefer to have at least one release where the new change screen
is the default, but users can still choose to use the old screen (e.g. by a
user preference). This would make the roll out much easier. I'm a fan of the
new change screen but I'm afraid that we have many users that are just so
much used to the old change screen that they will complain about the redesign.
Having a release with both screens gives our users some time to get used
to the new screen and they are in control about the moment when they want
to switch. Once this release is out, as a first thing we can delete the old screen.
 

[1] https://gerrit-review.googlesource.com/#/c/49601/


--
--
To unsubscribe, email repo-discuss+unsubscribe@googlegroups.com

More info at http://groups.google.com/group/repo-discuss?hl=en

--- You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss+unsubscribe@googlegroups.com.

Dariusz Luksza

unread,
Sep 20, 2013, 10:31:38 AM9/20/13
to Edwin Kempin, Shawn Pearce, David Pursehouse, repo-discuss
On Fri, Sep 20, 2013 at 2:54 PM, Edwin Kempin <edwin....@gmail.com> wrote:
>> Fortunately there are others that can help. :-)
>
> I vote for releasing Gerrit 2.8 without waiting for any features to be ready
> (even
> if Shawn would be fully available). Sure the new change screen, UI actions
> and
> additional query operators are cool and I want to have them rather sooner
> than
> later, but for 2.6 we already have almost 1000 commits [1] that for sure
> make a
> great release.
> What happened to the idea to release more often?
> If at the end of October the listed features are ready we can simply release
> them
> as Gerrit 2.9 then.
>
> [1]
> $ git rev-list --no-merges --count v2.7...HEAD
> 980

+1 for releasing 2.8 as early as possible. For me it will make porting
my changes (including auth backend and secure store) in our gerrit
"fork" much easier...

Luca Milanesio

unread,
Sep 20, 2013, 10:41:32 AM9/20/13
to repo-discuss, Edwin Kempin, Dariusz Luksza, Shawn Pearce, David Pursehouse
I would need some review on the auto-reload for the replication plugin though:
https://gerrit-review.googlesource.com/#/c/49820/

It is a plugin anyway, and can be even plugged later on ;-) ... it would be nice to have anyway this change merged in the standard distribution of Gerrit 2.8.

Luca.

Patrick Renaud

unread,
Sep 20, 2013, 10:46:02 AM9/20/13
to Dariusz Luksza, Edwin Kempin, Shawn Pearce, David Pursehouse, repo-discuss
True, but it would be even better if Dariusz's auth backend changes were integrated in 2.8 in the first place instead of having to maintain a fork ;-)

-Patrick

Dariusz Luksza

unread,
Sep 20, 2013, 10:48:08 AM9/20/13
to Patrick Renaud, Edwin Kempin, Shawn Pearce, David Pursehouse, repo-discuss
True, it would be best if this could be merged into 2.8. Thanks
Patrick for pointing that out!

Deniz Türkoglu

unread,
Sep 20, 2013, 11:13:22 AM9/20/13
to Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
I agree with Edwin on both; lets first make it possible to use current change screen but have all the great features on c2 and work only on c2, this should encourage migration.

As for 2.8, I would say lets have regular cuts, and cuts are not based on feature but time. This will avoid the gaps we have been having with the recents releases, such as 2.6 :)

All in all, great mail Edwin, huge +1 :)
To unsubscribe, email repo-discuss...@googlegroups.com

More info at http://groups.google.com/group/repo-discuss?hl=en
 
---
You received this message because you are subscribed to the Google Groups "Repo and Gerrit Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to repo-discuss...@googlegroups.com.

Shawn Pearce

unread,
Sep 20, 2013, 11:17:46 AM9/20/13
to Deniz Türkoglu, Edwin Kempin, repo-discuss, David Pursehouse

OK, should we add a preference for which ChangeScreen the user wants, and then cut 2.8-rc0 at the end of this month?

Edwin Kempin

unread,
Sep 20, 2013, 11:20:26 AM9/20/13
to Shawn Pearce, Deniz Türkoglu, repo-discuss, David Pursehouse



2013/9/20 Shawn Pearce <s...@google.com>

OK, should we add a preference for which ChangeScreen the user wants, and then cut 2.8-rc0 at the end of this month? 

+1 :-)
 

Jeff

unread,
Sep 20, 2013, 11:38:18 AM9/20/13
to repo-d...@googlegroups.com, Shawn Pearce, Deniz Türkoglu, David Pursehouse
Likewise.  I think the ability to gently nudge users into the new ChangeScreen will be extremely beneficial. 

Deniz Türkoglu

unread,
Sep 20, 2013, 12:50:23 PM9/20/13
to Edwin Kempin, Shawn Pearce, repo-discuss, David Pursehouse
/me likes :)

+1

Mark Derricutt

unread,
Sep 20, 2013, 7:35:59 PM9/20/13
to Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
Edwin,

Is there a screenshot ( or better, can someone do a quick screencast ) showing the new change screen in action?

Maybe get some public viewing of the changes before it lands on a release will at least lower any shock one may have?

Mark


--
Mark Derricutt — twitter — podcast — blog — google+

signature.asc

Dave Borowitz

unread,
Sep 20, 2013, 7:39:52 PM9/20/13
to Mark Derricutt, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
It's been live on googlesource.com for a while now, but it's hidden. Go to any change page and change /c/ to /c2/, e.g.:

You'll have the new change screen until you reload the page.

As discussed one of the things we want to do soon is make this a user preference so you can turn it on from your settings page.

Jonathan Nieder

unread,
Sep 20, 2013, 7:42:05 PM9/20/13
to Mark Derricutt, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
Mark Derricutt wrote:

> Is there a screenshot ( or better, can someone do a quick screencast
> ) showing the new change screen in action?

You can try it out by viewing any change on gerrit-review[1] or
android-review[2] and then changing the /c/ in the URL to /c2/.

Feel free to play with it and report any problems you run into. It is
generally usable, but it is still missing some features (e.g., adding
reviewers to a change). Issue 2065[3] lists blockers before it can
become the default change screen.

[1] https://gerrit-review.googlesource.com/
[2] https://android-review.googlesource.com/
[3] https://code.google.com/p/gerrit/issues/detail?id=2065

Mark Derricutt

unread,
Sep 20, 2013, 8:20:19 PM9/20/13
to Jonathan Nieder, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
On 21/09/2013, at 11:42 AM, Jonathan Nieder <j...@google.com> wrote:

You can try it out by viewing any change on gerrit-review[1] or
android-review[2] and then changing the /c/ in the URL to /c2/.

Awesome, that should have been an alternative question - if it was live anywhere one could see. Cheers..

My immediate thoughts, whilst 99% positive are "where the heck did unified diff go".

I remember seeing on the list awhile a discussion on maybe removing it, but I'm terribly sad to see it go, even tho it was sometimes a bit flaky and generated strange diffs regarding indents/whitespace.

On the whole I think it looks good - much more usable, love the JS regex search!  Altho, pressing ? brings up that regex search when viewing a change, which overrides the general ? hotkey help that I was expecting to find...

Look forward to running this in our prod...
signature.asc

Ian Kumlien

unread,
Sep 21, 2013, 9:36:56 AM9/21/13
to Mark Derricutt, Jonathan Nieder, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
Hi, 

Upgraded the production system to gerrit 2.7 and i have found some oddities in "gerrit gc".

First of all, when running gerrit gc, i had two projects fail - one of the failures was due to a "idx" file not existing?
(It was there all the time, this is a local filesystem, must have been a locking issue)

Stacktrace:
org.eclipse.jgit.api.errors.JGitInternalException: Could not get repository statistics
        at org.eclipse.jgit.api.GarbageCollectCommand.getStatistics(GarbageCollectCommand.java:145)
        at com.google.gerrit.server.git.GarbageCollection.run(GarbageCollection.java:83)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.runGC(GarbageCollectionCommand.java:97)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.access$500(GarbageCollectionCommand.java:41)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand$1.run(GarbageCollectionCommand.java:67)
        at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:429)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:337)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.io.FileNotFoundException: /path/to/git.git/objects/pack/pack-<sha1 id>.idx (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:146)
        at org.eclipse.jgit.internal.storage.file.PackIndex.open(PackIndex.java:94)
        at org.eclipse.jgit.internal.storage.file.PackFile.idx(PackFile.java:167)
        at org.eclipse.jgit.internal.storage.file.PackFile.getIndex(PackFile.java:193)
        at org.eclipse.jgit.internal.storage.file.GC.getStatistics(GC.java:867)
        at org.eclipse.jgit.api.GarbageCollectCommand.getStatistics(GarbageCollectCommand.java:143)
        ... 13 more
[2013-09-21 13:09:15,595] ERROR com.google.gerrit.server.git.GarbageCollection : [gerrit/project]
org.eclipse.jgit.api.errors.JGitInternalException: Could not get repository statistics
        at org.eclipse.jgit.api.GarbageCollectCommand.getStatistics(GarbageCollectCommand.java:145)
        at com.google.gerrit.server.git.GarbageCollection.run(GarbageCollection.java:83)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.runGC(GarbageCollectionCommand.java:97)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.access$500(GarbageCollectionCommand.java:41)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand$1.run(GarbageCollectionCommand.java:67)
        at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:429)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:337)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.io.FileNotFoundException: /path/to/git.git/objects/pack/pack-<sha1 id>.idx (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:146)
        at org.eclipse.jgit.internal.storage.file.PackIndex.open(PackIndex.java:94)
        at org.eclipse.jgit.internal.storage.file.PackFile.idx(PackFile.java:167)
        at org.eclipse.jgit.internal.storage.file.PackFile.getIndex(PackFile.java:193)
        at org.eclipse.jgit.internal.storage.file.GC.getStatistics(GC.java:867)
        at org.eclipse.jgit.api.GarbageCollectCommand.getStatistics(GarbageCollectCommand.java:143)
        ... 13 more
---

The other project failed due to missing commit (no problem in git fsck --full --strict or any combination of those, and no problem with git gc).
This seems to fail because some projects has reflogs referencing sha1:s that doesn't exist in the history anymore - IMHO that check is... wrong ;)

Stacktrace:
org.eclipse.jgit.api.errors.JGitInternalException: Garbage collection failed.
        at org.eclipse.jgit.api.GarbageCollectCommand.call(GarbageCollectCommand.java:126)
        at com.google.gerrit.server.git.GarbageCollection.run(GarbageCollection.java:86)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.runGC(GarbageCollectionCommand.java:97)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.access$500(GarbageCollectionCommand.java:41)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand$1.run(GarbageCollectionCommand.java:67)
        at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:429)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:337)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown <sha1>
        at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:148)
        at org.eclipse.jgit.lib.ObjectReader$1.open(ObjectReader.java:302)
        at org.eclipse.jgit.revwalk.RevWalk$2.next(RevWalk.java:921)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1698)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.preparePack(PackWriter.java:797)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.preparePack(PackWriter.java:760)
        at org.eclipse.jgit.internal.storage.file.GC.writePack(GC.java:676)
        at org.eclipse.jgit.internal.storage.file.GC.repack(GC.java:531)
        at org.eclipse.jgit.internal.storage.file.GC.gc(GC.java:164)
        at org.eclipse.jgit.api.GarbageCollectCommand.call(GarbageCollectCommand.java:123)
        ... 13 more
[2013-09-21 13:29:51,887] ERROR com.google.gerrit.server.git.GarbageCollection : [gerrit/otherproject]
org.eclipse.jgit.api.errors.JGitInternalException: Garbage collection failed.
        at org.eclipse.jgit.api.GarbageCollectCommand.call(GarbageCollectCommand.java:126)
        at com.google.gerrit.server.git.GarbageCollection.run(GarbageCollection.java:86)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.runGC(GarbageCollectionCommand.java:97)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand.access$500(GarbageCollectionCommand.java:41)
        at com.google.gerrit.sshd.commands.GarbageCollectionCommand$1.run(GarbageCollectionCommand.java:67)
        at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:429)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:337)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown <sha1>
        at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:148)
        at org.eclipse.jgit.lib.ObjectReader$1.open(ObjectReader.java:302)
        at org.eclipse.jgit.revwalk.RevWalk$2.next(RevWalk.java:921)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.findObjectsToPack(PackWriter.java:1698)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.preparePack(PackWriter.java:797)
        at org.eclipse.jgit.internal.storage.pack.PackWriter.preparePack(PackWriter.java:760)
        at org.eclipse.jgit.internal.storage.file.GC.writePack(GC.java:676)
        at org.eclipse.jgit.internal.storage.file.GC.repack(GC.java:531)
        at org.eclipse.jgit.internal.storage.file.GC.gc(GC.java:164)
        at org.eclipse.jgit.api.GarbageCollectCommand.call(GarbageCollectCommand.java:123)
        ... 13 more
---

I also noticed that when generating bitmaps there is a *excessive* amount of jvm gc:s happening:

Example log (from tomcat):
1320.781: [GC1320.782: [ParNew: 1380160K->153344K(1380160K), 0.2298820 secs] 5056063K->3869406K(104704256K) icms_dc=0 , 0.2301780 secs] [Times: user=3.73 sys=0.05, real=0.23 secs] 
1471.043: [GC1471.043: [ParNew: 1380029K->153344K(1380160K), 0.2679620 secs] 5096091K->4100437K(104704256K) icms_dc=0 , 0.2681890 secs] [Times: user=4.19 sys=0.10, real=0.27 secs] 
1542.515: [GC1542.516: [ParNew: 1380160K->153344K(1380160K), 0.2627880 secs] 5327253K->4306313K(104704256K) icms_dc=0 , 0.2633440 secs] [Times: user=4.21 sys=0.09, real=0.26 secs] 
1545.538: [GC1545.538: [ParNew: 1380160K->88186K(1380160K), 0.2737180 secs] 5533129K->4377169K(104704256K) icms_dc=0 , 0.2739750 secs] [Times: user=4.18 sys=0.07, real=0.28 secs] 
1550.536: [GC1550.536: [ParNew: 1315002K->153344K(1380160K), 0.2370440 secs] 5603985K->4483835K(104704256K) icms_dc=0 , 0.2373110 secs] [Times: user=3.81 sys=0.05, real=0.24 secs] 
1553.485: [GC1553.485: [ParNew: 1380160K->78514K(1380160K), 0.2314320 secs] 5710651K->4559499K(104704256K) icms_dc=0 , 0.2316610 secs] [Times: user=3.70 sys=0.07, real=0.23 secs] 
1555.728: [GC1555.728: [ParNew: 1305330K->153216K(1380160K), 0.2025610 secs] 5786315K->4651872K(104704256K) icms_dc=0 , 0.2027740 secs] [Times: user=3.28 sys=0.04, real=0.20 secs] 
1557.994: [GC1557.994: [ParNew: 1380032K->64458K(1380160K), 0.2071860 secs] 5878688K->4709353K(104704256K) icms_dc=0 , 0.2073750 secs] [Times: user=3.11 sys=0.04, real=0.21 secs] 
1560.292: [GC1560.292: [ParNew: 1291274K->53666K(1380160K), 0.1826900 secs] 5936169K->4698562K(104704256K) icms_dc=0 , 0.1828850 secs] [Times: user=3.01 sys=0.04, real=0.19 secs] 
1562.535: [GC1562.535: [ParNew: 1280482K->71476K(1380160K), 0.1950230 secs] 5925378K->4716372K(104704256K) icms_dc=0 , 0.1952950 secs] [Times: user=3.23 sys=0.02, real=0.19 secs] 
1564.786: [GC1564.786: [ParNew: 1298292K->89356K(1380160K), 0.1977960 secs] 5943188K->4734251K(104704256K) icms_dc=0 , 0.1980530 secs] [Times: user=3.22 sys=0.03, real=0.19 secs] 
1567.017: [GC1567.017: [ParNew: 1316172K->91015K(1380160K), 0.1937090 secs] 5961067K->4757855K(104704256K) icms_dc=0 , 0.1939670 secs] [Times: user=3.13 sys=0.03, real=0.19 secs] 
1569.288: [GC1569.288: [ParNew: 1317831K->93008K(1380160K), 0.1955290 secs] 5984671K->4781681K(104704256K) icms_dc=0 , 0.1957790 secs] [Times: user=3.16 sys=0.03, real=0.19 secs] 
1571.757: [GC1571.757: [ParNew: 1319696K->99250K(1380160K), 0.1888940 secs] 6008369K->4809934K(104704256K) icms_dc=0 , 0.1890910 secs] [Times: user=3.05 sys=0.03, real=0.19 secs] 
1574.012: [GC1574.012: [ParNew: 1326066K->77382K(1380160K), 0.2274480 secs] 6036750K->4832260K(104704256K) icms_dc=0 , 0.2276520 secs] [Times: user=3.60 sys=0.02, real=0.23 secs] 
1576.254: [GC1576.254: [ParNew: 1304198K->79011K(1380160K), 0.1876020 secs] 6059076K->4858452K(104704256K) icms_dc=0 , 0.1878010 secs] [Times: user=2.96 sys=0.05, real=0.19 secs] 
1578.753: [GC1578.753: [ParNew: 1305827K->94852K(1380160K), 0.1984410 secs] 6085268K->4903707K(104704256K) icms_dc=0 , 0.1986620 secs] [Times: user=3.14 sys=0.04, real=0.20 secs] 
1581.302: [GC1581.302: [ParNew: 1321668K->122270K(1380160K), 0.1966900 secs] 6130523K->4953851K(104704256K) icms_dc=0 , 0.1969330 secs] [Times: user=3.21 sys=0.04, real=0.20 secs] 
1584.107: [GC1584.107: [ParNew: 1349086K->115678K(1380160K), 0.2060810 secs] 6180667K->5018698K(104704256K) icms_dc=0 , 0.2063060 secs] [Times: user=3.24 sys=0.03, real=0.21 secs] 
1588.901: [GC1588.901: [ParNew: 1342494K->153343K(1380160K), 0.2531600 secs] 6245514K->5273219K(104704256K) icms_dc=0 , 0.2533910 secs] [Times: user=3.54 sys=0.07, real=0.25 secs] 
1591.502: [GC1591.502: [ParNew: 1380159K->71318K(1380160K), 0.2506810 secs] 6500035K->5344417K(104704256K) icms_dc=0 , 0.2509070 secs] [Times: user=4.07 sys=0.06, real=0.25 secs] 
1593.930: [GC1593.931: [ParNew: 1298134K->97634K(1380160K), 0.2262930 secs] 6571233K->5370733K(104704256K) icms_dc=0 , 0.2266180 secs] [Times: user=3.73 sys=0.02, real=0.22 secs] 
1596.442: [GC1596.443: [ParNew: 1324450K->51793K(1380160K), 0.1991380 secs] 6597549K->5395554K(104704256K) icms_dc=0 , 0.1993760 secs] [Times: user=2.97 sys=0.06, real=0.20 secs] 
1598.719: [GC1598.719: [ParNew: 1278609K->81034K(1380160K), 0.1944510 secs] 6622370K->5424795K(104704256K) icms_dc=0 , 0.1946770 secs] [Times: user=3.18 sys=0.01, real=0.20 secs] 
1601.018: [GC1601.018: [ParNew: 1307850K->86027K(1380160K), 0.1987880 secs] 6651611K->5456051K(104704256K) icms_dc=0 , 0.1990590 secs] [Times: user=3.14 sys=0.06, real=0.20 secs] 
1603.428: [GC1603.428: [ParNew: 1312843K->92052K(1380160K), 0.2015200 secs] 6682867K->5487045K(104704256K) icms_dc=0 , 0.2017600 secs] [Times: user=3.29 sys=0.03, real=0.20 secs] 
1606.626: [GC1606.626: [ParNew: 1318868K->153130K(1380160K), 0.2055180 secs] 6713861K->5589772K(104704256K) icms_dc=0 , 0.2057900 secs] [Times: user=3.21 sys=0.04, real=0.21 secs] 
1610.071: [GC1610.071: [ParNew: 1379946K->131346K(1380160K), 0.2277310 secs] 6816588K->5720469K(104704256K) icms_dc=0 , 0.2279570 secs] [Times: user=3.21 sys=0.07, real=0.23 secs] 
1614.606: [GC1614.607: [ParNew: 1358162K->153339K(1380160K), 0.2403230 secs] 6947285K->5961585K(104704256K) icms_dc=0 , 0.2405260 secs] [Times: user=3.20 sys=0.05, real=0.24 secs] 
1619.137: [GC1619.137: [ParNew: 1380155K->153298K(1380160K), 0.2441350 secs] 7188401K->6161934K(104704256K) icms_dc=0 , 0.2446700 secs] [Times: user=3.48 sys=0.08, real=0.24 secs] 
1622.711: [GC1622.711: [ParNew: 1380043K->153344K(1380160K), 0.2227990 secs] 7388679K->6325315K(104704256K) icms_dc=0 , 0.2229970 secs] [Times: user=3.15 sys=0.07, real=0.23 secs] 
1624.981: [GC1624.981: [ParNew: 1380160K->25453K(1380160K), 0.2099710 secs] 7552131K->6350044K(104704256K) icms_dc=0 , 0.2102430 secs] [Times: user=2.91 sys=0.06, real=0.21 secs] 
1627.238: [GC1627.238: [ParNew: 1252269K->50134K(1380160K), 0.1843370 secs] 7576860K->6374725K(104704256K) icms_dc=0 , 0.1845410 secs] [Times: user=3.07 sys=0.02, real=0.18 secs] 
1629.872: [GC1629.872: [ParNew: 1276950K->96228K(1380160K), 0.1918960 secs] 7601541K->6420819K(104704256K) icms_dc=0 , 0.1921910 secs] [Times: user=3.19 sys=0.02, real=0.19 secs] 
1632.735: [GC1632.735: [ParNew: 1323044K->129811K(1380160K), 0.2020110 secs] 7647635K->6479239K(104704256K) icms_dc=0 , 0.2022760 secs] [Times: user=3.26 sys=0.03, real=0.20 secs] 
1635.602: [GC1635.602: [ParNew: 1356627K->120351K(1380160K), 0.2027480 secs] 7706055K->6540298K(104704256K) icms_dc=0 , 0.2029850 secs] [Times: user=2.85 sys=0.07, real=0.20 secs] 
1638.504: [GC1638.504: [ParNew: 1347167K->135674K(1380160K), 0.2050160 secs] 7767114K->6613992K(104704256K) icms_dc=0 , 0.2052770 secs] [Times: user=3.04 sys=0.05, real=0.21 secs] 
1641.258: [GC1641.258: [ParNew: 1362490K->147282K(1380160K), 0.2012690 secs] 7840808K->6687026K(104704256K) icms_dc=0 , 0.2014690 secs] [Times: user=3.07 sys=0.05, real=0.20 secs] 
1643.656: [GC1643.657: [ParNew: 1374098K->100619K(1380160K), 0.2055260 secs] 7913842K->6714005K(104704256K) icms_dc=0 , 0.2057240 secs] [Times: user=3.18 sys=0.05, real=0.21 secs] 
1646.064: [GC1646.064: [ParNew: 1327435K->52625K(1380160K), 0.1986320 secs] 7940821K->6739013K(104704256K) icms_dc=0 , 0.1988600 secs] [Times: user=3.05 sys=0.04, real=0.20 secs] 
1648.265: [GC1648.265: [ParNew: 1279441K->71115K(1380160K), 0.1874340 secs] 7965829K->6757503K(104704256K) icms_dc=0 , 0.1876700 secs] [Times: user=3.05 sys=0.01, real=0.19 secs] 
1650.455: [GC1650.455: [ParNew: 1297931K->90555K(1380160K), 0.1888580 secs] 7984319K->6776943K(104704256K) icms_dc=0 , 0.1890620 secs] [Times: user=3.10 sys=0.02, real=0.19 secs] 
1652.617: [GC1652.617: [ParNew: 1317371K->82588K(1380160K), 0.1921130 secs] 8003759K->6795744K(104704256K) icms_dc=0 , 0.1923570 secs] [Times: user=3.07 sys=0.02, real=0.20 secs] 
1655.084: [GC1655.084: [ParNew: 1309404K->88676K(1380160K), 0.1929900 secs] 8022560K->6827088K(104704256K) icms_dc=0 , 0.1932480 secs] [Times: user=3.13 sys=0.04, real=0.19 secs] 
1657.576: [GC1657.576: [ParNew: 1315492K->102707K(1380160K), 0.2038790 secs] 8053904K->6859860K(104704256K) icms_dc=0 , 0.2041080 secs] [Times: user=3.31 sys=0.03, real=0.21 secs] 
1660.084: [GC1660.085: [ParNew: 1329523K->100159K(1380160K), 0.2056770 secs] 8086676K->6895000K(104704256K) icms_dc=0 , 0.2058870 secs] [Times: user=3.30 sys=0.04, real=0.21 secs] 
1662.587: [GC1662.587: [ParNew: 1326975K->103864K(1380160K), 0.1993510 secs] 8121816K->6930356K(104704256K) icms_dc=0 , 0.1998130 secs] [Times: user=3.22 sys=0.02, real=0.20 secs] 
1665.063: [GC1665.063: [ParNew: 1330680K->107803K(1380160K), 0.1943070 secs] 8157172K->6967114K(104704256K) icms_dc=0 , 0.1945660 secs] [Times: user=3.05 sys=0.06, real=0.19 secs] 
1667.523: [GC1667.523: [ParNew: 1334619K->109823K(1380160K), 0.1978450 secs] 8193930K->7004352K(104704256K) icms_dc=0 , 0.1980760 secs] [Times: user=3.13 sys=0.03, real=0.20 secs] 
1670.004: [GC1670.004: [ParNew: 1336639K->110701K(1380160K), 0.1915270 secs] 8231168K->7040369K(104704256K) icms_dc=0 , 0.1917690 secs] [Times: user=2.98 sys=0.05, real=0.19 secs] 
1672.457: [GC1672.457: [ParNew: 1337517K->110213K(1380160K), 0.2036340 secs] 8267185K->7076594K(104704256K) icms_dc=0 , 0.2038960 secs] [Times: user=3.24 sys=0.03, real=0.21 secs] 
1674.938: [GC1674.938: [ParNew: 1337029K->114558K(1380160K), 0.1944890 secs] 8303410K->7117919K(104704256K) icms_dc=0 , 0.1947260 secs] [Times: user=3.08 sys=0.05, real=0.20 secs] 
1677.758: [GC1677.758: [ParNew: 1341374K->114851K(1380160K), 0.2049460 secs] 8344735K->7190725K(104704256K) icms_dc=0 , 0.2051860 secs] [Times: user=3.02 sys=0.04, real=0.21 secs] 
1681.076: [GC1681.077: [ParNew: 1341667K->153344K(1380160K), 0.2085440 secs] 8417541K->7313681K(104704256K) icms_dc=0 , 0.2088040 secs] [Times: user=3.07 sys=0.07, real=0.21 secs] 
1683.707: [GC1683.707: [ParNew: 1380160K->51485K(1380160K), 0.2137790 secs] 8540497K->7364497K(104704256K) icms_dc=0 , 0.2140030 secs] [Times: user=2.92 sys=0.05, real=0.21 secs] 
... and so on...
----

Anyway, I'm back to editing reflogs to make gerrit gc work :/

PS. This email is sent as a first RFC, any issues will be opened later when we have more information.

Ian Kumlien

unread,
Sep 21, 2013, 10:08:50 AM9/21/13
to Mark Derricutt, Jonathan Nieder, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion
I'm sorry, i forgot, for a while there i couldn't re gerrit gc the gits since they were "already scheduled" which points to a resource leak in my eyes.

Kept returning:
error: garbage collection for project "gerrit/project" was already scheduled

After it had stated:
error: garbage collection for project "gerrit/project" failed

There was no indication that gerrit was doing anything to those projects though, neither in ps nor in the git... 
(a restart solved it and i could get on with finding the other problems.)

Edwin Kempin

unread,
Sep 21, 2013, 12:01:52 PM9/21/13
to Mark Derricutt, Jonathan Nieder, David Pursehouse, Repo and Gerrit Discussion



2013/9/21 Mark Derricutt <ma...@talios.com>

On 21/09/2013, at 11:42 AM, Jonathan Nieder <j...@google.com> wrote:

You can try it out by viewing any change on gerrit-review[1] or
android-review[2] and then changing the /c/ in the URL to /c2/.

Awesome, that should have been an alternative question - if it was live anywhere one could see. Cheers..

My immediate thoughts, whilst 99% positive are "where the heck did unified diff go".
For now there is a user preference for choosing which view (side-by-side or unified diff) should be opened from the new ChangeScreen:
  https://gerrit-review.googlesource.com/49061

Ian Kumlien

unread,
Sep 23, 2013, 6:33:57 AM9/23/13
to Mark Derricutt, Jonathan Nieder, Edwin Kempin, David Pursehouse, Repo and Gerrit Discussion

Phil Hord

unread,
Oct 3, 2013, 11:33:58 AM10/3/13
to Dave Borowitz, repo-discuss
On Wed, Sep 18, 2013 at 6:40 PM, Dave Borowitz <dbor...@google.com> wrote:
> I am pleased to announce Gerrit Code Review 2.7
>
> Release notes:
>
>
> http://gerrit-documentation.googlecode.com/svn/ReleaseNotes/ReleaseNotes-2.7.html
>
> This is a new stable release. It is something of a transitional release
> between 2.6 and the major new features coming in 2.8. It includes some
> additional project configuration options (copyMaxScore for labels,
> per-project commentlinks and themes), more avatars, better binary support,
> some new REST APIs, and a bundle of bugfixes.
>
> Download:
>
> http://gerrit-releases.storage.googleapis.com/gerrit-2.7.war


The downloads have all moved to a new location [1], and the release
notes now all have broken links to the old location, including v2.6
and v2.7 [2], which predate this move.

Is it possible to redirect the old URL to the new one, or at least
something which is not a 404?

Phil


[1] http://gerrit-releases.storage.googleapis.com/gerrit-2.7.war
[2] http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.7.war

David Pursehouse

unread,
Oct 15, 2013, 6:24:35 AM10/15/13
to Phil Hord, Dave Borowitz, repo-discuss
On 10/04/2013 12:33 AM, Phil Hord wrote:
> The downloads have all moved to a new location [1], and the release
> notes now all have broken links to the old location, including v2.6
> and v2.7 [2], which predate this move.
>

The release note source files on master all already have the updated links.

It looks like the html was generated off the stable-2.7 branch which
does not include those changes.

David Pursehouse

unread,
Oct 15, 2013, 11:54:32 PM10/15/13
to Phil Hord, Dave Borowitz, repo-discuss
The release notes on the stable-2.6 and stable-2.7 branches are now
up-to-date.

The updates are not reflected on the gerrit-documentation site yet; I'm
not sure if that will automatically or someone has to kick it.

Shawn Pearce

unread,
Oct 16, 2013, 3:33:35 AM10/16/13
to David Pursehouse, Phil Hord, Dave Borowitz, repo-discuss
The release notes and documentation on gerrit-documentation are
manually pushed out by a maintainer.


The documentation at
https://gerrit-review.googlesource.com/Documentation/ matches the
server version we are running, and is updated automatically when we
push a new server. Which we have not done recently enough.
Reply all
Reply to author
Forward
0 new messages