[Rcpp-devel] problems while upgrading to Rcpp 0.11.2

Kevin Ushey kevinushey at gmail.com
Wed Sep 3 21:50:30 CEST 2014


(sorry -- finger slipped and submitted early)

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

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

other attached packages:
[1] RInside_0.2.11 Rcpp_0.11.2


Can you provide an example of a segfault occurring independently of RInside?

Kevin

On Wed, Sep 3, 2014 at 12:49 PM, Kevin Ushey <kevinushey at gmail.com> wrote:

> Hi Pratibha,
>
> I highly doubt that the segfault is related to the optimization level.
> FWIW, I still cannot replicate the segfault as you described -- Ubuntu
> 14.04, gcc 4.8.2, and...
>
> Kevin
>
>
> On Wed, Sep 3, 2014 at 12:34 PM, Pratibha Rana <prana at vertica.com> wrote:
>
>> I think I got to the bottom of the issue. I was using the -O0 option
>> instead of the -O2 option while compiling the code. Including the -O2
>> option resolved the issue.
>>
>> Thanks
>> Pratibha
>>
>> On 09/02/2014 04:49 PM, Dirk Eddelbuettel wrote:
>> > Hi,
>> >
>> > On 2 September 2014 at 20:16, Pratibha Rana wrote:
>> > | Hi Dirk,
>> > |
>> > | Yes I work for Vertica which is apparent from my email. But I do not
>> > | work on the distributedR project. I work on the vertica-R integration.
>> >
>> > You could tell us about that too ...
>> >
>> > | I acknowledge that it is a local issue because the same code works
>> fine
>> > | in the RInside's example directory on the same machine with the same
>> > | libraries that I installed from sources. I verified the dll's being
>> > | loaded in both the cases. The back trace doesn't help either. I am out
>> > | of ideas as to what can be wrong. I am stumped as to why Rcpp::List
>> > | works fine but Rcpp::DataFrame causes a segfault. Any suggestion on
>> > | debugging the cause are greatly appreciated.
>> >
>> > So you may be doing something different in the build process for your
>> local
>> > directory.  You need to work out what is different.
>> >
>> > Can you please post this __on the list__ for a continued thread there?
>> >
>> > Dirk
>> >
>> > |
>> > | Thanks
>> > | Pratibha
>> > | > Dear Pratibha,
>> > | >
>> > | > On 2 September 2014 at 19:22, Pratibha Rana wrote:
>> > | > | I have a custom application that uses Rcpp and Rinside to execute
>> R code. All
>> > | >
>> > | > [ Random thought: I might make people a bit more sympathetic for
>> your cause
>> > | > and questions if you pointed out that a) you are selling a db
>> solution, b)
>> > | > that these days Vertica is part of HP and c) the code for the R
>> integration
>> > | > is apparently on GitHub: https://github.com/vertica/DistributedR
>> (or at least
>> > | > that is where I think it may be).  Why you guys never announced
>> that here
>> > | > is a bit of a mystery to me. ]
>> > | >
>> > | > | was well until I was using R-3.0.0, Rcpp 0.10.2 and RInside
>> 0.2.10 but now its
>> > | > | time to upgrade to the latest version and I can't get even the
>> Rinside samples
>> > | > | to work in place of my application. My machine has Ubuntu14.04.
>> The code
>> > | >
>> > | > Well, consider that
>> > | >
>> > | >   a) I (and others) develop on Ubuntu 14.04. Things work on Ubuntu
>> 14.04
>> > | >
>> > | >   b) CRAN tests all packages on several backends, including Ubuntu,
>> Debian,
>> > | >      FC, OS X and Windows and would tell me (as maintainer) in no
>> uncertain
>> > | >      terms if it didn't work.
>> > | >
>> > | >   c) So if it fails to work for you, maybe assume a local issue
>> first?
>> > | >
>> > | > | compiles fine but when I run it, I get a segfault during Rinside
>> > | > | initialization.  I tried to troubleshoot by replacing my code by
>> one of the
>> > | > | examples rinside_sample0. The example runs fine as is but if I
>> add just a
>> > | > | single line "Rcpp::DataFrame p; " it segfaults again. Here is the
>> complete
>> > | > | code. The same code works fine inside the Rinside examples
>> directory.
>> > | > |
>> > | > |
>> > | > | #include <RInside.h>
>> > | > |
>> > | > | int main(int argc, char *argv[])
>> > | > | {
>> > | > |
>> > | > |  std::getchar();
>> > | >
>> > | > That line makes little sense. I omitted it.
>> > | >
>> > | > |
>> > | > |  RInside R(argc, argv);
>> > | > |
>> > | > |  R["txt"] = "Hello, world!\n";
>> > | > |  Rcpp::DataFrame pf;             <-------- Runs fine if I comment
>> out this line.
>> > | > |  R.parseEvalQ("cat(txt)");
>> > | > |
>> > | > |  exit(0);
>> > | > | }
>> > | >
>> > | > Works fine here:
>> > | >
>> > | > edd at max:~/git/rinside/inst/examples/standard$ cat
>> rinside_vertica.cpp
>> > | >
>> > | > #include <RInside.h>
>> > | >
>> > | > int main(int argc, char *argv[])
>> > | > {
>> > | >
>> > | >   RInside R(argc, argv);
>> > | >
>> > | >   R["txt"] = "Hello, world!\n";
>> > | >   Rcpp::DataFrame pf;    //         <-------- Runs fine if I
>> comment out this line.
>> > | >   R.parseEvalQ("cat(txt)");
>> > | >
>> > | >   exit(0);
>> > | > }
>> > | > edd at max:~/git/rinside/inst/examples/standard$ make rinside_vertica
>> > | > ccache g++-4.8 -I/usr/share/R/include
>> -I/usr/local/lib/R/site-library/Rcpp/include
>> -I/usr/local/lib/R/site-library/RInside/include -g -O2 -fstack-protector
>> --param=ssp-buffer-size=4 -Wformat -Werror=format-security
>> -D_FORTIFY_SOURCE=2 -g -O3 -Wall -pipe -Wno-unused -pedantic -Wall
>> rinside_vertica.cpp  -Wl,--export-dynamic -fopenmp  -L/usr/lib/R/lib -lR
>> -lpcre -llzma -lbz2 -lz -lrt -ldl -lm  -lblas -llapack
>> -L/usr/local/lib/R/site-library/RInside/lib -lRInside
>> -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -o rinside_vertica
>> > | > edd at max:~/git/rinside/inst/examples/standard$ ./rinside_vertica
>> > | > Hello, world!
>> > | > edd at max:~/git/rinside/inst/examples/standard$
>> > | >
>> > | >
>> > | > I maybe running github versions of Rcpp and/or RInside, but the
>> only thing
>> > | > that may matter is that you probably should
>> > | >
>> > | >  a) install Rcpp from source
>> > | >  b) install RInside from source
>> > | >
>> > | > and then build these examples.
>> > | >
>> > | > A reproducible issue may help.  This was not reproducible.  Or
>> rather, this
>> > | > may not even have been a bug.
>> > | >
>> > | > Regards,  Dirk
>> > | >
>> > | >
>> > | > | Here is the backtrace of the segfault
>> > | > |
>> > | > |
>> > | > | Program received signal SIGSEGV, Segmentation fault.
>> > | > | 0x00007ffff7597767 in reset_current_error() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | (gdb) bt -10
>> > | > | #261636 0x00007ffff7597769 in reset_current_error() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261637 0x00007ffff7597769 in reset_current_error() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261638 0x00007ffff7597769 in reset_current_error() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261639 0x00007ffff7597769 in reset_current_error() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261640 0x00007ffff7598530 in Rcpp::Rcpp_eval(SEXPREC*, SEXPREC*)
>> () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261641 0x00007ffff7599542 in
>> Rcpp::Language_Impl<Rcpp::PreserveStorage>::eval() const () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261642 0x00007ffff75969c7 in RInside::autoloads() () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261643 0x00007ffff7595fd3 in RInside::initialize(int, char
>> const* const*, bool, bool, bool) () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261644 0x00007ffff7595a4a in RInside::RInside(int, char const*
>> const*, bool, bool, bool) () from
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > | #261645 0x000000000040361e in main (argc=1, argv=0x7fffffffdc88)
>> at rinside_sample0.cpp:14
>> > | > | (gdb)
>> > | > |
>> > | > |
>> > | > |
>> > | > |
>> > | > | I also looked at the libraries that were being loaded at runtime
>> and they are
>> > | > | exactly the same for both the rinside examples and my app. Pasted
>> below for
>> > | > | completeness. I am out ofdebugging tricks to get this to work.
>> Any ideas as to
>> > | > | what's wrong. what am I missing?
>> > | > |
>> > | > |
>> > | > |
>> prana:trunk/third-party/install/lib/R/library/RInside/examples/standard $
>> cat /proc/21915/maps | awk '{print $6}' | grep '\.so' | sort | uniq
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libRblas.so
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libRlapack.so
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libR.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/graphics/libs/graphics.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/grDevices/libs/grDevices.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/methods/libs/methods.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/Rcpp/libs/Rcpp.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/stats/libs/stats.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/utils/libs/utils.so
>> > | > | /lib/x86_64-linux-gnu/ld-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libc-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libdl-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libgcc_s.so.1
>> > | > | /lib/x86_64-linux-gnu/libm-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnsl-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_compat-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_files-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_nis-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libpthread-2.19.so
>> > | > | /lib/x86_64-linux-gnu/librt-2.19.so
>> > | > | /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
>> > | > |
>> > | > |
>> > | > | prana:trunk/myapp $ cat /proc/21730/maps | awk '{print $6}' |
>> grep '\.so' | sort | uniq
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libRblas.so
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libRlapack.so
>> > | > | /home/prana/trunk/third-party/install/lib/R/lib/libR.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/graphics/libs/graphics.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/grDevices/libs/grDevices.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/methods/libs/methods.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/Rcpp/libs/Rcpp.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/RInside/lib/libRInside.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/stats/libs/stats.so
>> > | > |
>> /home/prana/trunk/third-party/install/lib/R/library/utils/libs/utils.so
>> > | > | /lib/x86_64-linux-gnu/ld-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libc-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libdl-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libgcc_s.so.1
>> > | > | /lib/x86_64-linux-gnu/libm-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnsl-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_compat-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_files-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libnss_nis-2.19.so
>> > | > | /lib/x86_64-linux-gnu/libpthread-2.19.so
>> > | > | /lib/x86_64-linux-gnu/librt-2.19.so
>> > | > | /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
>> > | > | /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
>> > | > |
>> > | > |
>> > | > |
>> > | > |
>> > | > | Thanks
>> > | > | Pratibha
>> > | > | _______________________________________________
>> > | > | 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
>> > | >
>> > |
>> >
>>
>> _______________________________________________
>> 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
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20140903/0770b88c/attachment-0001.html>


More information about the Rcpp-devel mailing list