You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by jg...@apache.org on 2022/08/11 21:00:34 UTC
[kafka] branch trunk updated: KAFKA-14163; Retry compilation after zinc compile cache error (#12507)
This is an automated email from the ASF dual-hosted git repository.
jgus pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 3d9a5f6ae3a KAFKA-14163; Retry compilation after zinc compile cache error (#12507)
3d9a5f6ae3a is described below
commit 3d9a5f6ae3a5c67fb60520664e33a1c904dd7a90
Author: Jason Gustafson <ja...@confluent.io>
AuthorDate: Thu Aug 11 14:00:06 2022 -0700
KAFKA-14163; Retry compilation after zinc compile cache error (#12507)
We have been seeing builds fail due to errors such as the following:
```
Timeout waiting to lock zinc-1.6.1_2.13.8_17 compiler cache (/home/jenkins/.gradle/caches/7.5.1/zinc-1.6.1_2.13.8_17). It is currently in use by another Gradle instance.
```
This patch includes a workaround: if the compilation fails due to this zinc compile cache error, then we retry it.
Reviewers: Ismael Juma <is...@juma.me.uk>
Co-authored-by: Lucas Bradstreet <lu...@gmail.com>
---
Jenkinsfile | 2 +-
retry_zinc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index cce625b8d8e..e1b4c5b3a1d 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -19,7 +19,7 @@
def doValidation() {
sh """
- ./gradlew -PscalaVersion=$SCALA_VERSION clean compileJava compileScala compileTestJava compileTestScala \
+ ./retry_zinc ./gradlew -PscalaVersion=$SCALA_VERSION clean compileJava compileScala compileTestJava compileTestScala \
spotlessScalaCheck checkstyleMain checkstyleTest spotbugsMain rat \
--profile --no-daemon --continue -PxmlSpotBugsReport=true
"""
diff --git a/retry_zinc b/retry_zinc
new file mode 100755
index 00000000000..9d7b5553fa9
--- /dev/null
+++ b/retry_zinc
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Hacky workaround for https://github.com/gradle/gradle/issues/3777
+# There is currently no configurable timeout, so we retry builds jenkins when we can't get a lock on the zinc compiler cache
+# Hopefully we can remove this in the future, but this will save us from having to manually rebuild for the time being.
+# Example:
+# [2021-10-19T17:25:07.234Z] * What went wrong:
+# [2021-10-19T17:25:07.234Z] Execution failed for task ':streams:streams-scala:compileScala'.
+# [2021-10-19T17:25:07.234Z] > Timeout waiting to lock zinc-1.3.5_2.13.6_8 compiler cache (/home/jenkins/.gradle/caches/7.0.2/zinc-1.3.5_2.13.6_8). It is currently in use by another Gradle instance.
+# [2021-10-19T17:25:07.234Z] Owner PID: 3999
+# [2021-10-19T17:25:07.234Z] Our PID: 3973
+# [2021-10-19T17:25:07.234Z] Owner Operation:
+# [2021-10-19T17:25:07.234Z] Our operation:
+# [2021-10-19T17:25:07.234Z] Lock file: /home/jenkins/.gradle/caches/7.0.2/zinc-1.3.5_2.13.6_8/zinc-1.3.5_2.13.6_8.lock
+
+set -uf -o pipefail
+
+retryable=1
+while [[ "$retryable" != 0 ]]; do
+ retryable=0
+ rm -f buildoutput.log
+
+ "$@" 2>&1 | tee buildoutput.log
+ commandReturnCode=$?
+
+ if [ $commandReturnCode -ne 0 ]; then
+ if grep "Timeout waiting to lock zinc" buildoutput.log; then
+ retryable=1
+ echo 'Retrying due to zinc lock timeout'
+ continue
+ else
+ exit $commandReturnCode
+ fi
+ fi
+done