[GHC] #11204: Recompilation checking stochastically broken on Darwin

GHC ghc-devs at haskell.org
Fri Dec 11 21:07:44 UTC 2015


#11204: Recompilation checking stochastically broken on Darwin
-----------------------------+----------------------------------------
        Reporter:  bgamari   |                Owner:
            Type:  bug       |               Status:  new
        Priority:  normal    |            Milestone:  8.2.1
       Component:  Compiler  |              Version:  7.11
      Resolution:            |             Keywords:
Operating System:  MacOS X   |         Architecture:  Unknown/Multiple
 Type of failure:  Other     |            Test Case:
      Blocked By:            |             Blocking:
 Related Tickets:            |  Differential Rev(s):
       Wiki Page:            |
-----------------------------+----------------------------------------
Description changed by bgamari:

Old description:

> The `retc001` test usually fails on Darwin. Unfortunately, it also
> sometimes passes.
>
> Failures look like this,
> {{{
> =====> retc001(normal) 1 of 1 [0, 0, 0]
> cd . && $MAKE -s --no-print-directory retc001    </dev/null >
> retc001.run.stdout 2> retc001.run.stderr
> Actual stderr output differs from expected:
> --- ./retc001.stderr.normalised 2015-12-11 23:02:23.000000000 +0200
> +++ ./retc001.run.stderr.normalised     2015-12-11 23:02:23.000000000
> +0200
> @@ -1,2 +0,0 @@
> -
> -C.hs:3:11: Module ‘B’ does not export ‘foo’
> \ No newline at end of file
> Actual stdout output differs from expected:
> --- ./retc001.stdout.normalised 2015-12-11 23:02:23.000000000 +0200
> +++ ./retc001.run.stdout.normalised     2015-12-11 23:02:23.000000000
> +0200
> @@ -3,5 +3,3 @@
>  [3 of 3] Compiling Main             ( C.hs, nothing )
>  Middle
>  End
> -[2 of 3] Compiling B                ( B.hs, nothing )
> -[3 of 3] Compiling Main             ( C.hs, nothing ) [B changed]
> \ No newline at end of file
> *** unexpected failure for retc001(normal)
> }}}
>
> I suspect the problem is mtime resolution as if I apply the following
> patch it almost always passes,
> {{{
> diff --git a/testsuite/tests/driver/retc001/Makefile
> b/testsuite/tests/driver/retc001/Makefile
> index a3cf6eb..bb1eca8 100644
> --- a/testsuite/tests/driver/retc001/Makefile
> +++ b/testsuite/tests/driver/retc001/Makefile
> @@ -20,5 +20,6 @@ retc001: clean
>         echo 'Middle'
>         '$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) -fno-code -fwrite-
> interface --make C.hs
>         echo 'End'
> +       sleep 1
>         cp B2.hs B.hs
>         -'$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) -fno-code -fwrite-
> interface --make C.hs
> }}}

New description:

 The `retc001` test usually fails on Darwin. Unfortunately, it also
 sometimes passes.

 Failures look like this,
 {{{
 =====> retc001(normal) 1 of 1 [0, 0, 0]
 cd . && $MAKE -s --no-print-directory retc001    </dev/null >
 retc001.run.stdout 2> retc001.run.stderr
 Actual stderr output differs from expected:
 --- ./retc001.stderr.normalised 2015-12-11 23:02:23.000000000 +0200
 +++ ./retc001.run.stderr.normalised     2015-12-11 23:02:23.000000000
 +0200
 @@ -1,2 +0,0 @@
 -
 -C.hs:3:11: Module ‘B’ does not export ‘foo’
 \ No newline at end of file
 Actual stdout output differs from expected:
 --- ./retc001.stdout.normalised 2015-12-11 23:02:23.000000000 +0200
 +++ ./retc001.run.stdout.normalised     2015-12-11 23:02:23.000000000
 +0200
 @@ -3,5 +3,3 @@
  [3 of 3] Compiling Main             ( C.hs, nothing )
  Middle
  End
 -[2 of 3] Compiling B                ( B.hs, nothing )
 -[3 of 3] Compiling Main             ( C.hs, nothing ) [B changed]
 \ No newline at end of file
 *** unexpected failure for retc001(normal)
 }}}

 I suspect the problem is mtime resolution as the test nearly always passes
 with the following patch,
 {{{
 diff --git a/testsuite/tests/driver/retc001/Makefile
 b/testsuite/tests/driver/retc001/Makefile
 index a3cf6eb..bb1eca8 100644
 --- a/testsuite/tests/driver/retc001/Makefile
 +++ b/testsuite/tests/driver/retc001/Makefile
 @@ -20,5 +20,6 @@ retc001: clean
         echo 'Middle'
         '$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) -fno-code -fwrite-interface
 --make C.hs
         echo 'End'
 +       sleep 1
         cp B2.hs B.hs
         -'$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) -fno-code -fwrite-
 interface --make C.hs
 }}}

--

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11204#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list