Bug 1372527

Summary: OpenGLRaw fails to build on armv7hl: "fork: resource exhausted"
Product: [Fedora] Fedora Reporter: Jens Petersen <petersen>
Component: haskell-platformAssignee: Jens Petersen <petersen>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: bos, haskell-devel, petersen
Target Milestone: ---   
Target Release: ---   
Hardware: armv7hl   
OS: Unspecified   
Whiteboard:
Fixed In Version: haskell-platform-2017.8.0.2-6.fc26 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-01 16:55:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
build.log.gz none

Description Jens Petersen 2016-09-02 02:47:44 UTC
I am not sure why but building OpenGLRaw (part of haskell-platform) fails randomly and very frequently on armv7hl.
It build initially with ghc-7.10.3 but maybe this was just luck.

Note the "fork: resource exhausted (Resource temporarily unavailable)"'s
below in the verbose build output:

[531 of 534] Compiling Graphics.Rendering.OpenGL.Raw.AMD.DrawBuffersBlend ( src/Graphics/Rendering/OpenGL/Raw/AMD/DrawBuffersBlend.hs, dist/build/Graphics/Rendering/OpenGL/Raw/AMD/DrawBuffersBlend.o )
<no location info>:
    ghc: phase `LLVM Optimiser' failed (exitcode = 1)
compile: input file src/Graphics/Rendering/OpenGL/Raw/APPLE/VertexArrayObject.hs
:
:
compile: input file src/Graphics/Rendering/OpenGL/Raw/APPLE/TextureRange.hs
*** Checking old interface for Graphics.Rendering.OpenGL.Raw.APPLE.TextureRange:
*** Parser:
*** Renamer/typechecker:
*** Desugar:
Result size of Desugar (after optimization)
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Specialise:
Result size of Specialise = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = False})
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Called arity analysis:
Result size of Called arity analysis
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Demand analysis:
Result size of Demand analysis = {terms: 0, types: 0, coercions: 0}
*** Worker Wrapper binds:
Result size of Worker Wrapper binds
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = True}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = True})
  = {terms: 0, types: 0, coercions: 0}
*** Common sub-expression:
Result size of Common sub-expression
  = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Tidy Core:
Result size of Tidy Core = {terms: 0, types: 0, coercions: 0}
writeBinIface: 10 Names
writeBinIface: 49 dict entries
writeBinIface: 10 Names
writeBinIface: 49 dict entries
*** CorePrep:
Result size of CorePrep = {terms: 0, types: 0, coercions: 0}
*** Stg2Stg:
*** CodeGen:
*** LLVM CodeGen:
Error (figuring out LLVM version): /usr/bin/llc-3.5: runInteractiveProcess: fork: resource exhausted (Resource temporarily unavailable)
<no location info>:
    Warning: Couldn't figure out LLVM version!
             Make sure you have installed LLVM
Using LLVM version: 30
*** LLVM Optimiser:
/usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2824.ll -o /tmp/ghc40bc_0/ghc_2826.bc -O1 '--enable-tbaa=true'
Failed: /usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2824.ll -o /tmp/ghc40bc_0/ghc_2826.bc -O1 '--enable-tbaa=true' /usr/bin/opt-3.5: runInteractiveProcess: fork: resource exhausted (Resource temporarily unavailable)
<no location info>:
    ghc: phase `LLVM Optimiser' failed (exitcode = 1)
compile: input file src/Graphics/Rendering/OpenGL/Raw/APPLE/ObjectPurgeable.hs
:
compile: input file src/Graphics/Rendering/OpenGL/Raw/APPLE/FlushBufferRange.hs
:
compile: input file src/Graphics/Rendering/OpenGL/Raw/APPLE/ElementArray.hs
*** Checking old interface for Graphics.Rendering.OpenGL.Raw.APPLE.ElementArray:
*** Parser:
*** Renamer/typechecker:
*** Desugar:
Result size of Desugar (after optimization)
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Specialise:
Result size of Specialise = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = False})
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Called arity analysis:
Result size of Called arity analysis
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Demand analysis:
Result size of Demand analysis = {terms: 0, types: 0, coercions: 0}
*** Worker Wrapper binds:
Result size of Worker Wrapper binds
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = True}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = True})
  = {terms: 0, types: 0, coercions: 0}
*** Common sub-expression:
Result size of Common sub-expression
  = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Tidy Core:
Result size of Tidy Core = {terms: 0, types: 0, coercions: 0}
writeBinIface: 10 Names
writeBinIface: 49 dict entries
writeBinIface: 10 Names
writeBinIface: 49 dict entries
*** CorePrep:
Result size of CorePrep = {terms: 0, types: 0, coercions: 0}
*** Stg2Stg:
*** CodeGen:
*** LLVM CodeGen:
Error (figuring out LLVM version): /usr/bin/llc-3.5: runInteractiveProcess: fork: resource exhausted (Resource temporarily unavailable)
<no location info>:
    Warning: Couldn't figure out LLVM version!
             Make sure you have installed LLVM
Using LLVM version: 30
*** LLVM Optimiser:
/usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2840.ll -o /tmp/ghc40bc_0/ghc_2842.bc -O1 '--enable-tbaa=true'
Failed: /usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2840.ll -o /tmp/ghc40bc_0/ghc_2842.bc -O1 '--enable-tbaa=true' /usr/bin/opt-3.5: runInteractiveProcess: fork: resource exhausted (Resource temporarily unavailable)
<no location info>:
    ghc: phase `LLVM Optimiser' failed (exitcode = 1)
compile: input file src/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.hs
*** Checking old interface for Graphics.Rendering.OpenGL.Raw.AMD.VertexShaderTessellator:
*** Parser:
*** Renamer/typechecker:
*** Desugar:
Result size of Desugar (after optimization)
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Specialise:
Result size of Specialise = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = False}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = False})
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Called arity analysis:
Result size of Called arity analysis
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Demand analysis:
Result size of Demand analysis = {terms: 0, types: 0, coercions: 0}
*** Worker Wrapper binds:
Result size of Worker Wrapper binds
  = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Float out(FOS {Lam = Just 0, Consts = True, OverSatApps = True}):
Result size of Float out(FOS {Lam = Just 0,
                              Consts = True,
                              OverSatApps = True})
  = {terms: 0, types: 0, coercions: 0}
*** Common sub-expression:
Result size of Common sub-expression
  = {terms: 0, types: 0, coercions: 0}
*** Float inwards:
Result size of Float inwards = {terms: 0, types: 0, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 0, types: 0, coercions: 0}
*** Tidy Core:
Result size of Tidy Core = {terms: 0, types: 0, coercions: 0}
writeBinIface: 11 Names
writeBinIface: 50 dict entries
writeBinIface: 11 Names
writeBinIface: 50 dict entries
*** CorePrep:
Result size of CorePrep = {terms: 0, types: 0, coercions: 0}
*** Stg2Stg:
*** CodeGen:
*** LLVM CodeGen:
Using LLVM version: 35
*** LLVM Optimiser:
/usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2502.ll -o /tmp/ghc40bc_0/ghc_2505.bc -O1 -globalopt '--enable-tbaa=true'
*** LLVM Compiler:
/usr/bin/llc-3.5 -O2 '-relocation-model=static' /tmp/ghc40bc_0/ghc_2505.bc -o /tmp/ghc40bc_0/ghc_2511.lm_s '--enable-tbaa=true' '-mattr=+v7,+vfp3,+d16' '-float-abi=hard'
*** LLVM Mangler:
*** Assembler:
/usr/bin/gcc -marm -fno-stack-protector -DTABLES_NEXT_TO_CODE -Isrc/Graphics/Rendering/OpenGL/Raw/AMD -Idist/build -Idist/build -Idist/build/autogen -Idist/build -x assembler -c /tmp/ghc40bc_0/ghc_2515.s -o dist/build/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.o
*** CorePrep:
Result size of CorePrep = {terms: 0, types: 0, coercions: 0}
*** Stg2Stg:
*** CodeGen:
*** LLVM CodeGen:
Using LLVM version: 35
*** LLVM Optimiser:
/usr/bin/opt-3.5 /tmp/ghc40bc_0/ghc_2518.ll -o /tmp/ghc40bc_0/ghc_2524.bc -O1 -globalopt '--enable-tbaa=true'
*** LLVM Compiler:
/usr/bin/llc-3.5 -O2 '-relocation-model=pic' /tmp/ghc40bc_0/ghc_2524.bc -o /tmp/ghc40bc_0/ghc_2527.lm_s '--enable-tbaa=true' '-mattr=+v7,+vfp3,+d16' '-float-abi=hard'
*** LLVM Mangler:
*** Assembler:
/usr/bin/gcc -marm -fno-stack-protector -DTABLES_NEXT_TO_CODE -Isrc/Graphics/Rendering/OpenGL/Raw/AMD -Idist/build -Idist/build -Idist/build/autogen -Idist/build -fPIC -U__PIC__ -D__PIC__ -x assembler -c /tmp/ghc40bc_0/ghc_2532.s -o dist/build/Graphics/Rendering/OpenGL/Raw/AMD/VertexShaderTessellator.dyn_o
*** Deleting temp files:
Deleting: /tmp/ghc40bc_0/ghc_2532.s /tmp/ghc40bc_0/ghc_2527.lm_s /tmp/ghc40bc_0/ghc_2524.bc /tmp/ghc40bc_0/ghc_2520.c /tmp/ghc40bc_0/ghc_2518.ll /tmp/ghc40bc_0/ghc_2515.s /tmp/ghc40bc_0/ghc_2511.lm_s /tmp/ghc40bc_0/ghc_2505.bc /tmp/ghc40bc_0/ghc_2503.c /tmp/ghc40bc_0/ghc_2502.ll /tmp/ghc40bc_0/ghc_2492.ll
Warning: deleting non-existent /tmp/ghc40bc_0/ghc_2520.c
Warning: deleting non-existent /tmp/ghc40bc_0/ghc_2503.c
Warning: deleting non-existent /tmp/ghc40bc_0/ghc_2492.ll
compile: input file src/Graphics/Rendering/OpenGL/Raw/AMD/StencilOperationExtended.hs
:
:

Comment 1 Jens Petersen 2016-09-02 02:50:21 UTC
Created attachment 1197041 [details]
build.log.gz

Full example build log has over 100 fork failures.

Comment 2 Fedora Update System 2017-03-11 11:45:19 UTC
haskell-platform-2017.8.0.2-5.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-f86736c64a

Comment 3 Fedora Update System 2017-03-13 09:20:43 UTC
haskell-platform-2017.8.0.2-6.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-f86736c64a

Comment 4 Fedora Update System 2017-04-01 16:55:59 UTC
haskell-platform-2017.8.0.2-6.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.