[GHC] #15061: print022 testcase fails on i386
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- CircleCI's i386 way is showing this failure of `print002` in the `ghci` way, {{{ Actual stderr output differs from expected: --- /dev/null 2018-04-18 16:05:23.479353000 +0000 +++ ./ghci.debugger/scripts/print022.run/print022.run.stderr.normalised 2018-04-19 13:53:47.685662431 +0000 @@ -0,0 +1 @@ +*** Exception: Prelude.chr: bad argument: 1493110744 *** unexpected failure for print022(ghci) }}} This is a bit frightening as it suggests that there is memory unsafety here. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): The failure of `T13825-debugger` on i386 in the `ghci` way looks very similar to this, {{{ Actual stdout output differs from expected: --- ./ghci.debugger/scripts/T13825-debugger.run/T13825-debugger.stdout.normalised 2018-04-19 18:13:10.621276834 +0000 +++ ./ghci.debugger/scripts/T13825-debugger.run/T13825-debugger.run.stdout.normalised 2018-04-19 18:13:10.621276834 +0000 @@ -4,5 +4,6 @@ packed2 = Packed2 12.34 56.78 42 99.99 Packed3 1 2 3 4 5 6 7.8 9.0 packed3 = Packed3 - (GHC.Word.W8# 1) (GHC.Int.I8# 2) (GHC.Int.I64# 3) (GHC.Word.W16# 4) - (GHC.Word.W64# 5) (GHC.Word.W32# 6) 7.8 9.0 + (GHC.Word.W8# 1) (GHC.Int.I8# 2) (GHC.Int.I64# 12884901891) + (GHC.Word.W16# 4) (GHC.Word.W64# 21474836485) (GHC.Word.W32# 6) 7.8 + 9.0 *** unexpected failure for T13825-debugger(ghci) }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * keywords: => ci-breakage -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by osa1): I get a different failure: {{{ omer@i386-chroot:~/ghc/testsuite/tests/ghci.debugger/scripts$ ~/ghc/inplace/bin/ghc-stage2 --interactive GHCi, version 8.5.20180524: http://www.haskell.org/ghc/ :? for help Prelude> :l print022.hs [1 of 1] Compiling Main ( print022.hs, interpreted ) Ok, one module loaded. *Main> seq test () () *Main> :print test test = C*** Exception: Prelude.!!: index too large }}} The `!!` error is definitely not caused by the interpreted program. I think it may be GHCi driver bug (maybe in `InteractiveEval` or related modules). -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): I suspect the `!!` error is in fact caused by memory unsafety. I do wonder where the failing call site is, however. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Ben Gamari <ben@…>): In [changeset:"9897440ec9fbf17fb609e9a0d9456861c5f7f24a/ghc" 9897440/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="9897440ec9fbf17fb609e9a0d9456861c5f7f24a" testsuite: Mark print022 as broken on 32-bit platforms Due to #15061. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: bgamari Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * owner: (none) => bgamari -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: osa1 Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by osa1): * owner: bgamari => osa1 Comment: Fixed this bug but run out of time before getting the patch ready for reviews. Will submit it tomorrow. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: osa1 Type: bug | Status: patch Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4906 Wiki Page: | -------------------------------------+------------------------------------- Changes (by osa1): * status: new => patch * differential: => Phab:D4906 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: osa1 Type: bug | Status: patch Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4906 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Ömer Sinan Ağacan <omeragacan@…>): In [changeset:"15bb4e0b6c08b1f8f5511f04af14242f13833ed1/ghc" 15bb4e0b/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="15bb4e0b6c08b1f8f5511f04af14242f13833ed1" Fix nptr field alignment in RtClosureInspect `extractSubTerms` (which is extracting pointer and non-pointer fields of a closure) was computing the alignment incorrectly when aligning a 64-bit value (e.g. a Double) on i386 by aligning it to 64-bits instead of to word size (32-bits). This is documented in `mkVirtHeapOffsetsWithPadding`:
Align the start offset (eg, 2-byte value should be 2-byte aligned). But not more than to a word.
Fixes #15061 Test Plan: Validated on both 32-bit and 64-bit. 32-bit fails with various unrelated stat failures, but no actual test failures. Reviewers: hvr, bgamari Reviewed By: bgamari Subscribers: simonpj, rwbarton, thomie, carter GHC Trac Issues: #15061 Differential Revision: https://phabricator.haskell.org/D4906 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:9> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: osa1 Type: bug | Status: merge Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4906 Wiki Page: | -------------------------------------+------------------------------------- Changes (by osa1): * status: patch => merge -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:10> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#15061: print022 testcase fails on i386 -------------------------------------+------------------------------------- Reporter: bgamari | Owner: osa1 Type: bug | Status: closed Priority: highest | Milestone: 8.6.1 Component: GHCi | Version: 8.2.2 Resolution: fixed | Keywords: ci-breakage Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D4906 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: merge => closed * resolution: => fixed Comment: Merged with 23b4d83f8f71f5e8a9373654ea9bc6f2814dc3fe. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15061#comment:11> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC