[Rcpp-devel] Possible regression in R-3.2.3 or Rcpp 0.12.3
Jonathan Olmsted
jpolmsted at gmail.com
Mon Feb 1 18:09:29 CET 2016
Any reason not to get it from RcppCore/Rcpp? History shows the fix was
pulled in: https://github.com/RcppCore/Rcpp/commits/master
On my end, I just installed Rcpp via
> install_github("RcppCore/Rcpp")
and then re-installed openxlsx from CRAN via
> install.packages("openxlsx")
The script I had which had been triggering segfaults runs just fine with
github version of Rcpp and recompiled openxlsx. Admittedly, I didn't
gctorture(TRUE).
On Mon, Feb 1, 2016 at 11:16 AM, Paul Johnson <pauljohn32 at gmail.com> wrote:
> Thanks, KK for studying this one.
>
> Am I doing this wrong?
>
> > devtools::install_github("thirdwing/Rcpp", ref = "subsetter")
> Downloading GitHub repo thirdwing/Rcpp at subsetter
> from URL https://api.github.com/repos/thirdwing/Rcpp/zipball/subsetter
> Error in download(dest, src, auth) : Not Found (HTTP 404).
> > sessionInfo()
> R version 3.2.3 (2015-12-10)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 15.10
>
> locale:
> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> loaded via a namespace (and not attached):
> [1] httr_1.1.0 R6_2.1.1 tools_3.2.3 curl_0.9.5
> [5] memoise_0.2.1 git2r_0.13.1 digest_0.6.8 devtools_1.10.0
>
>
> I'm glad I found MLPACK while looking at your GitHub. That has neat
> features, which I'll try out. We have a big data workgroup here and
> I'll look smart.
>
>
> On Fri, Jan 29, 2016 at 4:55 PM, Qiang Kou <qkou at umail.iu.edu> wrote:
> > Hi, Paul, can you try my fork of Rcpp? You can install it by the line
> below:
> >
> > devtools::install_github("thirdwing/Rcpp", ref = "subsetter")
> >
> > This fixed the segfault on my Ubuntu machine.
> >
> > The difference can be found from [1].
> >
> > In subsetter, if an IntegerVector passed in, we will try to reuse it.
> This
> > led to a segfault in this case, which I don't know why.
> >
> > Dirk and Kevin, do you have any thoughts on it?
> >
> > Best wishes,
> >
> > KK
> >
> > [1]
> >
> https://github.com/thirdwing/Rcpp/commit/216c5220bcb84778a656b3496d0f1803b973ef61
> >
> >
> > On Fri, Jan 29, 2016 at 3:00 PM, Qiang Kou <qkou at umail.iu.edu> wrote:
> >>
> >> Hi, Kevin, I was also trying to track this down yesterday.
> >>
> >> From the debugging info below, indices_n is not equal to length of
> >> indices, which I don't quite understand.
> >>
> >> Program received signal SIGSEGV, Segmentation fault.
> >>
> >> 0x00007ffff2ed5c4e in Rcpp::SubsetProxy<13, Rcpp::PreserveStorage, 13,
> >> true, Rcpp::sugar::Minus_Vector_Primitive<13, true, Rcpp::Vector<13,
> >> Rcpp::PreserveStorage> > >::get_vec (this=this at entry=0x7fffffff79a0)
> >>
> >> at
> >> /usr/local/lib/R/site-library/Rcpp/include/Rcpp/vector/Subsetter.h:200
> >>
> >> 199 output[i] = lhs[ indices[i] ];
> >>
> >> (gdb) p i
> >>
> >> $1 = 33622
> >>
> >> (gdb) p indices[i]
> >>
> >> Cannot access memory at address 0x34c6e000
> >>
> >> (gdb) p indices_n
> >>
> >> $2 = 9594546
> >>
> >>
> >> On Fri, Jan 29, 2016 at 2:29 PM, Dirk Eddelbuettel <edd at debian.org>
> wrote:
> >>>
> >>>
> >>> On 29 January 2016 at 11:27, Kevin Ushey wrote:
> >>> | When I add some debug printing to the associated subscripting line
> >>> |
> >>> (
> https://github.com/awalker89/openxlsx/blob/b92bb3acdd6ea759be928c298c6faeef2f26fa3e/src/cppFunctions.cpp#L2608
> ),
> >>> | I see:
> >>> |
> >>> | colNumbers.size(): 98,03,150
> >>> | charCols.size(): 95,94,546
> >>> |
> >>> | It looks to me like the package is erroneously attempting to subset
> >>> | vectors of different sizes, causing out-of-bounds reads.
> >>>
> >>> Nice work.
> >>>
> >>> | Unfortunately, Rcpp is not detecting or warning about this...
> >>> |
> >>> | Either way, I believe this is a bug in the openxlsx package, but Rcpp
> >>> | should be checking / reporting this.
> >>>
> >>> With (Rcpp)Armadillo you do have an option of turning this on/off. With
> >>> Rcpp
> >>> alone not quite.
> >>>
> >>> Dirk
> >>>
> >>> --
> >>> http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
> >>> _______________________________________________
> >>> Rcpp-devel mailing list
> >>> Rcpp-devel at lists.r-forge.r-project.org
> >>>
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> >>
> >>
> >>
> >>
> >> --
> >> Qiang Kou
> >> qkou at umail.iu.edu
> >> School of Informatics and Computing, Indiana University
> >>
> >
> >
> >
> > --
> > Qiang Kou
> > qkou at umail.iu.edu
> > School of Informatics and Computing, Indiana University
> >
> >
> > _______________________________________________
> > Rcpp-devel mailing list
> > Rcpp-devel at lists.r-forge.r-project.org
> > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
>
>
> --
> Paul E. Johnson
> Professor, Political Science Director
> 1541 Lilac Lane, Room 504 Center for Research Methods
> University of Kansas University of Kansas
> http://pj.freefaculty.org http://crmda.ku.edu
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
--
J.P. Olmsted
j.p.olmsted at gmail.com
olmjo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20160201/23247383/attachment.html>
More information about the Rcpp-devel
mailing list