[GHC] #16201: ghci063 failing on Darwin
#16201: ghci063 failing on Darwin ----------------------------------------+--------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Keywords: | Operating System: MacOS X Architecture: Unknown/Multiple | Type of failure: None/Unknown Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: ----------------------------------------+--------------------------------- {{{#!diff --- /dev/null 2019-01-16 12:17:41.000000000 -0800 +++ ghci/scripts/ghci063.run/ghci063.run.stderr.normalised 2019-01-16 12:17:42.000000000 -0800 @@ -0,0 +1,2 @@ + +B.hs:1:1: parse error on input ‘***’ }}} The test in question is just a normal `ghci_script` test: {{{ :! echo module A where {} >A.hs :! echo module B where { import A } >B.hs :load B -- We're going to replace B.hs with an invalid module but without -- changing its timestamp. A :reload should *not* look at the -- contents of the file, because the timestamp hasn't changed. :! cp B.hs B.hs-copy :! touch -r B.hs B.hs-copy :! echo "*** INVALID ***" >B.hs :! touch -r B.hs-copy B.hs :reload -- Put the original file back, now it should work :! cp B.hs-copy B.hs :reload }}} I have no idea why GHCi would be trying to parse the `!echo`, much less only on Darwin. This is currently the last issue Darwin issue keeping us from setting `allow_failure` to false so I'm going to mark this as broken. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: Operating System: MacOS X | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by RyanGlScott): Ironically, `ghci063` is now breaking the CI build on `validate- x86_64-darwin` because it is unexpectedly passing (nondeterministically, of course). Here is an example from a [https://ghc- gitlab.s3.amazonaws.com/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b/2019_02_24/34776/53677/job.log ?response-content-type=text/plain%3B%20charset%3Dutf-8&response-content- disposition=inline&X-Amz-Expires=600&X-Amz-Date=20190224T105625Z&X-Amz- Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI3NPPHETCY4XXTOA/20190224 /us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz- Signature=4f88ddb6c4ecf5cb462c3b70b16a2e4e3f5d8a25a107a97621d1e942d51f7a48 recent run]: {{{ =====> ghci063(ghci) 1644 of 6844 [0, 0, 0] cd "ghci/scripts/ghci063.run" && HC="/Users/builder/builds/b4bc6410/0/ghc/ghc/inplace/bin/ghc-stage2" HC_OPTS="-dcore-lint -dstg-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics- color=never -fno-diagnostics-show-caret -Werror=compat -dno-debug-output " "/Users/builder/builds/b4bc6410/0/ghc/ghc/inplace/bin/ghc-stage2" --interactive -v0 -ignore-dot-ghci -fno-ghci-history +RTS -I0.1 -RTS -fghci-leak-check -dcore-lint -dstg-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -Werror=compat -dno- debug-output < ghci063.script <elided> *** unexpected pass for ghci063(ghci) <elided> SUMMARY for test run started at Sat Feb 23 21:45:56 2019 PST 0:27:56 spent to go through 6844 total tests, which gave rise to 26554 test cases, of which 19254 were skipped 42 had missing libraries 7156 expected passes 101 expected failures 0 caused framework failures 0 caused framework warnings 1 unexpected passes 0 unexpected failures 0 unexpected stat failures Unexpected passes: ghci/scripts/ghci063.run ghci063 [unexpected] (ghci) }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Changes (by RyanGlScott): * keywords: => ci-breakage -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by int-index): I have confirmed the non-deterministic nature of this locally. Out of 6 repeated runs there was 1 unexpected pass. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by int-index): I figured it out, `touch -r` leads to precision loss: {{{ ghc(master)*$ echo "" > file ghc(master)*$ /nix/store/acnfbicd84bnya2l2dq868b5l482qihw- coreutils-8.30/bin/stat file File: file Size: 1 Blocks: 8 IO Block: 4096 regular file Device: 1000004h/16777220d Inode: 14905419 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 501/int-index) Gid: ( 20/ staff) Access: 2019-02-25 01:11:23.807505116 +0300 Modify: 2019-02-25 01:11:23.807627350 +0300 Change: 2019-02-25 01:11:23.807627350 +0300 Birth: 2019-02-25 01:11:23.807505116 +0300 ghc(master)*$ touch -r file file ghc(master)*$ /nix/store/acnfbicd84bnya2l2dq868b5l482qihw- coreutils-8.30/bin/stat file File: file Size: 1 Blocks: 8 IO Block: 4096 regular file Device: 1000004h/16777220d Inode: 14905419 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 501/int-index) Gid: ( 20/ staff) Access: 2019-02-25 01:11:23.807505000 +0300 Modify: 2019-02-25 01:11:23.807627000 +0300 Change: 2019-02-25 01:11:39.159813166 +0300 Birth: 2019-02-25 01:11:23.807505116 +0300 }}} The test passes nondeterministically when the last three digits are zero even before `touch`, I think. I was lucky to observe this locally after only a few runs, otherwise I would probably not even attempt to debug this! The solution is to do `touch -r B.hs B.hs` to nullify the digits before we run other `touch -r` commands. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/440 -------------------------------------+------------------------------------- Changes (by int-index): * differential: => https://gitlab.haskell.org/ghc/ghc/merge_requests/440 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: patch Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/440 -------------------------------------+------------------------------------- Changes (by int-index): * status: new => patch -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: patch Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/440 -------------------------------------+------------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"0b705fadf936eaf48aaca26d2f7c8c9ae9158c66/ghc" 0b705fad/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="0b705fadf936eaf48aaca26d2f7c8c9ae9158c66" testsuite: Mark ghci063 as broken on Darwin This is the last failing test on Darwin preventing us from disallowing CI failures. See #16201. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#16201: ghci063 failing on Darwin -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: patch Priority: highest | Milestone: 8.8.1 Component: Compiler | Version: 8.6.3 Resolution: | Keywords: ci-breakage Operating System: MacOS X | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | https://gitlab.haskell.org/ghc/ghc/merge_requests/440 -------------------------------------+------------------------------------- Comment (by Vladislav Zavialov <vlad.z.4096@…>): In [changeset:"f320f3b2f2f421af41b8f7588529ed46bbe6ccf3/ghc" f320f3b/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="f320f3b2f2f421af41b8f7588529ed46bbe6ccf3" Fix the ghci063 test on Darwin (Trac #16201) We use "touch -r" to set modification timestamps, which leads to precision loss on Darwin. For example, before: 2019-02-25 01:11:23.807627350 +0300 after: 2019-02-25 01:11:23.807627000 +0300 ^^^ This means we can't trick GHCi into thinking the file hasn't been changed by restoring its old timestamp, as we cannot faithfully restore all digits. The solution is to nullify the insignificant digits before the first :load }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16201#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC