Validate of GHC HEAD freezes on FreeBSD

Kazu Yamamoto ( 山本和彦 ) kazu at iij.ad.jp
Tue Jan 29 07:02:47 CET 2013


Hi,

When I execute the following command (after GHC is build):

	% THREADS=1 sh validate --testsuite-only

the following test command always freezes:

	cd ./concurrent/should_run && '/usr/home/kazu/work/ghc/bindisttest/install   dir/bin/ghc' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history conc070.hs --interactive -v0 -ignore-dot-ghci +RTS -I0.1 -RTS   <conc070.genscript 1>conc070.interp.stdout 2>conc070.interp.stderr

The GHC command is consuming CPU 100%.

I tested this GHC 4.6/GHC 4.7 to make GHC and GNU make 3.81/3.82. But
nothing changed.

Does nobody execute the "validate" script on FreeBSD before?

--Kazu

From: Kazu Yamamoto (山本和彦) <kazu at iij.ad.jp>
Subject: Re: Validate of GHC HEAD freezes on FreeBSD

> OK. I found an alternative timeout command written in Haskell.  And
> insert "unblockSignals fullSignalSet" to it. Now "validate" can
> finish.
> 
> I guess that one process (possibly GNU make) set signal mask and its
> children inherit it. What is a right solution for this?
> 
> --Kazu
> 
>> I confirmed that testsuite/timeout/install-inplace/bin/timeout.py does
>> not receive SIGALRM, so it is waiting forever.
>> 
>> Any suggestions to fix this?
>> 
>> --Kazu
>> 
>>> Hello,
>>> 
>>> The "validate" script against GHC HEAD freezes on FreeBSD 9.1.
>>> After sync-all, I did as follow:
>>> 
>>> ----------------------------------------------------------------
>>> % config_args="--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-gcc=/usr/local/bin/gcc47" CPUS=10 sh validate
>>> ----------------------------------------------------------------
>>> 
>>> This stopped quickly due to this problem:
>>> 	http://hackage.haskell.org/trac/ghc/ticket/7592
>>> 
>>> Then I executed "validate" with "--no-clean" again.
>>> 
>>> ----------------------------------------------------------------
>>> % config_args="--with-iconv-includes=/usr/local/include --with-iconv-libraries=/usr/local/lib --with-gmp-includes=/usr/local/include --with-gmp-libraries=/usr/local/lib --with-gcc=/usr/local/bin/gcc47" CPUS=10 sh validate --no-clean
>>> ----------------------------------------------------------------
>>> 
>>> GHC could be compiled and tests started. But this resulted in:
>>> 
>>> ----------------------------------------------------------------
>>> cd ../../libraries/base/tests && '/usr/home/kazu/work/ghc/bindisttest/install   dir/bin/ghc' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -fno-ghci-history -o qsemn001 qsemn001.hs    >qsemn001.comp.stderr 2>&1
>>> cd ../../libraries/base/tests && ./T5962    </dev/null >T5962.run.stdout 2>T5962.run.stderr
>>> cd ../../libraries/base/tests && ./5943    </dev/null >5943.run.stdout 2>5943.run.stderr
>>> cd ../../libraries/base/tests && ./T7034    </dev/null >T7034.run.stdout 2>T7034.run.stderr
>>> cd ../../libraries/base/tests && ./qsem001    </dev/null >qsem001.run.stdout 2>qsem001.run.stderr
>>> cd ../../libraries/base/tests && ./qsemn001    </dev/null >qsemn001.run.stdout 2>qsemn001.run.stderr
>>> 
>>> Wrong exit code (expected 0 , actual 9 )
>>> Stdout:
>>> 
>>> Stderr:
>>> 
>>> *** unexpected failure for Chan002(normal)
>>> ----------------------------------------------------------------
>>> 
>>> And waiting for something forever.
>>> 
>>> Does anyone understand what happened?
>>> 
>>> Note that I can build GHC HEAD by typing "gmake" (v3.82 installed by
>>> the ports system) twice.
>>> 
>>> This is a serious problem for us since we want to merge our code to
>>> GHC HEAD. "validate" against GHC with our code on Linux and Mac passed
>>> so far. But "validate" against even vanilla GHC freezes.
>>> 
>>> P.S.
>>> 
>>> On FreeBSD, I applied the following patch for validate since
>>> unused-but-set-variable is not available.
>>> 
>>> diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk
>>> index 399bf0e..378a3e6 100644
>>> --- a/mk/validate-settings.mk
>>> +++ b/mk/validate-settings.mk
>>> @@ -13,7 +13,7 @@ HADDOCK_DOCS    = YES
>>>  # Debian doesn't turn -Werror=unused-but-set-variable on by default, so
>>>  # we turn it on explicitly for consistency with other users
>>>  ifeq "$(GccLT46)" "NO"
>>> -SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable
>>> +#SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable
>>>  # gcc 4.6 gives 3 warning for giveCapabilityToTask not being inlined
>>>  SRC_CC_WARNING_OPTS += -Wno-error=inline
>>>  endif
>>> 
>>> --Kazu
>>> 
>>> 
>>> _______________________________________________
>>> Glasgow-haskell-users mailing list
>>> Glasgow-haskell-users at haskell.org
>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>> 
>> _______________________________________________
>> Glasgow-haskell-users mailing list
>> Glasgow-haskell-users at haskell.org
>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> 
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



More information about the Glasgow-haskell-users mailing list