[Rcpp-devel] Possible regression in R-3.2.3 or Rcpp 0.12.3

Qiang Kou qkou at umail.iu.edu
Fri Jan 29 23:55:43 CET 2016


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20160129/587ee083/attachment-0001.html>


More information about the Rcpp-devel mailing list