[Rcpp-devel] Segmentation fault in Rcpp::DataFrame::create when data is sufficiently long

Slava Mazur smazur at liquidnet.com
Thu Jan 12 22:00:49 CET 2012


Greetings,

My R session crashes with core dump when executing the following Rcpp call:

DataFrame df = Rcpp::DataFrame::create(
                Rcpp::Named("t", boost::make_iterator_range(projector_num(vb, get_time), projector_num(ve, get_time))),
                Rcpp::Named("type", boost::make_iterator_range(projector_str(vb, get_type), projector_str(ve, get_type))),
                Rcpp::Named("src", boost::make_iterator_range(projector_str(vb, get_src), projector_str(ve, get_src))),
                Rcpp::Named("px", boost::make_iterator_range(projector_num(vb, get_price), projector_num(ve, get_price))),
                Rcpp::Named("sz", boost::make_iterator_range(projector_num(vb, get_size), projector_num(ve, get_size))),
                Rcpp::Named("stringsAsFactors", false)
);

Below is what is on the screen and a fragment of call stack. Any ideas what's wrong here?

Thanks,

Slava Mazur

*** glibc detected *** /appdata/packages/shareware/R/R-2.13.1/lib64/R/bin/exec/R: corrupted double-linked list: 0x000000001bdd22b0 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3633073afa]
/lib64/libc.so.6(__libc_malloc+0x6e)[0x3633074bee]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_allocVector+0x613)[0x2ad0b19bf033]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1964315]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b19184fc]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x577)[0x2ad0b1985237]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1987bd7]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1986942]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_applyClosure+0x308)[0x2ad0b1989678]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x32b)[0x2ad0b1984feb]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b198590a]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b19c763e]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_applyClosure+0x308)[0x2ad0b1989678]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x32b)[0x2ad0b1984feb]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b198abee]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x6b3)[0x2ad0b1985373]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b19868ad]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b198abee]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x6b3)[0x2ad0b1985373]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1986942]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_applyClosure+0x308)[0x2ad0b1989678]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x32b)[0x2ad0b1984feb]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1987bd7]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so[0x2ad0b1986942]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x479)[0x2ad0b1985139]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_applyClosure+0x308)[0x2ad0b1989678]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/lib/libR.so(Rf_eval+0x32b)[0x2ad0b1984feb]
/appdata/packages/shareware/R/R-2.13.1/lib64/R/library/Rcpp/lib/libRcpp.so(_ZN4Rcpp9Evaluator3runEP7SEXPRECS2_+0x54)[0x2ad0b9a49594]
...

#0  0x0000003633030265 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x0000003633031d10 in abort () at abort.c:88
#2  0x000000363306a84b in __libc_message (do_abort=<value optimized out>, fmt=<value optimized out>)
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:170
#3  0x0000003633073afa in _int_malloc (av=<value optimized out>, bytes=<value optimized out>)
    at malloc.c:6180
#4  0x0000003633074bee in __libc_malloc (bytes=<value optimized out>) at malloc.c:3605
#5  0x00002ad0b19bf033 in Rf_allocVector (type=14, length=37312) at memory.c:2345
#6  0x00002ad0b1964315 in duplicate1 (s=0x1c5d7cd0) at duplicate.c:224
#7  0x00002ad0b19184fc in do_makelist (call=<value optimized out>, op=<value optimized out>,
    args=<value optimized out>, rho=<value optimized out>) at builtin.c:673
#8  0x00002ad0b1985237 in Rf_eval (e=0x1ac31068, rho=0x1bb84fe0) at eval.c:511
#9  0x00002ad0b1987bd7 in do_set (call=0x1ac31110, op=0x19d7bf68, args=0x1ac310d8, rho=0x1bb84fe0)
    at eval.c:1722
#10 0x00002ad0b1985139 in Rf_eval (e=0x1ac31110, rho=0x1bb84fe0) at eval.c:482
#11 0x00002ad0b1986942 in do_begin (call=0x1ac2ee08, op=0x19d7bd70, args=0x6, rho=0x1bb84fe0) at eval.c:1420
#12 0x00002ad0b1985139 in Rf_eval (e=0x1ac2ee08, rho=0x1bb84fe0) at eval.c:482
#13 0x00002ad0b1989678 in Rf_applyClosure (call=0x1bb95588, op=0x1ac283f8, arglist=0x1bb85960,
    rho=0x19da3ab0, suppliedenv=0x19da3ae8) at eval.c:838
#14 0x00002ad0b1984feb in Rf_eval (e=0x1bb95588, rho=0x19da3ab0) at eval.c:526
#15 0x00002ad0b198590a in do_eval (call=0x1b269200, op=0x19d93058, args=0x1bb857d8, rho=0x1bb86580)
    at eval.c:2082
#16 0x00002ad0b19c763e in do_internal (call=<value optimized out>, op=<value optimized out>,
    args=<value optimized out>, env=0x1bb86580) at names.c:1227
#17 0x00002ad0b1985139 in Rf_eval (e=0x1b269190, rho=0x1bb86580) at eval.c:482
#18 0x00002ad0b1989678 in Rf_applyClosure (call=0x1bb89920, op=0x1b272da8, arglist=0x1bb86430,
    rho=0x1a6a11d8, suppliedenv=0x19da3ae8) at eval.c:838
#19 0x00002ad0b1984feb in Rf_eval (e=0x1bb89920, rho=0x1a6a11d8) at eval.c:526
#20 0x00002ad0b198abee in forcePromise (e=0x1bb89c68) at eval.c:331
#21 0x00002ad0b1985373 in Rf_eval (e=0x19dd05e8, rho=0x1bb88620) at eval.c:436
#22 0x00002ad0b19868ad in do_return (call=0x1b2a2368, op=<value optimized out>, args=0x6, rho=0x1bb88620)
    at eval.c:1437
#23 0x00002ad0b1985139 in Rf_eval (e=0x1b2a2368, rho=0x1bb88620) at eval.c:482
#24 0x00002ad0b198abee in forcePromise (e=0x1bb88c78) at eval.c:331
#25 0x00002ad0b1985373 in Rf_eval (e=0x19dd05e8, rho=0x1bb86a68) at eval.c:436
#26 0x00002ad0b1986942 in do_begin (call=0x1b2ac708, op=0x19d7bd70, args=0x6, rho=0x1bb86a68) at eval.c:1420
#27 0x00002ad0b1985139 in Rf_eval (e=0x1b2ac708, rho=0x1bb86a68) at eval.c:482
#28 0x00002ad0b1989678 in Rf_applyClosure (call=0x1b2a22f8, op=0x1bb886c8, arglist=0x1bb87f08,
    rho=0x1bb88620, suppliedenv=0x19da3ae8) at eval.c:838
#29 0x00002ad0b1984feb in Rf_eval (e=0x1b2a22f8, rho=0x1bb88620) at eval.c:526
#30 0x00002ad0b1987bd7 in do_set (call=0x1b2a2218, op=0x19d7bf68, args=0x1b2a2288, rho=0x1bb88620)
    at eval.c:1722
#31 0x00002ad0b1985139 in Rf_eval (e=0x1b2a2218, rho=0x1bb88620) at eval.c:482
#32 0x00002ad0b1986942 in do_begin (call=0x1b2b1d30, op=0x19d7bd70, args=0x6, rho=0x1bb88620) at eval.c:1420
#33 0x00002ad0b1985139 in Rf_eval (e=0x1b2b1d30, rho=0x1bb88620) at eval.c:482
#34 0x00002ad0b1989678 in Rf_applyClosure (call=0x1bb89b88, op=0x1b2b2e38, arglist=0x1bb88578,
---Type <return> to continue, or q <return> to quit---
    rho=0x1a6a11d8, suppliedenv=0x19da3ae8) at eval.c:838
#35 0x00002ad0b1984feb in Rf_eval (e=0x1bb89b88, rho=0x1a6a11d8) at eval.c:526
#36 0x00002ad0b9a49594 in Rcpp::Evaluator::run (expr=0x1bb95588, env=<value optimized out>)
    at Evaluator.cpp:36
#37 0x00002ad0b941de55 in create<Rcpp::traits::named_object<boost::iterator_range<boost::transform_iterator<boost::function1<double, const<unnamed>::MyTick&>, __gnu_cxx::__normal_iterator<const<unnamed>::MyTick*, std::vector<<unnamed>::MyTick, std::allocator<<unnamed>::MyTick> > >, boost::use_default, boost::use_default> > >, Rcpp::traits::named_object<boost::iterator_range<boost::transform_iterator<boost::function1<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, const<unnamed>::MyTick&>, __gnu_cxx::__normal_iterator<const<unnamed>::MyTick*, std::vector<<unnamed>::MyTick, std::allocator<<unnamed>::MyTick> > >, boost::use_default, boost::use_default> > >, Rcpp::traits::named_object<boost::iterator_range<boost::transform_iterator<boost::function1<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, const<unnamed>::MyTick&>, __gnu_cxx::__normal_iterator<const<unnamed>::MyTick*, std::vector<<unnamed>::MyTick, std::allocator<<unnamed>::MyTick> > >, boost::use_default, boost::use_default> > >, Rcpp::traits::named_object<boost::iterator_range<boost::transform_iterator<boost::function1<double, const<unnamed>::MyTick&>, __gnu_cxx::__normal_iterator<const<unnamed>::MyTick*, std::vector<<unnamed>::MyTick, std::allocator<<unnamed>::MyTick> > >, boost::use_default, boost::use_default> > >, Rcpp::traits::named_object<boost::iterator_range<boost::transform_iterator<boost::function1<double, const<unnamed>::MyTick&>, __gnu_cxx::__normal_iterator<const<unnamed>::MyTick*, std::vector<<unnamed>::MyTick, std::allocator<<unnamed>::MyTick> > >, boost::use_default, boost::use_default> > >, Rcpp::traits::named_object<bool> > (t1=@0x7fff460545c0, t2=@0x7fff460544b0, t3=@0x7fff460543a0, t4=@0x7fff46054290,
    t5=@0x7fff46054180, t6=@0x7fff46054150)
    at /appdata/packages/shareware/R/R-2.13.1/lib64/R/library/Rcpp/include/Rcpp/DataFrame_generated.h:87

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20120112/d1808af8/attachment-0001.htm>


More information about the Rcpp-devel mailing list