> On 25 Nov 2024, at 21:36, Luca Milanesio <
luca.mi...@gmail.com> wrote:
>
> Hi John,
>
>> On 25 Nov 2024, at 21:18,
jme...@sybernet.ie <
jme...@sybernet.ie> wrote:
>>
>> Luca
>>
>> Yes the repositories were originally hosted on an internal Git server.
>> I did the following to get them into Gerrithub/Github.
>>
>> git push --mirror
https://github.com/<org>/<repo>.git
>> git push
https://github.com/SyberNetLtd/<repo>.git --delete meta/config ( I did this because Gerrithub complained about this file when importing)
>
> Sure, that was needed because the ‘refs/meta/config’ was referring to group-ids that do not make sense on GerritHub and you would have been potentially unable to manage them.
>
>> Imported the repository into Gerrithub.io from Github
>> Cloned the repository from Gerrithub into Eclipse environment.
>> These projects all worked at the time and without any issues. Also I have followed this procedure for several other projects without a problem.
>>
>> I cannot clone the repository using Eclipse "Clone Repository" or I cannot "Synchronise Workspace" - both actions fail.
>> I also cannot fetch - "Synchronise Workspace" does a fetch at the beginning so that is the same thing.
>
> Gerrit is complaining when trying to check if you have permissions or not to access the changes, because of the serverId mismatch.
> However, changes with a mismatched serverId should be just ignored and not generate 500s.
I reproduced the issue locally with a plain Gerrit v3.10, and it is intermittent indeed :-O
1. Clone the repository => all good
2. Clone the same repository again => internal server error
rm -Rf load-test && git clone ssh://developer@localhost:29418/load-test
Cloning into 'load-test'...
Warning: Permanently added '[127.0.0.1]:29418' (ED25519) to the list of known hosts.
remote: Counting objects: 197, done
remote: Finding sources: 100% (196/196)
remote: Total 9227 (delta 46), reused 9181 (delta 46)
Receiving objects: 100% (9227/9227), 167.74 MiB | 79.05 MiB/s, done.
Resolving deltas: 100% (3812/3812), done.
$ rm -Rf load-test && git clone ssh://developer@localhost:29418/load-test
Cloning into 'load-test'...
Warning: Permanently added '[127.0.0.1]:29418' (ED25519) to the list of known hosts.
fatal: remote error: internal server error
fatal: internal server error
The exception is exactly the same one similar to your case on GerritHub.io:
Caused by: com.google.gerrit.server.notedb.InvalidServerIdException: invalid server id, expected f4ab4960-add9-482c-835f-d03f3feb62b7: actual: f4ab4960-add9-482c-835f-d03f3feb62b6
at com.google.gerrit.server.notedb.ChangeNotes.onLoad(ChangeNotes.java:671)
at com.google.gerrit.server.notedb.AbstractChangeNotes.load(AbstractChangeNotes.java:170)
at com.google.gerrit.server.notedb.AbstractChangeNotes.load(AbstractChangeNotes.java:149)
at com.google.gerrit.server.notedb.ChangeNotes$Factory.createChecked(ChangeNotes.java:152)
at com.google.gerrit.server.query.change.ChangeData.loadChange(ChangeData.java:784)
at com.google.gerrit.server.query.change.ChangeData.change(ChangeData.java:766)
at com.google.gerrit.server.query.change.ChangeData.branchOrThrow(ChangeData.java:699)
at com.google.gerrit.server.permissions.PermissionBackend$ForProject.change(PermissionBackend.java:277)
at com.google.gerrit.server.permissions.ProjectControl$ForProjectImpl.change(ProjectControl.java:370)
at com.google.gerrit.server.permissions.GitVisibleChangeFilter.lambda$getVisibleChanges$1(GitVisibleChangeFilter.java:81)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at com.google.gerrit.server.permissions.GitVisibleChangeFilter.getVisibleChanges(GitVisibleChangeFilter.java:90)
at com.google.gerrit.server.permissions.DefaultRefFilter.lambda$filter$1(DefaultRefFilter.java:147)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:181)
at com.google.gerrit.server.permissions.DefaultRefFilter.filterRefs(DefaultRefFilter.java:268)
at com.google.gerrit.server.permissions.DefaultRefFilter.filter(DefaultRefFilter.java:154)
at com.google.gerrit.server.permissions.ProjectControl$ForProjectImpl.filter(ProjectControl.java:427)
at com.google.gerrit.server.git.PermissionAwareReadOnlyRefDatabase.getRefsByPrefix(PermissionAwareReadOnlyRefDatabase.java:139)
at com.google.gerrit.server.git.PermissionAwareReadOnlyRefDatabase.getRefs(PermissionAwareReadOnlyRefDatabase.java:192)
It must be some caching thing; let me investigate further.
Luca.