diff options
author | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-12-25 14:26:01 +0000 |
---|---|---|
committer | TCWG BuildSlave <tcwg-buildslave@linaro.org> | 2023-12-25 14:26:01 +0000 |
commit | 88e164d099dfb66ac87a47824d1d727d326d14fc (patch) | |
tree | c08598c49f399d70a1f3eb80f462b3db57646c82 | |
parent | 8acaa859ce971d05e430eba0932dcb3666a8fac2 (diff) |
onsuccess: #157: : [TCWG CI] https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/linaro-local/backup/tcwg_kernel/llvm-master-arm-next-allmodconfig
Results :
| # reset_artifacts:
| -10
| # build_abe binutils:
| -9
| # build_kernel_llvm:
| -5
| # build_abe qemu:
| -2
| # linux_n_obj:
| 24085
| # First few build errors in logs:
|
| # 00:06:03 drivers/dma/xilinx/xdma.c:757:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses]
| # 00:06:03 drivers/dma/xilinx/xdma.c:759:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses]
| # 00:06:03 drivers/dma/xilinx/xdma.c:729:1: error: no previous prototype for function 'xdma_prep_interleaved_dma' [-Werror,-Wmissing-prototypes]
| # 00:06:03 drivers/dma/xilinx/xdma.c:894:3: error: variable 'desc' is uninitialized when used here [-Werror,-Wuninitialized]
| # 00:06:03 make[5]: *** [scripts/Makefile.build:243: drivers/dma/xilinx/xdma.o] Error 1
| # 00:06:09 make[4]: *** [scripts/Makefile.build:481: drivers/dma/xilinx] Error 2
| # 00:08:04 ./include/linux/fortify-string.h:489:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning]
| # 00:08:04 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1
| # 00:08:28 make[3]: *** [scripts/Makefile.build:481: drivers/dma] Error 2
| # 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2
check_regression status : 0
23 files changed, 4793 insertions, 455 deletions
diff --git a/01-reset_artifacts/console.log.xz b/01-reset_artifacts/console.log.xz Binary files differindex cad826e..82a7902 100644 --- a/01-reset_artifacts/console.log.xz +++ b/01-reset_artifacts/console.log.xz diff --git a/02-prepare_abe/console.log.xz b/02-prepare_abe/console.log.xz Binary files differindex f2f7a96..c7baaee 100644 --- a/02-prepare_abe/console.log.xz +++ b/02-prepare_abe/console.log.xz diff --git a/03-build_abe-binutils/console.log.xz b/03-build_abe-binutils/console.log.xz Binary files differindex b194def..438c2c4 100644 --- a/03-build_abe-binutils/console.log.xz +++ b/03-build_abe-binutils/console.log.xz diff --git a/03-build_abe-binutils/make-binutils.log.xz b/03-build_abe-binutils/make-binutils.log.xz Binary files differindex 1545ef1..a75e2f1 100644 --- a/03-build_abe-binutils/make-binutils.log.xz +++ b/03-build_abe-binutils/make-binutils.log.xz diff --git a/04-build_kernel_llvm/console.log.xz b/04-build_kernel_llvm/console.log.xz Binary files differindex 8506db5..7afe12a 100644 --- a/04-build_kernel_llvm/console.log.xz +++ b/04-build_kernel_llvm/console.log.xz diff --git a/05-build_abe-qemu/console.log.xz b/05-build_abe-qemu/console.log.xz Binary files differindex ca30f65..ce123d2 100644 --- a/05-build_abe-qemu/console.log.xz +++ b/05-build_abe-qemu/console.log.xz diff --git a/05-build_abe-qemu/make-qemu.log.xz b/05-build_abe-qemu/make-qemu.log.xz Binary files differindex c9eb746..f46acd9 100644 --- a/05-build_abe-qemu/make-qemu.log.xz +++ b/05-build_abe-qemu/make-qemu.log.xz diff --git a/06-build_linux/console.log.xz b/06-build_linux/console.log.xz Binary files differindex 809b6fd..9f0a198 100644 --- a/06-build_linux/console.log.xz +++ b/06-build_linux/console.log.xz diff --git a/08-check_regression/console.log.xz b/08-check_regression/console.log.xz Binary files differindex 5db18b6..0eba72b 100644 --- a/08-check_regression/console.log.xz +++ b/08-check_regression/console.log.xz diff --git a/08-check_regression/results.regressions b/08-check_regression/results.regressions new file mode 100644 index 0000000..d19e3b9 --- /dev/null +++ b/08-check_regression/results.regressions @@ -0,0 +1,12 @@ +# First few build errors in logs: + +# 00:06:03 drivers/dma/xilinx/xdma.c:757:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:759:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:729:1: error: no previous prototype for function 'xdma_prep_interleaved_dma' [-Werror,-Wmissing-prototypes] +# 00:06:03 drivers/dma/xilinx/xdma.c:894:3: error: variable 'desc' is uninitialized when used here [-Werror,-Wuninitialized] +# 00:06:03 make[5]: *** [scripts/Makefile.build:243: drivers/dma/xilinx/xdma.o] Error 1 +# 00:06:09 make[4]: *** [scripts/Makefile.build:481: drivers/dma/xilinx] Error 2 +# 00:08:04 ./include/linux/fortify-string.h:489:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning] +# 00:08:04 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1 +# 00:08:28 make[3]: *** [scripts/Makefile.build:481: drivers/dma] Error 2 +# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2 diff --git a/README.html b/README.html index 17d1769..35ed66b 100644 --- a/README.html +++ b/README.html @@ -36,6 +36,7 @@ List of files below: <li><a href="./05-build_abe-qemu/make-qemu.log.xz">./05-build_abe-qemu/make-qemu.log.xz</a> <li><a href="./06-build_linux/console.log.xz">./06-build_linux/console.log.xz</a> <li><a href="./08-check_regression/console.log.xz">./08-check_regression/console.log.xz</a> +<li><a href="./08-check_regression/results.regressions">./08-check_regression/results.regressions</a> <li><a href="./git/binutils_rev">./git/binutils_rev</a> <li><a href="./git/binutils_url">./git/binutils_url</a> <li><a href="./git/linux_rev">./git/linux_rev</a> @@ -33,6 +33,7 @@ List of files below: - ./05-build_abe-qemu/make-qemu.log.xz - ./06-build_linux/console.log.xz - ./08-check_regression/console.log.xz +- ./08-check_regression/results.regressions - ./git/binutils_rev - ./git/binutils_url - ./git/linux_rev diff --git a/git/linux_rev b/git/linux_rev index cf1170a..e19034b 100644 --- a/git/linux_rev +++ b/git/linux_rev @@ -1 +1 @@ -857647efa9be89a13cf8963c7e167fab062b28bb +39676dfe52331dba909c617f213fdb21015c8d10 diff --git a/jenkins/build-name b/jenkins/build-name index fac83f2..107ece7 100644 --- a/jenkins/build-name +++ b/jenkins/build-name @@ -1 +1 @@ -#156-binutils-llvm-qemu-R24086 +#157-linux-R# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2 diff --git a/jenkins/notify-full.log b/jenkins/notify-full.log index 2500c65..cbb71d5 100644 --- a/jenkins/notify-full.log +++ b/jenkins/notify-full.log @@ -1,6 +1,6 @@ + set +x -/home/tcwg-buildslave/workspace/tcwg_kernel_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ATATT3xFfGF0T6lmyRRI1GPXAjFc6UC66WsAJyuXpga-0JusQbYQdlG4NfS8kED4ejPRlZs9E57FWxFlN7K67E-9t-EXcNqVpzVQwTRd2JDDboAUNRnk00rMY9KXELe8Jb9dKP7p3MTXz2HTqtpMKIM2VZQUmZf_TcIuAN0mVpSPtZtdoLZBnCk=34F9AA87 __stage full __verbose true __build_script tcwg_kernel-build.sh +/home/tcwg-buildslave/workspace/tcwg_kernel_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts __TCWG_JIRA_TOKEN ATATT3xFfGF0T6lmyRRI1GPXAjFc6UC66WsAJyuXpga-0JusQbYQdlG4NfS8kED4ejPRlZs9E57FWxFlN7K67E-9t-EXcNqVpzVQwTRd2JDDboAUNRnk00rMY9KXELe8Jb9dKP7p3MTXz2HTqtpMKIM2VZQUmZf_TcIuAN0mVpSPtZtdoLZBnCk=34F9AA87 __stage full __verbose true __build_script tcwg_kernel-build.sh + false + dryrun= @@ -26,17 +26,17 @@ ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/ +# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/ # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/' ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/ +# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/ # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify @@ -61,130 +61,100 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xgit://sourceware.org/git/binutils-gdb.git#master '!=' xbaseline ']' -+++ echo -ne binutils -+++ delim=' ' -+++ for c in ${rr[components]} -+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' -+++ echo -ne ' llvm' -+++ delim=' ' ++++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} -+++ '[' xhttps://gitlab.com/qemu-project/qemu.git#master '!=' xbaseline ']' -+++ echo -ne ' qemu' ++++ '[' xhttps://git.linaro.org/kernel-org/linux-next.git#master '!=' xbaseline ']' ++++ echo -ne linux +++ delim=' ' ++++ for c in ${rr[components]} ++++ '[' xbaseline '!=' xbaseline ']' +++ echo ++ for c in $(print_updated_components) -+++ get_current_git binutils_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/binutils_rev -+++ get_baseline_git binutils_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/binutils_rev -++ '[' xca86dbbdbc04fbe6298e597a3c94c8071ea722a1 '!=' x333a6b1a6399992cc98ac34727acf38136b770e6 ']' -++ echo -ne binutils -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ '[' x37fc9c6a4227b1736cc643eb95636d9f7ec30190 '!=' x36b6f77565c9d3d75c03600df4b8719bb518bdc0 ']' -++ echo -ne ' llvm' -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git qemu_rev ++++ get_current_git linux_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/qemu_rev -+++ get_baseline_git qemu_rev ++++ cat artifacts/git/linux_rev ++++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/qemu_rev -++ '[' x80f1709aa0eb4de09b4240563463f991a5b9d855 '!=' x191710c221f65b1542f6ea7fa4d30dde6e134fd7 ']' -++ echo -ne ' qemu' ++++ cat base-artifacts/git/linux_rev +++ '[' x39676dfe52331dba909c617f213fdb21015c8d10 '!=' x857647efa9be89a13cf8963c7e167fab062b28bb ']' +++ echo -ne linux ++ delim=' ' ++ echo + local c base_rev cur_rev c_commits -+ '[' 3 = 0 ']' -+ '[' 3 = 1 ']' -# Debug traces : -# change_kind=multiple_components : binutils llvm qemu -+ change_kind=multiple_components -+ changed_single_component= -+ echo '# Debug traces :' -+ echo '# change_kind=multiple_components : binutils llvm qemu' -+ for c in "${changed_components[@]}" -++ get_baseline_git binutils_rev ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=linux +++ get_current_git linux_rev ++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/binutils_rev -+ base_rev=333a6b1a6399992cc98ac34727acf38136b770e6 -++ get_current_git binutils_rev +++ cat artifacts/git/linux_rev ++ first_bad=39676dfe52331dba909c617f213fdb21015c8d10 +++ get_baseline_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/binutils_rev -+ cur_rev=ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ git -C binutils rev-list --count 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -# rev for binutils : 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 (67 commits) -+ c_commits=67 -+ echo '# rev for binutils : 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 (67 commits)' -+ for c in "${changed_components[@]}" -++ get_baseline_git llvm_rev +++ cat base-artifacts/git/linux_rev ++ last_good=857647efa9be89a13cf8963c7e167fab062b28bb ++ local res ++ res=0 ++ wait 7306 ++ git -C linux rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo linux' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p linux ++ set -euf -o pipefail ++ local c=linux ++ local base_rev cur_rev sha1 +++ get_baseline_git linux_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=36b6f77565c9d3d75c03600df4b8719bb518bdc0 -++ get_current_git llvm_rev +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ git -C llvm rev-list --count 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -# rev for llvm : 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 (204 commits) -+ c_commits=204 -+ echo '# rev for llvm : 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 (204 commits)' +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 +++ git -C linux rev-parse '39676dfe52331dba909c617f213fdb21015c8d10^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' ab8a1e47afc0e8e19ef542c127784674711bf442 = 857647efa9be89a13cf8963c7e167fab062b28bb ']' ++ return 1 +# Debug traces : +# change_kind=single_component : linux ++ change_kind=single_component ++ echo '# Debug traces :' ++ echo '# change_kind=single_component : linux' + for c in "${changed_components[@]}" -++ get_baseline_git qemu_rev +++ get_baseline_git linux_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/qemu_rev -+ base_rev=191710c221f65b1542f6ea7fa4d30dde6e134fd7 -++ get_current_git qemu_rev +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/qemu_rev -+ cur_rev=80f1709aa0eb4de09b4240563463f991a5b9d855 -++ git -C qemu rev-list --count 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -# rev for qemu : 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 (37 commits) +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 +++ git -C linux rev-list --count 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +# rev for linux : 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 (906 commits) -+ c_commits=37 -+ echo '# rev for qemu : 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 (37 commits)' ++ c_commits=906 ++ echo '# rev for linux : 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 (906 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -209,7 +179,7 @@ + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=init -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + '[' full '!=' full ']' + generate_extra_details @@ -227,8 +197,8 @@ ++ assert_with_msg 'ERROR: No binutils in current git' '[' -f base-artifacts/git/binutils_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/binutils_rev -++ git -C binutils show --no-patch --pretty=%ct 333a6b1a6399992cc98ac34727acf38136b770e6 -+ base_d=1703159486 +++ git -C binutils show --no-patch --pretty=%ct ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 ++ base_d=1703481090 ++ get_current_component_date binutils ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No binutils in current git' '[' -f artifacts/git/binutils_rev ']' @@ -236,9 +206,9 @@ +++ cat artifacts/git/binutils_rev ++ git -C binutils show --no-patch --pretty=%ct ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 + cur_d=1703481090 -+ '[' x1703159486 '!=' x ']' ++ '[' x1703481090 '!=' x ']' + '[' x1703481090 = x ']' -+ '[' 1703481090 -lt 1703159486 ']' ++ '[' 1703481090 -lt 1703481090 ']' + '[' x1703481090 = x ']' + '[' 1703481090 -gt 0 ']' + results_date=1703481090 @@ -249,8 +219,8 @@ ++ assert_with_msg 'ERROR: No llvm in current git' '[' -f base-artifacts/git/llvm_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/llvm_rev -++ git -C llvm show --no-patch --pretty=%ct 36b6f77565c9d3d75c03600df4b8719bb518bdc0 -+ base_d=1703161011 +++ git -C llvm show --no-patch --pretty=%ct 37fc9c6a4227b1736cc643eb95636d9f7ec30190 ++ base_d=1703504286 ++ get_current_component_date llvm ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No llvm in current git' '[' -f artifacts/git/llvm_rev ']' @@ -258,9 +228,9 @@ +++ cat artifacts/git/llvm_rev ++ git -C llvm show --no-patch --pretty=%ct 37fc9c6a4227b1736cc643eb95636d9f7ec30190 + cur_d=1703504286 -+ '[' x1703161011 '!=' x ']' ++ '[' x1703504286 '!=' x ']' + '[' x1703504286 = x ']' -+ '[' 1703504286 -lt 1703161011 ']' ++ '[' 1703504286 -lt 1703504286 ']' + '[' x1703504286 = x ']' + '[' 1703504286 -gt 1703481090 ']' + results_date=1703504286 @@ -278,13 +248,13 @@ ++ assert_with_msg 'ERROR: No linux in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x +++ cat artifacts/git/linux_rev -++ git -C linux show --no-patch --pretty=%ct 857647efa9be89a13cf8963c7e167fab062b28bb -+ cur_d=1703155249 +++ git -C linux show --no-patch --pretty=%ct 39676dfe52331dba909c617f213fdb21015c8d10 ++ cur_d=1703221679 + '[' x1703155249 '!=' x ']' -+ '[' x1703155249 = x ']' -+ '[' 1703155249 -lt 1703155249 ']' -+ '[' x1703155249 = x ']' -+ '[' 1703155249 -gt 1703504286 ']' ++ '[' x1703221679 = x ']' ++ '[' 1703221679 -lt 1703155249 ']' ++ '[' x1703221679 = x ']' ++ '[' 1703221679 -gt 1703504286 ']' + for c in $(get_current_manifest "{rr[components]}") ++ get_baseline_component_date qemu ++ set -euf -o pipefail @@ -292,8 +262,8 @@ ++ assert_with_msg 'ERROR: No qemu in current git' '[' -f base-artifacts/git/qemu_rev ']' ++ set -euf -o pipefail +x +++ cat base-artifacts/git/qemu_rev -++ git -C qemu show --no-patch --pretty=%ct 191710c221f65b1542f6ea7fa4d30dde6e134fd7 -+ base_d=1703083216 +++ git -C qemu show --no-patch --pretty=%ct 80f1709aa0eb4de09b4240563463f991a5b9d855 ++ base_d=1703205859 ++ get_current_component_date qemu ++ set -euf -o pipefail ++ assert_with_msg 'ERROR: No qemu in current git' '[' -f artifacts/git/qemu_rev ']' @@ -301,9 +271,9 @@ +++ cat artifacts/git/qemu_rev ++ git -C qemu show --no-patch --pretty=%ct 80f1709aa0eb4de09b4240563463f991a5b9d855 + cur_d=1703205859 -+ '[' x1703083216 '!=' x ']' ++ '[' x1703205859 '!=' x ']' + '[' x1703205859 = x ']' -+ '[' 1703205859 -lt 1703083216 ']' ++ '[' 1703205859 -lt 1703205859 ']' + '[' x1703205859 = x ']' + '[' 1703205859 -gt 1703504286 ']' + assert_with_msg 'Failed to produce results_date' '[' 1703504286 -gt 0 ']' @@ -311,27 +281,27 @@ ++ get_baseline_manifest '{rr[results_date]}' ++ get_manifest base-artifacts/manifest.sh '{rr[results_date]}' false ++ set +x -+ base_d=1703161011 -+ '[' 1703161011 '!=' '' ']' -+ assert '[' 1703504286 -ge 1703161011 ']' ++ base_d=1703332648 ++ '[' 1703332648 '!=' '' ']' ++ assert '[' 1703504286 -ge 1703332648 ']' + set -euf -o pipefail +x -+ '[' 1703504286 -gt 1703161011 ']' -+ results_date=1703332648 -+ rr[results_date]=1703332648 ++ '[' 1703504286 -gt 1703332648 ']' ++ results_date=1703418467 ++ rr[results_date]=1703418467 + cat + manifest_out + cat + check_if_first_report + declare -g first_icommit_to_report + first_icommit_to_report=false -+ '[' xmultiple_components '!=' xsingle_commit ']' ++ '[' xsingle_component '!=' xsingle_commit ']' + return + post_interesting_commits full # post_interesting_commits + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=full -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + true + generate_jira_dir @@ -342,7 +312,7 @@ ++ set -euf -o pipefail ++ local print_arg=--entry ++ shift 1 -++ '[' xmultiple_components '!=' xsingle_commit ']' +++ '[' xsingle_component '!=' xsingle_commit ']' ++ return 0 + icommit_entry= + '[' '' '!=' '' ']' @@ -352,8 +322,8 @@ ++ print_jira_template_card ++ local jira_card=GNU-692 ++ case "$ci_project/$ci_config:$changed_single_component" in -++ jira_card=LLVM-646 -++ echo LLVM-646 +++ jira_card=LLVM-647 +++ echo LLVM-647 ++ print_result --oneline ++ false ++ local print_arg=--oneline @@ -366,9 +336,9 @@ +++ get_current_manifest BUILD_URL +++ get_manifest artifacts/manifest.sh BUILD_URL +++ set +x -++ url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts +++ url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/artifact/artifacts ++ '[' '' '!=' '' ']' -++ echo 'https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts/notify/mail-body.txt/*view*/' +++ echo 'https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/artifact/artifacts/notify/mail-body.txt/*view*/' # print all notification files + echo '# print all notification files' + true @@ -376,79 +346,4504 @@ + set -euf -o pipefail + print_mail_recipients + set -euf -o pipefail -+ local c= ++ local c=linux ++ '[' linux = '' ']' ++ local -A emails ++ emails["tcwg-validation@linaro.org"]=bcc ++ emails["author"]=cc ++ emails["committer"]=to ++ case "$ci_project/$ci_config:$c" in ++ emails["author"]=no ++ emails["committer"]=no ++ emails["llvm@lists.linux.dev"]=to_postcommit ++ local c email base_rev cur_rev +++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 ++ read -r email +++ git -C linux log --pretty=%ae 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ local precommit_postcommit=postcommit + '[' '' = '' ']' -+ echo bcc:tcwg-validation@linaro.org -+ return 0 +++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev +++ set -euf -o pipefail +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 ++ read -r email +++ git -C linux log --pretty=%ce 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ emails["$email"]=no ++ read -r email ++ unset 'emails[author]' 'emails[committer]' ++ local type ++ recipients=() ++ local -a recipients ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=bcc ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ recipients+=("$type:$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=to_postcommit ++ case "$precommit_postcommit:$type" in ++ type=to ++ case "$type" in ++ recipients+=("$email") ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ for email in "${!emails[@]}" ++ type=no ++ case "$precommit_postcommit:$type" in ++ case "$type" in ++ IFS=, ++ echo bcc:tcwg-validation@linaro.org,llvm@lists.linux.dev ++ print_commits --oneline ++ set -euf -o pipefail ++ false ++ local print_arg=--oneline -++ '[' multiple_components = no_change ']' +++ '[' single_component = no_change ']' ++ local more_lines -++ '[' multiple_components = single_commit ']' -++ '[' multiple_components = single_component ']' -++ '[' multiple_components = multiple_components ']' +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" -+++ get_baseline_git binutils_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/binutils_rev -++ base_rev=333a6b1a6399992cc98ac34727acf38136b770e6 -+++ get_current_git binutils_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/binutils_rev -++ cur_rev=ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -+++ git -C binutils rev-list --count 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ c_commits=67 -++ new_commits=67 -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=36b6f77565c9d3d75c03600df4b8719bb518bdc0 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=37fc9c6a4227b1736cc643eb95636d9f7ec30190 -+++ git -C llvm rev-list --count 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ c_commits=204 -++ new_commits=271 -++ for c in "${changed_components[@]}" -+++ get_baseline_git qemu_rev ++++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/qemu_rev -++ base_rev=191710c221f65b1542f6ea7fa4d30dde6e134fd7 -+++ get_current_git qemu_rev ++++ cat base-artifacts/git/linux_rev +++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb ++++ get_current_git linux_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/qemu_rev -++ cur_rev=80f1709aa0eb4de09b4240563463f991a5b9d855 -+++ git -C qemu rev-list --count 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -++ c_commits=37 -++ new_commits=308 -+++ echo binutils llvm qemu ++++ cat artifacts/git/linux_rev +++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 ++++ git -C linux rev-list --count 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +++ c_commits=906 +++ new_commits=906 ++++ echo linux +++ tr ' ' , -++ components=binutils,llvm,qemu -++ echo '308 commits in binutils,llvm,qemu' +++ components=linux +++ echo '906 commits in linux' ++ '[' --oneline = --oneline ']' ++ return 0 ++ print_result --oneline @@ -463,19 +4858,19 @@ ++ case "$print_arg" in ++ case "$ci_config" in ++ echo arm -+ echo '[Linaro-TCWG-CI]' '308 commits in binutils,llvm,qemu: Success on arm' ++ echo '[Linaro-TCWG-CI]' '906 commits in linux: Success on arm' + print_mail_body + local bad_artifacts_url good_artifacts_url ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -+ bad_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts ++ bad_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/artifact/artifacts ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -+ good_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/artifact/artifacts ++ good_artifacts_url=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts + local key= -+ '[' multiple_components = single_commit ']' ++ '[' single_component = single_commit ']' + cat + '[' '' '!=' '' ']' + cat @@ -489,134 +4884,59 @@ ++ set -euf -o pipefail ++ false ++ local print_arg=--short -++ '[' multiple_components = no_change ']' +++ '[' single_component = no_change ']' ++ local more_lines -++ '[' multiple_components = single_commit ']' -++ '[' multiple_components = single_component ']' -++ '[' multiple_components = multiple_components ']' +++ '[' single_component = single_commit ']' +++ '[' single_component = single_component ']' ++ local new_commits c base_rev cur_rev c_commits components ++ local commits_or_patches ++ '[' '' '!=' '' ']' ++ commits_or_patches=commits ++ new_commits=0 ++ for c in "${changed_components[@]}" -+++ get_baseline_git binutils_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/binutils_rev -++ base_rev=333a6b1a6399992cc98ac34727acf38136b770e6 -+++ get_current_git binutils_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/binutils_rev -++ cur_rev=ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -+++ git -C binutils rev-list --count 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ c_commits=67 -++ new_commits=67 -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=36b6f77565c9d3d75c03600df4b8719bb518bdc0 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=37fc9c6a4227b1736cc643eb95636d9f7ec30190 -+++ git -C llvm rev-list --count 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ c_commits=204 -++ new_commits=271 -++ for c in "${changed_components[@]}" -+++ get_baseline_git qemu_rev ++++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/qemu_rev -++ base_rev=191710c221f65b1542f6ea7fa4d30dde6e134fd7 -+++ get_current_git qemu_rev ++++ cat base-artifacts/git/linux_rev +++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb ++++ get_current_git linux_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/qemu_rev -++ cur_rev=80f1709aa0eb4de09b4240563463f991a5b9d855 -+++ git -C qemu rev-list --count 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -++ c_commits=37 -++ new_commits=308 -+++ echo binutils llvm qemu ++++ cat artifacts/git/linux_rev +++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 ++++ git -C linux rev-list --count 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +++ c_commits=906 +++ new_commits=906 ++++ echo linux +++ tr ' ' , -++ components=binutils,llvm,qemu -++ echo '308 commits in binutils,llvm,qemu' +++ components=linux +++ echo '906 commits in linux' ++ '[' --short = --oneline ']' ++ for c in "${changed_components[@]}" -+++ get_baseline_git binutils_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/binutils_rev -++ base_rev=333a6b1a6399992cc98ac34727acf38136b770e6 -+++ get_current_git binutils_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/binutils_rev -++ cur_rev=ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -+++ git -C binutils rev-list --count 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ c_commits=67 -++ '[' '' '!=' '' ']' -++ git -C binutils log -n 5 --oneline 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ '[' 67 -gt 5 ']' -++ echo '... and 62 more commits in binutils' -++ '[' '' '!=' '' ']' -++ for c in "${changed_components[@]}" -+++ get_baseline_git llvm_rev ++++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ base_rev=36b6f77565c9d3d75c03600df4b8719bb518bdc0 -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -++ cur_rev=37fc9c6a4227b1736cc643eb95636d9f7ec30190 -+++ git -C llvm rev-list --count 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ c_commits=204 -++ '[' '' '!=' '' ']' -++ git -C llvm log -n 5 --oneline 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ '[' 204 -gt 5 ']' -++ echo '... and 199 more commits in llvm' -++ '[' '' '!=' '' ']' -++ for c in "${changed_components[@]}" -+++ get_baseline_git qemu_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/qemu_rev -++ base_rev=191710c221f65b1542f6ea7fa4d30dde6e134fd7 -+++ get_current_git qemu_rev ++++ cat base-artifacts/git/linux_rev +++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb ++++ get_current_git linux_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/qemu_rev -++ cur_rev=80f1709aa0eb4de09b4240563463f991a5b9d855 -+++ git -C qemu rev-list --count 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -++ c_commits=37 ++++ cat artifacts/git/linux_rev +++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 ++++ git -C linux rev-list --count 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +++ c_commits=906 ++ '[' '' '!=' '' ']' -++ git -C qemu log -n 5 --oneline 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -++ '[' 37 -gt 5 ']' -++ echo '... and 32 more commits in qemu' +++ git -C linux log -n 5 --oneline 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +# generate_jenkins_html_files +... Skipping +++ '[' 906 -gt 5 ']' +++ echo '... and 901 more commits in linux' ++ '[' '' '!=' '' ']' ++ return 0 ++ print_result --short @@ -634,7 +4954,19 @@ # build_abe qemu: -2 # linux_n_obj: -24086' +24085 +# First few build errors in logs: + +# 00:06:03 drivers/dma/xilinx/xdma.c:757:68: error: operator '\''?:'\'' has lower precedence than '\''+'\''; '\''+'\'' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:759:68: error: operator '\''?:'\'' has lower precedence than '\''+'\''; '\''+'\'' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:729:1: error: no previous prototype for function '\''xdma_prep_interleaved_dma'\'' [-Werror,-Wmissing-prototypes] +# 00:06:03 drivers/dma/xilinx/xdma.c:894:3: error: variable '\''desc'\'' is uninitialized when used here [-Werror,-Wuninitialized] +# 00:06:03 make[5]: *** [scripts/Makefile.build:243: drivers/dma/xilinx/xdma.o] Error 1 +# 00:06:09 make[4]: *** [scripts/Makefile.build:481: drivers/dma/xilinx] Error 2 +# 00:08:04 ./include/linux/fortify-string.h:489:4: error: call to '\''__write_overflow_field'\'' declared with '\''warning'\'' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning] +# 00:08:04 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1 +# 00:08:28 make[3]: *** [scripts/Makefile.build:481: drivers/dma] Error 2 +# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2' ++ echo '' ++ echo From +++ cat base-artifacts/results @@ -653,13 +4985,11 @@ ++ local print_arg=--long ++ case "$print_arg" in ++ echo 'CI config tcwg_kernel/llvm-master-arm-next-allmodconfig' -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return + true + generate_jenkins_html_files -# generate_jenkins_html_files -... Skipping -+ wait 7464 ++ wait 7501 + set -euf -o pipefail + echo '# generate_jenkins_html_files' + true @@ -793,6 +5123,14 @@ ++ echo -n '<a href="./08-check_regression/console.log.xz">./08-check_regression/console.log.xz</a>' + echo '<li><a href="./08-check_regression/console.log.xz">./08-check_regression/console.log.xz</a>' + read -r cur_file +++ print_readme_link html ./08-check_regression/results.regressions +++ set -euf -o pipefail +++ local text_type=html +++ local msg=./08-check_regression/results.regressions +++ case $text_type in +++ echo -n '<a href="./08-check_regression/results.regressions">./08-check_regression/results.regressions</a>' ++ echo '<li><a href="./08-check_regression/results.regressions">./08-check_regression/results.regressions</a>' ++ read -r cur_file ++ print_readme_link html ./git/binutils_rev ++ set -euf -o pipefail ++ local text_type=html @@ -1074,6 +5412,14 @@ ++ echo -n ./08-check_regression/console.log.xz + echo '- ./08-check_regression/console.log.xz' + read -r cur_file +++ print_readme_link txt ./08-check_regression/results.regressions +++ set -euf -o pipefail +++ local text_type=txt +++ local msg=./08-check_regression/results.regressions +++ case $text_type in +++ echo -n ./08-check_regression/results.regressions ++ echo '- ./08-check_regression/results.regressions' ++ read -r cur_file ++ print_readme_link txt ./git/binutils_rev ++ set -euf -o pipefail ++ local text_type=txt @@ -1257,34 +5603,34 @@ + echo '... Skipping' + return + generate_lnt_report -+ wait 7620 -# generate_lnt_report ++ wait 7661 + set -euf -o pipefail + local results_date + echo '# generate_lnt_report' +# generate_lnt_report + true -+ . /home/tcwg-buildslave/workspace/tcwg_kernel_1/jenkins-scripts/lnt-utils.sh ++ . /home/tcwg-buildslave/workspace/tcwg_kernel_0/jenkins-scripts/lnt-utils.sh ++ declare is_first_lnt_entry ++ get_current_manifest '{rr[results_date]}' ++ get_manifest artifacts/manifest.sh '{rr[results_date]}' ++ set +x -+ results_date=1703332648 -++ date '+%Y-%m-%d %H:%M:%S' --date @1703332648 ++ results_date=1703418467 +++ date '+%Y-%m-%d %H:%M:%S' --date @1703418467 ... Skipping -+ results_date='2023-12-23 11:57:28' +# release_testresults_files ++ results_date='2023-12-24 11:47:47' + local jira_key=- + '[' -f artifacts/notify/jira/key ']' + case "$ci_project" in + echo '... Skipping' + return -# release_testresults_files -... Done + false + true + release_testresults_files + echo '# release_testresults_files' + '[' -d artifacts/jenkins ']' + '[' -f artifacts/testresults/testresults-mail-recipients.txt ']' +... Done + echo '... Done' + post_to_jira # post_to_jira diff --git a/jenkins/notify-init.log b/jenkins/notify-init.log index 863004c..c075110 100644 --- a/jenkins/notify-init.log +++ b/jenkins/notify-init.log @@ -1,6 +1,6 @@ + set +x -/home/tcwg-buildslave/workspace/tcwg_kernel_1/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_kernel-build.sh +/home/tcwg-buildslave/workspace/tcwg_kernel_0/jenkins-scripts/round-robin-notify.sh @@rr[top_artifacts] artifacts --notify ignore __stage init __verbose true __build_script tcwg_kernel-build.sh + false + dryrun= @@ -26,28 +26,28 @@ ++ get_baseline_manifest BUILD_URL ++ get_manifest base-artifacts/manifest.sh BUILD_URL false ++ set +x -# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/ +# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/ # Using dir : base-artifacts -+ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/' ++ echo '# Baseline : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/' + echo '# Using dir : base-artifacts' ++ get_current_manifest BUILD_URL ++ get_manifest artifacts/manifest.sh BUILD_URL ++ set +x -# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/ +# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/ # Using dir : artifacts -+ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/' ++ echo '# Artifacts : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/' + echo '# Using dir : artifacts' + echo '' + mkdir -p artifacts/notify + '[' -f /home/tcwg-buildslave/.jipdate.yml ']' + set +x +# check_source_changes + case "$notify" in + declare -Ag pw + '[' ignore = precommit ']' + check_source_changes + echo '# check_source_changes' -# check_source_changes ++ get_current_manifest '{rr[update_baseline]}' ++ get_manifest artifacts/manifest.sh '{rr[update_baseline]}' ++ set +x @@ -61,130 +61,100 @@ +++ set -euf -o pipefail +++ local c delim= +++ for c in ${rr[components]} -+++ '[' xgit://sourceware.org/git/binutils-gdb.git#master '!=' xbaseline ']' -+++ echo -ne binutils -+++ delim=' ' -+++ for c in ${rr[components]} -+++ '[' xhttps://github.com/llvm/llvm-project.git#main '!=' xbaseline ']' -+++ echo -ne ' llvm' -+++ delim=' ' ++++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} +++ '[' xbaseline '!=' xbaseline ']' +++ for c in ${rr[components]} -+++ '[' xhttps://gitlab.com/qemu-project/qemu.git#master '!=' xbaseline ']' -+++ echo -ne ' qemu' ++++ '[' xhttps://git.linaro.org/kernel-org/linux-next.git#master '!=' xbaseline ']' ++++ echo -ne linux +++ delim=' ' ++++ for c in ${rr[components]} ++++ '[' xbaseline '!=' xbaseline ']' +++ echo ++ for c in $(print_updated_components) -+++ get_current_git binutils_rev ++++ get_current_git linux_rev +++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat artifacts/git/binutils_rev -+++ get_baseline_git binutils_rev ++++ cat artifacts/git/linux_rev ++++ get_baseline_git linux_rev +++ set -euf -o pipefail +++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' ++++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' +++ set -euf -o pipefail +x -+++ cat base-artifacts/git/binutils_rev -++ '[' xca86dbbdbc04fbe6298e597a3c94c8071ea722a1 '!=' x333a6b1a6399992cc98ac34727acf38136b770e6 ']' -++ echo -ne binutils -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git llvm_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/llvm_rev -+++ get_baseline_git llvm_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/llvm_rev -++ '[' x37fc9c6a4227b1736cc643eb95636d9f7ec30190 '!=' x36b6f77565c9d3d75c03600df4b8719bb518bdc0 ']' -++ echo -ne ' llvm' -++ delim=' ' -++ for c in $(print_updated_components) -+++ get_current_git qemu_rev -+++ set -euf -o pipefail -+++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' -+++ set -euf -o pipefail +x -+++ cat artifacts/git/qemu_rev -+++ get_baseline_git qemu_rev -+++ set -euf -o pipefail -+++ local base_artifacts=base-artifacts -+++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' -+++ set -euf -o pipefail +x -+++ cat base-artifacts/git/qemu_rev -++ '[' x80f1709aa0eb4de09b4240563463f991a5b9d855 '!=' x191710c221f65b1542f6ea7fa4d30dde6e134fd7 ']' -++ echo -ne ' qemu' ++++ cat base-artifacts/git/linux_rev +++ '[' x39676dfe52331dba909c617f213fdb21015c8d10 '!=' x857647efa9be89a13cf8963c7e167fab062b28bb ']' +++ echo -ne linux ++ delim=' ' ++ echo -# Debug traces : -# change_kind=multiple_components : binutils llvm qemu + local c base_rev cur_rev c_commits -+ '[' 3 = 0 ']' -+ '[' 3 = 1 ']' -+ change_kind=multiple_components -+ changed_single_component= -+ echo '# Debug traces :' -+ echo '# change_kind=multiple_components : binutils llvm qemu' -+ for c in "${changed_components[@]}" -++ get_baseline_git binutils_rev ++ '[' 1 = 0 ']' ++ '[' 1 = 1 ']' ++ changed_single_component=linux +++ get_current_git linux_rev ++ set -euf -o pipefail -++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No binutils_rev in baseline git' '[' -f base-artifacts/git/binutils_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/binutils_rev -+ base_rev=333a6b1a6399992cc98ac34727acf38136b770e6 -++ get_current_git binutils_rev +++ cat artifacts/git/linux_rev ++ first_bad=39676dfe52331dba909c617f213fdb21015c8d10 +++ get_baseline_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No binutils_rev in current git' '[' -f artifacts/git/binutils_rev ']' +++ local base_artifacts=base-artifacts +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/binutils_rev -+ cur_rev=ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -++ git -C binutils rev-list --count 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 -# rev for binutils : 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 (67 commits) -+ c_commits=67 -+ echo '# rev for binutils : 333a6b1a6399992cc98ac34727acf38136b770e6..ca86dbbdbc04fbe6298e597a3c94c8071ea722a1 (67 commits)' -+ for c in "${changed_components[@]}" -++ get_baseline_git llvm_rev +++ cat base-artifacts/git/linux_rev ++ last_good=857647efa9be89a13cf8963c7e167fab062b28bb ++ local res ++ res=0 ++ wait 7193 ++ git -C linux rev-parse --verify HEAD ++ assert_with_msg 'Cannot parse HEAD in repo linux' '[' 0 = 0 ']' ++ set -euf -o pipefail +x ++ single_commit_p linux ++ set -euf -o pipefail ++ local c=linux ++ local base_rev cur_rev sha1 +++ get_baseline_git linux_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No llvm_rev in baseline git' '[' -f base-artifacts/git/llvm_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/llvm_rev -+ base_rev=36b6f77565c9d3d75c03600df4b8719bb518bdc0 -++ get_current_git llvm_rev +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No llvm_rev in current git' '[' -f artifacts/git/llvm_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/llvm_rev -+ cur_rev=37fc9c6a4227b1736cc643eb95636d9f7ec30190 -++ git -C llvm rev-list --count 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 -# rev for llvm : 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 (204 commits) -+ c_commits=204 -+ echo '# rev for llvm : 36b6f77565c9d3d75c03600df4b8719bb518bdc0..37fc9c6a4227b1736cc643eb95636d9f7ec30190 (204 commits)' +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 +++ git -C linux rev-parse '39676dfe52331dba909c617f213fdb21015c8d10^@' ++ for sha1 in $(git -C "$c" rev-parse "$cur_rev^@") ++ '[' ab8a1e47afc0e8e19ef542c127784674711bf442 = 857647efa9be89a13cf8963c7e167fab062b28bb ']' ++ return 1 +# Debug traces : +# change_kind=single_component : linux ++ change_kind=single_component ++ echo '# Debug traces :' ++ echo '# change_kind=single_component : linux' + for c in "${changed_components[@]}" -++ get_baseline_git qemu_rev +++ get_baseline_git linux_rev ++ set -euf -o pipefail ++ local base_artifacts=base-artifacts -++ assert_with_msg 'ERROR: No qemu_rev in baseline git' '[' -f base-artifacts/git/qemu_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in baseline git' '[' -f base-artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat base-artifacts/git/qemu_rev -+ base_rev=191710c221f65b1542f6ea7fa4d30dde6e134fd7 -++ get_current_git qemu_rev +++ cat base-artifacts/git/linux_rev ++ base_rev=857647efa9be89a13cf8963c7e167fab062b28bb +++ get_current_git linux_rev ++ set -euf -o pipefail -++ assert_with_msg 'ERROR: No qemu_rev in current git' '[' -f artifacts/git/qemu_rev ']' +++ assert_with_msg 'ERROR: No linux_rev in current git' '[' -f artifacts/git/linux_rev ']' ++ set -euf -o pipefail +x -++ cat artifacts/git/qemu_rev -+ cur_rev=80f1709aa0eb4de09b4240563463f991a5b9d855 -++ git -C qemu rev-list --count 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 -# rev for qemu : 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 (37 commits) +++ cat artifacts/git/linux_rev ++ cur_rev=39676dfe52331dba909c617f213fdb21015c8d10 +++ git -C linux rev-list --count 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 +# rev for linux : 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 (906 commits) -+ c_commits=37 -+ echo '# rev for qemu : 191710c221f65b1542f6ea7fa4d30dde6e134fd7..80f1709aa0eb4de09b4240563463f991a5b9d855 (37 commits)' ++ c_commits=906 ++ echo '# rev for linux : 857647efa9be89a13cf8963c7e167fab062b28bb..39676dfe52331dba909c617f213fdb21015c8d10 (906 commits)' + echo '' + setup_stages_to_run + '[' ignore = onregression ']' @@ -209,7 +179,7 @@ + set -euf -o pipefail + echo '# post_interesting_commits' + local stage=init -+ '[' multiple_components '!=' single_commit ']' ++ '[' single_component '!=' single_commit ']' + return Init stage ran successfully. + '[' init '!=' full ']' diff --git a/jenkins/run-build.env b/jenkins/run-build.env index f0c050f..e4023ec 100644 --- a/jenkins/run-build.env +++ b/jenkins/run-build.env @@ -1,13 +1,9 @@ -build_name="#156" +build_name="#157" docker_opts=(--distro default ) source build_container.sh trap "cleanup_all_containers" EXIT -build_name="#156-binutils-llvm-qemu" -branch_opt=(==rr\[binutils_git\] -git://sourceware.org/git/binutils-gdb.git#master -==rr\[llvm_git\] -https://github.com/llvm/llvm-project.git#main -==rr\[qemu_git\] -https://gitlab.com/qemu-project/qemu.git#master ) -build_name="#156-binutils-llvm-qemu-R24086" +build_name="#157-linux" +branch_opt=(==rr\[linux_git\] +https://git.linaro.org/kernel-org/linux-next.git#master ) +build_name="#157-linux-R# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2" diff --git a/manifest.sh b/manifest.sh index 285ea3f..42a70de 100644 --- a/manifest.sh +++ b/manifest.sh @@ -6,23 +6,23 @@ rr[ci_config]="llvm-master-arm-next-allmodconfig" declare -g "scripts_branch=master" rr[mode]="build" rr[update_baseline]="onsuccess" -declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/" +declare -g "BUILD_URL=https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/" declare -g "SQUAD_GRP=" -rr[binutils_git]="git://sourceware.org/git/binutils-gdb.git#master" -rr[llvm_git]="https://github.com/llvm/llvm-project.git#main" -rr[qemu_git]="https://gitlab.com/qemu-project/qemu.git#master" +rr[linux_git]="https://git.linaro.org/kernel-org/linux-next.git#master" # Saving rr[] in the manifest rr[abe_branch]="master" rr[abe_repo]="https://git-us.linaro.org/toolchain/abe.git" rr[baseline_branch]="linaro-local/ci/tcwg_kernel/llvm-master-arm-next-allmodconfig" +rr[binutils_git]="baseline" rr[breakup_changed_components]="breakup_changed_components linux" rr[components]="binutils llvm linux qemu" rr[host_c++]="/usr/bin/g++" rr[host_cc]="/usr/bin/gcc" -rr[linux_git]="baseline" +rr[llvm_git]="baseline" rr[no_regression_p]="no_regression_p" rr[no_regression_result]="0" +rr[qemu_git]="baseline" rr[target]="arm" rr[toolchain]="llvm" declare -g "notify=ignore" -rr[results_date]="1703332648" +rr[results_date]="1703418467" diff --git a/notify/jira/comment-template.txt b/notify/jira/comment-template.txt index bfe5cb8..e60880d 100644 --- a/notify/jira/comment-template.txt +++ b/notify/jira/comment-template.txt @@ -1,3 +1,3 @@ -[LLVM-646] +[LLVM-647] Success -Details: https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts/notify/mail-body.txt/*view*/ +Details: https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/artifact/artifacts/notify/mail-body.txt/*view*/ diff --git a/notify/mail-body.txt b/notify/mail-body.txt index 28d3652..e7085b1 100644 --- a/notify/mail-body.txt +++ b/notify/mail-body.txt @@ -4,25 +4,13 @@ We appreciate that it might be difficult to find the necessary logs or reproduce In CI config tcwg_kernel/llvm-master-arm-next-allmodconfig after: - | 308 commits in binutils,llvm,qemu - | ca86dbbdbc0 binutils: SECURITY: use https URI - | d27473e7c54 LoongArch: Add testsuit for DESC and tls transition and tls relaxation. - | ae296cc4525 LoongArch: Add support for TLS LD/GD/DESC relaxation - | 3898e04b8e4 LoongArch: Add tls transition support. - | 4f248d61eb9 LoongArch: Add support for TLSDESC in ld. - | ... and 62 more commits in binutils - | 37fc9c6a4227 [clang-tidy][NFC] Enable exceptions in test for bugprone-unused-local-non-trivial-variable - | 007ed0dccd6a [clang-tidy][NFC] Enable exceptions in test for bugprone-unused-local-non-trivial-variable - | 3f85fb9a021b [gn build] Port 952d344f3e25 - | 952d344f3e25 [clang-tidy] introduce a unused local non trival variable check (#76101) - | 48f36c6e742e [LLVM] Make use of s_flbit_i32_b64 and s_ff1_i32_b64 (#75158) - | ... and 199 more commits in llvm - | 80f1709aa0 Merge tag 'pull-loongarch-20231221' of https://gitlab.com/gaosong/qemu into staging - | 6370d13c62 Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging - | b6948ab01d virtio-blk: add iothread-vq-mapping parameter - | cf03a152c5 qdev: add IOThreadVirtQueueMappingList property type - | 350147a871 qdev-properties: alias all object class properties - | ... and 32 more commits in qemu + | 906 commits in linux + | 39676dfe52331 Add linux-next specific files for 20231222 + | ab8a1e47afc0e Merge branch 'header_cleanup' of https://evilpiepirate.org/git/bcachefs.git + | ca262a7814bf2 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git + | b7f81768b1680 Merge branch 'nolibc' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git + | 8c304152288d1 Merge branch 'for-next/kspp' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git + | ... and 901 more commits in linux Results changed to # reset_artifacts: @@ -34,7 +22,19 @@ Results changed to # build_abe qemu: -2 # linux_n_obj: -24086 +24085 +# First few build errors in logs: + +# 00:06:03 drivers/dma/xilinx/xdma.c:757:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:759:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:729:1: error: no previous prototype for function 'xdma_prep_interleaved_dma' [-Werror,-Wmissing-prototypes] +# 00:06:03 drivers/dma/xilinx/xdma.c:894:3: error: variable 'desc' is uninitialized when used here [-Werror,-Wuninitialized] +# 00:06:03 make[5]: *** [scripts/Makefile.build:243: drivers/dma/xilinx/xdma.o] Error 1 +# 00:06:09 make[4]: *** [scripts/Makefile.build:481: drivers/dma/xilinx] Error 2 +# 00:08:04 ./include/linux/fortify-string.h:489:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning] +# 00:08:04 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1 +# 00:08:28 make[3]: *** [scripts/Makefile.build:481: drivers/dma] Error 2 +# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2 From # reset_artifacts: @@ -54,6 +54,6 @@ CI config tcwg_kernel/llvm-master-arm-next-allmodconfig -----------------8<--------------------------8<--------------------------8<-------------------------- The information below can be used to reproduce a debug environment: -Current build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts -Reference build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/154/artifact/artifacts +Current build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/157/artifact/artifacts +Reference build : https://ci.linaro.org/job/tcwg_kernel--llvm-master-arm-next-allmodconfig-build/156/artifact/artifacts diff --git a/notify/mail-recipients.txt b/notify/mail-recipients.txt index aa219ef..f4dbb23 100644 --- a/notify/mail-recipients.txt +++ b/notify/mail-recipients.txt @@ -1 +1 @@ -bcc:tcwg-validation@linaro.org +bcc:tcwg-validation@linaro.org,llvm@lists.linux.dev diff --git a/notify/mail-subject.txt b/notify/mail-subject.txt index c011fcc..3ed95d5 100644 --- a/notify/mail-subject.txt +++ b/notify/mail-subject.txt @@ -1 +1 @@ -[Linaro-TCWG-CI] 308 commits in binutils,llvm,qemu: Success on arm +[Linaro-TCWG-CI] 906 commits in linux: Success on arm @@ -7,4 +7,16 @@ # build_abe qemu: -2 # linux_n_obj: -24086 +24085 +# First few build errors in logs: + +# 00:06:03 drivers/dma/xilinx/xdma.c:757:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:759:68: error: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Werror,-Wparentheses] +# 00:06:03 drivers/dma/xilinx/xdma.c:729:1: error: no previous prototype for function 'xdma_prep_interleaved_dma' [-Werror,-Wmissing-prototypes] +# 00:06:03 drivers/dma/xilinx/xdma.c:894:3: error: variable 'desc' is uninitialized when used here [-Werror,-Wuninitialized] +# 00:06:03 make[5]: *** [scripts/Makefile.build:243: drivers/dma/xilinx/xdma.o] Error 1 +# 00:06:09 make[4]: *** [scripts/Makefile.build:481: drivers/dma/xilinx] Error 2 +# 00:08:04 ./include/linux/fortify-string.h:489:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning] +# 00:08:04 make[5]: *** [scripts/Makefile.build:243: fs/smb/client/cifsencrypt.o] Error 1 +# 00:08:28 make[3]: *** [scripts/Makefile.build:481: drivers/dma] Error 2 +# 00:09:36 make[4]: *** [scripts/Makefile.build:481: fs/smb/client] Error 2 |