Bug 1136388

Summary: Segmentation fault during build: ../bin/R --vanilla < ok-errors.R > ok-errors.Rout.fail
Product: [Fedora] Fedora Reporter: Karsten Hopp <karsten>
Component: RAssignee: David Sommerseth <davids>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: 21CC: davids, gustavold, michel, normand, ovasik, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: R-3.1.1-6.fc21 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-23 05:07:21 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:
Embargoed:
Bug Depends On:    
Bug Blocks: 1071880    
Attachments:
Description Flags
ok-errors.Rout.fail
none
R_gdb_core_backtrace.log
none
Patch to R.spec file with a fix none

Description Karsten Hopp 2014-09-02 13:22:39 UTC
Description of problem:
R segfaults during 'make check'

running code in 'lm-tests.R' ... OK
  comparing 'lm-tests.Rout' to './lm-tests.Rout.save' ... OK
/bin/sh: line 1:  4258 Segmentation fault      (core dumped) LANGUAGE=en LC_ALL=C SRCDIR=. R_DEFAULT_PACKAGES= ../bin/R --vanilla < ok-errors.R > ok-errors.Rout.fail 2>&1
running code in 'ok-errors.R' ...Makefile.common:89: recipe for target 'ok-errors.Rout' failed
make[3]: *** [ok-errors.Rout] Error 1
make[3]: Leaving directory '/builddir/build/BUILD/R-3.1.1/tests'

Version-Release number of selected component (if applicable):
R-3.1.1-3.fc21

How reproducible:
always

Steps to Reproduce:
1. ppc-koji build --scratch f21 R-3.1.1-3.fc21.src.rpm
2.
3.

Actual results:
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2048813

Expected results:


Additional info:

Comment 1 Tom "spot" Callaway 2014-09-02 15:27:12 UTC
I don't have any PPC machines, so this bug is probably going to sit here doing nothing. That said, you might try:

* Running the core through gdb and seeing if anything obvious happens there.
* Filing a bug with the R upstream (including the core and/or backtrace)

Comment 3 Michel Normand 2014-09-04 08:11:26 UTC
Created attachment 934322 [details]
ok-errors.Rout.fail

I did a mock build on a ppc64 guest and failed the same way as above.
I found the following "ok-errors.Rout.fail" file in the tests/ subdir.
as per its comment seems the tests voluntarily tried the limits.

next attachment with gdb

Comment 4 Michel Normand 2014-09-04 08:35:49 UTC
Created attachment 934326 [details]
R_gdb_core_backtrace.log

the attached R_gdb_core_backtrace.log show that core is a concequence of the infinit loop in eval.c that is detected but seems not handled properly.
===
...
#9101 0x00003fff797cf47c in do_begin (call=0x1003732faa8, op=0x100362a4120, args=0x1003732f840, rho=0x1003730c7a8) at eval.c:1633
#9102 0x00003fff797cbfa4 in Rf_eval (e=0x1003732faa8, rho=0x1003730c7a8) at eval.c:629
#9103 0x00003fff797cdadc in Rf_applyClosure (call=<optimized out>, op=<optimized out>, arglist=0x10036298888, rho=<optimized out>, suppliedenv=0x100362cb548) at eval.c:1044
#9104 0x00003fff797cbd44 in Rf_eval (e=0x1003732f878, rho=0x1003732f450) at eval.c:676
#9105 0x00003fff797cf47c in do_begin (call=0x1003732faa8, op=0x100362a4120, args=0x1003732f840, rho=0x1003732f450) at eval.c:1633
#9106 0x00003fff797cbfa4 in Rf_eval (e=0x1003732faa8, rho=0x1003732f450) at eval.c:629
#9107 0x00003fff797cdadc in Rf_applyClosure (call=<optimized out>, op=<optimized out>, arglist=0x10036298888, rho=<optimized out>, suppliedenv=0x100362cb548) at eval.c:1044
#9108 0x00003fff797cbd44 in Rf_eval (e=0x1003732f4f8, rho=0x100362cb510) at eval.c:676
#9109 0x00003fff798034d4 in Rf_ReplIteration (rho=0x100362cb510, savestack=<optimized out>, browselevel=<optimized out>, state=0x3fffd16afb50) at main.c:260
===

Comment 5 Michel Normand 2014-09-04 09:38:06 UTC
tracked upstream by https://bugs.r-project.org/bugzilla/show_bug.cgi?id=15963

Comment 6 Gustavo Luiz Duarte 2014-09-09 14:22:31 UTC
(In reply to Tom "spot" Callaway from comment #1)
> I don't have any PPC machines, so this bug is probably going to sit here
> doing nothing. That said, you might try:

Tom, we do have ppc64 systems for that. Please ask on #fedora-ppc or send me your public ssh key.

[]'s
Gustavo

Comment 7 David Sommerseth 2014-09-16 20:48:56 UTC
The issue is related to the stack being too small when running the ok-errors.R test case.  This test will cause an infinite recursion loop, which should be interrupted by R.  On x86_64, this works as expected.  On ppc64, the stack size needs to be doubled to 16384 (ulimit -s 16384) to be able to run successfully, otherwise the segfault will happen.

I'm currently testing ppc64 builds with modifying the ulimit before running 'make check' in the .spec file.

Comment 8 David Sommerseth 2014-09-16 21:05:23 UTC
Created attachment 938242 [details]
Patch to R.spec file with a fix

Comment 9 Fedora Update System 2014-09-17 06:34:51 UTC
R-3.1.1-6.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/R-3.1.1-6.fc21

Comment 10 Fedora Update System 2014-09-18 16:13:42 UTC
Package R-3.1.1-6.fc21:
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing R-3.1.1-6.fc21'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-10948/R-3.1.1-6.fc21
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2014-09-23 05:07:21 UTC
R-3.1.1-6.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.