Merge branch 'stable-3.10' into stable-3.11 * stable-3.10: Use a proper NFSv4 client for mounting the shared git Remove LockWrapper.Factory binding Optimize IndexEvent retries on the same change Change-Id: Iaf0960a595d4cdc0ba532c0b39fdc6646f3d59b0
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ValidationModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ValidationModule.java index d0699b1..9229d01 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ValidationModule.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ValidationModule.java
@@ -15,7 +15,6 @@ package com.ericsson.gerrit.plugins.highavailability; import com.gerritforge.gerrit.globalrefdb.validation.BatchRefUpdateValidator; -import com.gerritforge.gerrit.globalrefdb.validation.LockWrapper; import com.gerritforge.gerrit.globalrefdb.validation.Log4jSharedRefLogger; import com.gerritforge.gerrit.globalrefdb.validation.RefUpdateValidator; import com.gerritforge.gerrit.globalrefdb.validation.SharedRefDatabaseWrapper; @@ -58,7 +57,6 @@ bind(SharedRefDatabaseWrapper.class).in(Scopes.SINGLETON); bind(SharedRefLogger.class).to(Log4jSharedRefLogger.class); - factory(LockWrapper.Factory.class); bind(GitRepositoryManager.class).to(SharedRefDbGitRepositoryManager.class);
diff --git a/src/test/docker/docker-compose.yaml b/src/test/docker/docker-compose.yaml index 2e7981d..d2b971f 100644 --- a/src/test/docker/docker-compose.yaml +++ b/src/test/docker/docker-compose.yaml
@@ -6,6 +6,8 @@ container_name: nfs-server environment: NFS_LOG_LEVEL: DEBUG + NFS_DISABLE_VERSION_3: true + NFS_VERSION: 4.2 hostname: nfs-server healthcheck: test: ["CMD-SHELL", "sleep 10"] # required, otherwise the gerrit service will fail to start with a "connection refused" error @@ -47,8 +49,8 @@ - gerrit-net volumes: - /dev/urandom:/dev/random - - git-volume:/var/gerrit/git - shareddir:/var/gerrit/shareddir + - ./etc/jgit.config:/var/gerrit/etc/jgit.config.orig - ./etc/gerrit.config:/var/gerrit/etc/gerrit.config.orig - ./etc/high-availability.gerrit-01.config:/var/gerrit/etc/high-availability.config.orig - ./etc/zookeeper-refdb.config:/var/gerrit/etc/zookeeper-refdb.config.orig @@ -70,8 +72,8 @@ condition: service_healthy volumes: - /dev/urandom:/dev/random - - git-volume:/var/gerrit/git - shareddir:/var/gerrit/shareddir + - ./etc/jgit.config:/var/gerrit/etc/jgit.config.orig - ./etc/gerrit.config:/var/gerrit/etc/gerrit.config.orig - ./etc/high-availability.gerrit-02.config:/var/gerrit/etc/high-availability.config.orig - ./etc/zookeeper-refdb.config:/var/gerrit/etc/zookeeper-refdb.config.orig @@ -109,9 +111,3 @@ shareddir: nfs-server-volume: syslog-sidecar: - git-volume: - driver: "local" - driver_opts: - type: nfs - o: "addr=192.168.1.5,rw" - device: ":/var/gerrit/git"
diff --git a/src/test/docker/etc/jgit.config b/src/test/docker/etc/jgit.config new file mode 100644 index 0000000..6585556 --- /dev/null +++ b/src/test/docker/etc/jgit.config
@@ -0,0 +1,5 @@ +[core] + supportsAtomicFileCreation = false + trustFolderStat = false + trustLooseRefStat = after_open + trustPackedRefsStat = after_open
diff --git a/src/test/docker/gerrit/Dockerfile b/src/test/docker/gerrit/Dockerfile index 641028d..6e0d639 100644 --- a/src/test/docker/gerrit/Dockerfile +++ b/src/test/docker/gerrit/Dockerfile
@@ -8,6 +8,7 @@ sudo \ passwd \ gettext \ + nfs-utils \ && yum -y clean all ENV GERRIT_BRANCH stable-3.11
diff --git a/src/test/docker/gerrit/entrypoint.sh b/src/test/docker/gerrit/entrypoint.sh index e6181da..aaed80c 100755 --- a/src/test/docker/gerrit/entrypoint.sh +++ b/src/test/docker/gerrit/entrypoint.sh
@@ -6,6 +6,7 @@ fi chown -R gerrit /var/gerrit/etc +sudo -u gerrit cp /var/gerrit/etc/jgit.config.orig /var/gerrit/etc/jgit.config sudo -u gerrit cp /var/gerrit/etc/gerrit.config.orig /var/gerrit/etc/gerrit.config sudo -u gerrit cp /var/gerrit/etc/high-availability.config.orig /var/gerrit/etc/high-availability.config sudo -u gerrit cp /var/gerrit/etc/zookeeper-refdb.config.orig /var/gerrit/etc/zookeeper-refdb.config @@ -18,6 +19,10 @@ ln -sf /var/gerrit_plugins/index-elasticsearch.jar /var/gerrit/plugins/index-elasticsearch.jar fi +echo "Mount NFS ..." +mkdir /var/gerrit/git && chown gerrit:gerrit /var/gerrit/git +mount -t nfs4 -o actimeo=120 nfs-server:/git /var/gerrit/git + echo "Init gerrit..." sudo -u gerrit java -jar /tmp/gerrit.war init -d /var/gerrit --batch --install-all-plugins chown -R gerrit: /var/gerrit/shareddir
diff --git a/src/test/docker/nfs/Dockerfile b/src/test/docker/nfs/Dockerfile index 19744f3..e4a8adc 100644 --- a/src/test/docker/nfs/Dockerfile +++ b/src/test/docker/nfs/Dockerfile
@@ -6,8 +6,8 @@ # server and the client, hence we are creating it explicitly in both. RUN adduser --disabled-password --gecos "" --uid 1000 gerrit -# /var/gerrit/git is the shared directory -RUN mkdir --parents /var/gerrit/git - RUN chown gerrit:gerrit /var/lib/nfs -RUN chown gerrit:gerrit /var/gerrit/git \ No newline at end of file + +COPY gerrit-git-mount-entrypoint.sh /usr/local/bin + +ENTRYPOINT /usr/local/bin/gerrit-git-mount-entrypoint.sh
diff --git a/src/test/docker/nfs/exports.txt b/src/test/docker/nfs/exports.txt index c31d586..3e56b08 100644 --- a/src/test/docker/nfs/exports.txt +++ b/src/test/docker/nfs/exports.txt
@@ -1 +1,2 @@ +/var/gerrit/ 192.168.1.0/24(rw,fsid=0,no_subtree_check,insecure) /var/gerrit/git 192.168.1.0/24(rw,no_subtree_check,insecure) \ No newline at end of file
diff --git a/src/test/docker/nfs/gerrit-git-mount-entrypoint.sh b/src/test/docker/nfs/gerrit-git-mount-entrypoint.sh new file mode 100755 index 0000000..ca7afcc --- /dev/null +++ b/src/test/docker/nfs/gerrit-git-mount-entrypoint.sh
@@ -0,0 +1,15 @@ +#!/bin/sh + +MOUNT_POINT=/var/gerrit/git + +echo "Creating mountpoint $MOUNT_POINT" + +mkdir --parents $MOUNT_POINT +chown gerrit:gerrit $MOUNT_POINT + +echo "ls -al $MOUNT_POINT ..." +ls -al $MOUNT_POINT + +echo "Running NFS server ... " +echo "=======================" +/usr/local/bin/entrypoint.sh \ No newline at end of file