Validate of GHC HEAD freezes on FreeBSD
Kazu Yamamoto ( 山本和彦 )
kazu at iij.ad.jp
Tue Jan 29 08:17:53 CET 2013
Hi,
Even testsuite for GHC 7.4.2 ("gmake fast") freezes:
* Consuming CPU 100%
- compiling conc070.hs
- 367_letnoes
- throwto001
- Chan002
* Waiting for somting forever
- signals004
I can reproduce this phenomena both for GHC HEAD and GHC 7.4.2 100%.
--Kazu
> 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
>
> _______________________________________________
> 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