Message ID | lijgrq$f8s$1@ger.gmane.org |
---|---|
State | Superseded |
Headers |
Return-Path: <x14307373@homiemail-mx23.g.dreamhost.com> X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx23.g.dreamhost.com (mx2.sub5.homie.mail.dreamhost.com [208.113.200.128]) by wilcox.dreamhost.com (Postfix) with ESMTP id 4BBB9360072 for <siddhesh@wilcox.dreamhost.com>; Tue, 15 Apr 2014 07:48:51 -0700 (PDT) Received: by homiemail-mx23.g.dreamhost.com (Postfix, from userid 14307373) id D978062B2423C; Tue, 15 Apr 2014 07:48:50 -0700 (PDT) X-Original-To: glibc@patchwork.siddhesh.in Delivered-To: x14307373@homiemail-mx23.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx23.g.dreamhost.com (Postfix) with ESMTPS id 6F88662B02957 for <glibc@patchwork.siddhesh.in>; Tue, 15 Apr 2014 07:48:50 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:to:from:subject:date:message-id:mime-version :content-type; q=dns; s=default; b=SyXn5N4choJ+zUjxd8lA9MGKmQNUJ n1h0BsWxUGxYFkRe+rX2I5fAUCsb3RIcgBatLOmkYBPmAPgJ/r4RTAvZ3rtZmazP sIWA6lBdHNPIcjOS/+Kk/tPrW5TrPU8IHniDmEQxGYby5hhXEeAolRuI3LJBttMB em0aIpoIu2eWp8= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:to:from:subject:date:message-id:mime-version :content-type; s=default; bh=FkmxnbJHxgED4oZn/49Yk6EhH7Q=; b=VWS nZisa6ff3gG9eIleT621jVW3fBm/mrdSOQRJBN4yuOlOf+Pr++FOGZzbjYksloln s04R29Ai9+rxW/+p9cfzcUgAs+Hj4UhpZnE53xwZxbZfX5KERy1X2v9YN6aRLfr1 ndO+yKHT9ktj1QuxaPAfj8e0cTtvBoN4YqeczL+8= Received: (qmail 10396 invoked by alias); 15 Apr 2014 14:48:47 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-glibc=patchwork.siddhesh.in@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 10382 invoked by uid 89); 15 Apr 2014 14:48:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-HELO: plane.gmane.org To: libc-alpha@sourceware.org From: Stefan Liebler <stli@linux.vnet.ibm.com> Subject: [PATCH] Do not run timezone tests in parallel. Date: Tue, 15 Apr 2014 16:48:26 +0200 Lines: 57 Message-ID: <lijgrq$f8s$1@ger.gmane.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090707070404040209040207" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 X-DH-Original-To: glibc@patchwork.siddhesh.in |
Commit Message
Stefan Liebler
April 15, 2014, 2:48 p.m. UTC
Hi, running the testsuite with PARALLELMFLAGS="-j2" leads to an UNRESOLVED test: timezone/testdata/UTC. -> The timezone/testdata/UTC.test-result file does not exist and timezone/testdata/Etc/UTC.test-result exists. According to the output of make, Etc/UTC is called directly before UTC and both targets collide in parallel execution. Thus we should not execute the timezone-tests in parallel. Ok to commit? Bye --- 2014-04-15 Stefan Liebler <stli@linux.vnet.ibm.com> * timezone/Makefile: Do nothing in parallel. ---
Comments
Stefan Liebler <stli@linux.vnet.ibm.com> writes: > @@ -102,7 +105,6 @@ $(testdata)/America/New_York: northamerica $(zic-deps) > $(build-testdata) > $(testdata)/Etc/UTC: etcetera $(zic-deps) > $(build-testdata) > -# Use a pattern rule to indicate the command produces both targets at once. > # Two separate targets built separately can collide if in parallel. > %/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC > $(build-testdata) Why is that comment no longer relevant? Andreas.
Stefan Liebler <stli@linux.vnet.ibm.com> writes: > According to the output of make, Etc/UTC is called directly before UTC > and both targets collide in parallel execution. In which way do they collide? Andreas.
I´ve tested the different cases: -(1) .NOTPARALLEL Makefile with -j2 -(2) original Makefile with -j2 The difference is, that in case (1) timezone/testdata/UTC.test-result is generated by the rule %/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC $(build-testdata) and timezone/testdata/Universal.test-result does not exist. In case (2) it is vice versa. timezone/testdata/Universal.test-result exists, but timezone/testdata/UTC.test-result does not, which leads to the unresolved test. In case (1) it is no UNRESOLVED-test, because Universal is not added to test-special: test-zones := America/New_York Etc/UTC UTC Europe/Berlin \ Australia/Melbourne America/Sao_Paulo Asia/Tokyo tests-special += $(addprefix $(testdata)/, $(test-zones)) In the following i excerpted the relevant lines of make --debug=v output: -(1) .NOTPARALLEL Makefile with -j2: ------------------------------------ > timezone/testdata/America/New_York.test-result > timezone/testdata/Etc/UTC.test-result Must remake target `glibcNOTPARALLEL/timezone/testdata/UTC'. Invoking recipe from Makefile:111 to update target `glibcNOTPARALLEL/timezone/testdata/UTC'. > timezone/testdata/UTC.test-result > timezone/test-tz.test-result > timezone/testdata/Europe/Berlin.test-result Successfully remade target file `glibcNOTPARALLEL/timezone/testdata/Europe/Berlin'. Considering target file `glibcNOTPARALLEL/timezone/testdata/Universal'. File `glibcNOTPARALLEL/timezone/testdata/Universal' was considered already. Considering target file `glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne'. File `glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne' does not exist. > timezone/testdata/Australia/Melbourne.test-result > timezone/testdata/America/Sao_Paulo.test-result > timezone/testdata/Asia/Tokyo.test-result > timezone/tst-timezone.test-result -(2) original Makefile with -j2: -------------------------------- > timezone/testdata/America/New_York.test-result > timezone/testdata/Etc/UTC.test-result Recipe of `glibcJ2/timezone/testdata/Etc/UTC' is being run. Considering target file `glibcJ2/timezone/testdata/UTC'. File `glibcJ2/timezone/testdata/UTC' does not exist. Finished prerequisites of target file `glibcJ2/timezone/testdata/UTC'. The prerequisites of `glibcJ2/timezone/testdata/UTC' are being made. Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'. The prerequisites of `glibcJ2/timezone/test-tz.out' are being made. Considering target file `glibcJ2/timezone/tst-timezone.out'. File `glibcJ2/timezone/tst-timezone.out' does not exist. Considering target file `glibcJ2/timezone/tst-timezone'. File `glibcJ2/timezone/tst-timezone' was considered already. Considering target file `glibcJ2/timezone/testdata/Europe/Berlin'. File `glibcJ2/timezone/testdata/Europe/Berlin' does not exist. Finished prerequisites of target file `glibcJ2/timezone/testdata/Europe/Berlin'. Must remake target `glibcJ2/timezone/testdata/Europe/Berlin'. Invoking recipe from Makefile:110 to update target `glibcJ2/timezone/testdata/Europe/Berlin'. > timezone/testdata/Europe/Berlin.test-result Considering target file `glibcJ2/timezone/testdata/Universal'. File `glibcJ2/timezone/testdata/Universal' does not exist. Finished prerequisites of target file `glibcJ2/timezone/testdata/Universal'. Must remake target `glibcJ2/timezone/testdata/Universal'. Invoking recipe from Makefile:108 to update target `glibcJ2/timezone/testdata/Universal'. > timezone/testdata/Universal.test-result > timezone/testdata/Australia/Melbourne.test-result > timezone/testdata/America/Sao_Paulo.test-result > timezone/testdata/Asia/Tokyo.test-result Considering target file `glibcJ2/timezone/test-tz.out'. File `glibcJ2/timezone/test-tz.out' does not exist. Considering target file `glibcJ2/timezone/testdata/America/New_York'. File `glibcJ2/timezone/testdata/America/New_York' was considered already. Considering target file `glibcJ2/timezone/testdata/Etc/UTC'. File `glibcJ2/timezone/testdata/Etc/UTC' was considered already. Considering target file `glibcJ2/timezone/testdata/UTC'. File `glibcJ2/timezone/testdata/UTC' was considered already. Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'. Must remake target `glibcJ2/timezone/test-tz.out'. Invoking recipe from ../Rules:200 to update target `glibcJ2/timezone/test-tz.out'. > timezone/test-tz.test-result > timezone/tst-timezone.test-result Bye On 04/16/2014 12:19 PM, Andreas Schwab wrote: > Stefan Liebler <stli@linux.vnet.ibm.com> writes: > >> According to the output of make, Etc/UTC is called directly before UTC >> and both targets collide in parallel execution. > > In which way do they collide? > > Andreas. >
That has nothing to do with parallel execution, but only with the fact that the pattern rule creates two targets with a single command, but it is unspecified which target triggers it. There are no races involved. Andreas.
On Wed, Apr 16, 2014 at 8:21 AM, Stefan Liebler <stli@linux.vnet.ibm.com> wrote: > I´ve tested the different cases: > -(1) .NOTPARALLEL Makefile with -j2 > -(2) original Makefile with -j2 > > > The difference is, that in case (1) timezone/testdata/UTC.test-result is > generated by the rule > > %/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC > $(build-testdata) > and timezone/testdata/Universal.test-result does not exist. > > In case (2) it is vice versa. > timezone/testdata/Universal.test-result exists, > but timezone/testdata/UTC.test-result does not, which leads to the > unresolved test. > In case (1) it is no UNRESOLVED-test, because Universal is not added to > test-special: > test-zones := America/New_York Etc/UTC UTC Europe/Berlin \ > Australia/Melbourne America/Sao_Paulo Asia/Tokyo > tests-special += $(addprefix $(testdata)/, $(test-zones)) > > > In the following i excerpted the relevant lines of make --debug=v output: > -(1) .NOTPARALLEL Makefile with -j2: > ------------------------------------ >> timezone/testdata/America/New_York.test-result >> timezone/testdata/Etc/UTC.test-result > Must remake target `glibcNOTPARALLEL/timezone/testdata/UTC'. > Invoking recipe from Makefile:111 to update target > `glibcNOTPARALLEL/timezone/testdata/UTC'. >> timezone/testdata/UTC.test-result >> timezone/test-tz.test-result >> timezone/testdata/Europe/Berlin.test-result > Successfully remade target file > `glibcNOTPARALLEL/timezone/testdata/Europe/Berlin'. > Considering target file `glibcNOTPARALLEL/timezone/testdata/Universal'. > File `glibcNOTPARALLEL/timezone/testdata/Universal' was considered > already. > Considering target file > `glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne'. > File `glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne' does not > exist. >> timezone/testdata/Australia/Melbourne.test-result >> timezone/testdata/America/Sao_Paulo.test-result >> timezone/testdata/Asia/Tokyo.test-result >> timezone/tst-timezone.test-result > > > -(2) original Makefile with -j2: > -------------------------------- >> timezone/testdata/America/New_York.test-result >> timezone/testdata/Etc/UTC.test-result > Recipe of `glibcJ2/timezone/testdata/Etc/UTC' is being run. > Considering target file `glibcJ2/timezone/testdata/UTC'. > File `glibcJ2/timezone/testdata/UTC' does not exist. > Finished prerequisites of target file `glibcJ2/timezone/testdata/UTC'. > The prerequisites of `glibcJ2/timezone/testdata/UTC' are being made. > Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'. > The prerequisites of `glibcJ2/timezone/test-tz.out' are being made. > Considering target file `glibcJ2/timezone/tst-timezone.out'. > File `glibcJ2/timezone/tst-timezone.out' does not exist. > Considering target file `glibcJ2/timezone/tst-timezone'. > File `glibcJ2/timezone/tst-timezone' was considered already. > Considering target file `glibcJ2/timezone/testdata/Europe/Berlin'. > File `glibcJ2/timezone/testdata/Europe/Berlin' does not exist. > Finished prerequisites of target file > `glibcJ2/timezone/testdata/Europe/Berlin'. > Must remake target `glibcJ2/timezone/testdata/Europe/Berlin'. > Invoking recipe from Makefile:110 to update target > `glibcJ2/timezone/testdata/Europe/Berlin'. >> timezone/testdata/Europe/Berlin.test-result > Considering target file `glibcJ2/timezone/testdata/Universal'. > File `glibcJ2/timezone/testdata/Universal' does not exist. > Finished prerequisites of target file > `glibcJ2/timezone/testdata/Universal'. > Must remake target `glibcJ2/timezone/testdata/Universal'. > Invoking recipe from Makefile:108 to update target > `glibcJ2/timezone/testdata/Universal'. >> timezone/testdata/Universal.test-result >> timezone/testdata/Australia/Melbourne.test-result >> timezone/testdata/America/Sao_Paulo.test-result >> timezone/testdata/Asia/Tokyo.test-result > Considering target file `glibcJ2/timezone/test-tz.out'. > File `glibcJ2/timezone/test-tz.out' does not exist. > Considering target file `glibcJ2/timezone/testdata/America/New_York'. > File `glibcJ2/timezone/testdata/America/New_York' was considered > already. > Considering target file `glibcJ2/timezone/testdata/Etc/UTC'. > File `glibcJ2/timezone/testdata/Etc/UTC' was considered already. > Considering target file `glibcJ2/timezone/testdata/UTC'. > File `glibcJ2/timezone/testdata/UTC' was considered already. > Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'. > Must remake target `glibcJ2/timezone/test-tz.out'. > Invoking recipe from ../Rules:200 to update target > `glibcJ2/timezone/test-tz.out'. >> timezone/test-tz.test-result >> timezone/tst-timezone.test-result > Does it fix https://sourceware.org/bugzilla/show_bug.cgi?id=14096
> > Does it fix > > https://sourceware.org/bugzilla/show_bug.cgi?id=14096 > > No. tst-timezone passes in both cases.
diff --git a/timezone/Makefile b/timezone/Makefile index 998cd14..2f6e80e 100644 --- a/timezone/Makefile +++ b/timezone/Makefile @@ -85,6 +85,9 @@ GCONV_PATH=${common-objpfx}iconvdata LANGUAGE=C LC_ALL=C \ $(evaluate-test) endef + +.NOTPARALLEL: + $(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC) $(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \ Europe/Berlin Universal \ @@ -102,7 +105,6 @@ $(testdata)/America/New_York: northamerica $(zic-deps) $(build-testdata) $(testdata)/Etc/UTC: etcetera $(zic-deps) $(build-testdata) -# Use a pattern rule to indicate the command produces both targets at once. # Two separate targets built separately can collide if in parallel. %/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC $(build-testdata)