Bug 1158425

Summary: package install fails with infinite loop
Product: [Fedora] Fedora Reporter: Marcus Moeller <marcus.moeller>
Component: RAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 21CC: michel, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rkward-0.6.2-1.fc21 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-13 18:10:05 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:
Attachments:
Description Flags
log of CRAN installing tcltk2 and RandomFields on fresh f21 x86_64 system none

Description Marcus Moeller 2014-10-29 11:08:02 UTC
Description of problem:
I am trying to install geoR using:

/usr/bin/R --no-save --no-restore  <<<'install.packages("geoR", repos="http://cran.ch.r-project.org", dependencies=TRUE)'

which fails like:
...
error reading package index file /usr/lib64/R/library/tcltk2/tklibs/ttktheme_aquablue/pkgIndex.tcl: too many nested evaluations (infinite loop?)
error reading package index file /usr/lib64/R/library/tcltk2/tklibs/ttktheme_clearlooks/pkgIndex.tcl: too many nested evaluations (infinite loop?)
..

I guess it's related to the fact that there is a new tcl Version (8.6.2) and R needs to be rebuild against that version.

Comment 1 Tom "spot" Callaway 2014-10-29 20:21:35 UTC
It actually ended up being more nuanced than that. There are two issues at play here:

1) /usr/lib64/R/library/tcltk2 isn't part of core R. It's an addon, probably installed from CRAN, by you at some point when tcl was at 8.5. Then, I'm guessing you updated to f21 and got tcl and tk updated to 8.6, but R doesn't track dependencies on addons, hence, your oddity.

Upstream R advises that all addons should be rebuilt everytime anything they depend on changes. Including R. But there's not a good way to tell you that. :/

2) When I went to reproduce this issue, I hit an issue where my /usr/lib64/R/etc/Makeconf had hardcoded tcl8.5 and tk8.5 references in TCLTK_LIBS. This happened because I had /usr/lib64/R/etc/Makeconf marked as %config(noreplace). The idea here is that Makeconf is a config file that users can customize for their environment, and with "%config(noreplace)", when R updates, it leaves /usr/lib64/R/etc/Makeconf intact and puts the new file as /usr/lib64/R/etc/Makeconf.rpmnew.

Since this obviously causes issues when we need to update versioned libraries (I _think_ tcl and tk are the only possible culprits at the moment), I'm changing Makeconf to just be %config (this will backup the existing Makeconf file to Makeconf.rpmold and force the new one in). This ought to resolve any other tcl linking bugs.

When I applied that change locally and updated, I was able to successfully run your command on Fedora 21. An update is coming that fixes item 2.

Comment 2 Fedora Update System 2014-11-03 15:23:00 UTC
R-3.1.2-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/R-3.1.2-1.el5

Comment 3 Fedora Update System 2014-11-03 15:23:08 UTC
rkward-0.6.1-10.fc20,rpy-2.3.10-3.fc20,R-3.1.2-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/rkward-0.6.1-10.fc20,rpy-2.3.10-3.fc20,R-3.1.2-1.fc20

Comment 4 Fedora Update System 2014-11-03 15:23:15 UTC
R-3.1.2-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/R-3.1.2-1.el6

Comment 5 Fedora Update System 2014-11-03 15:24:27 UTC
rkward-0.6.2-1.fc21,rpy-2.4.4-1.fc21,R-3.1.2-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/rkward-0.6.2-1.fc21,rpy-2.4.4-1.fc21,R-3.1.2-1.fc21

Comment 6 Fedora Update System 2014-11-03 15:25:38 UTC
rkward-0.6.1-10.fc19,rpy-2.3.10-3.fc19,R-3.1.2-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/rkward-0.6.1-10.fc19,rpy-2.3.10-3.fc19,R-3.1.2-1.fc19

Comment 7 Fedora Update System 2014-11-03 15:25:45 UTC
R-3.1.2-1.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/R-3.1.2-1.el7

Comment 8 Fedora Update System 2014-11-03 19:39:42 UTC
Package rkward-0.6.2-1.fc21, rpy-2.4.4-1.fc21, R-3.1.2-1.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 rkward-0.6.2-1.fc21 rpy-2.4.4-1.fc21 R-3.1.2-1.fc21'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-14190/rkward-0.6.2-1.fc21,rpy-2.4.4-1.fc21,R-3.1.2-1.fc21
then log in and leave karma (feedback).

Comment 9 Marcus Moeller 2014-11-05 13:14:21 UTC
I have checked /usr/lib64/R/etc/Makeconf and it refers to 8.6. I have then deleted /usr/lib64/R/library/tcltk2 and did a fresh installation of tcltk2 from cran. Afterwards I tried to install RandomFields from cran again, but it still results in the same error:

error reading package index file /usr/lib64/R/library/tcltk2/tklibs/ttktheme_aquablue/pkgIndex.tcl: too many nested evaluations (infinite loop?)
error reading package index file /usr/lib64/R/library/tcltk2/tklibs/ttktheme_clearlooks/pkgIndex.tcl: too many nested evaluations (infinite loop?)

R-core-3.1.2-1.fc21.x86_64

Comment 10 Tom "spot" Callaway 2014-11-05 16:13:58 UTC
Created attachment 954101 [details]
log of CRAN installing tcltk2 and RandomFields on fresh f21 x86_64 system

Comment 11 Tom "spot" Callaway 2014-11-05 16:15:22 UTC
(In reply to Tom "spot" Callaway from comment #10)
> Created attachment 954101 [details]
> log of CRAN installing tcltk2 and RandomFields on fresh f21 x86_64 system

I can't reproduce your failure. I'm not sure what to try here.

Comment 12 Marcus Moeller 2014-11-05 16:22:16 UTC
Thanks for testing. I am going to re-check with a clean new install.

Comment 13 Fedora Update System 2014-11-13 18:10:05 UTC
rkward-0.6.1-10.fc20, rpy-2.3.10-3.fc20, R-3.1.2-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2014-11-13 18:15:41 UTC
rkward-0.6.1-10.fc19, rpy-2.3.10-3.fc19, R-3.1.2-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Marcus Moeller 2014-11-18 10:11:27 UTC
I was able to reproduce the problem. It only occurs when no X server is running (which is always the case here, as we do bootstrapping in chroot).

It's easy to reproduce by stopping the X server and running:

LANG=C /usr/bin/R --no-save --no-restore <<< 'install.packages("RandomFields", repos="http://cran.ch.r-project.org", dependencies=TRUE)'

from tty. As it's possibly related to the package itself, I contacted the original author. Thanks for taking care.

Comment 16 Fedora Update System 2014-11-24 21:18:25 UTC
R-3.1.2-1.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2014-11-24 21:20:56 UTC
R-3.1.2-1.el7 has been pushed to the Fedora EPEL 7 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 18 Fedora Update System 2014-11-24 21:21:17 UTC
R-3.1.2-1.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 19 Fedora Update System 2014-12-17 04:47:28 UTC
rkward-0.6.2-1.fc21, rpy-2.4.4-1.fc21, R-3.1.2-1.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.