Skip to content

segfault in shape code with pipes #2834

Closed
@erickt

Description

@erickt
proto! streamp {
    open:send<T: send> {
        data(T) -> open<T>
    }
}

fn rendezvous() {
   let (c, s) = streamp::init();
   let streams: ~[streamp::client::open<int>] = ~[c];

   #error("%?", streams[0]);
}

fn main(args: ~[str]) {
   os::getenv("FOO");
   rendezvous();
}

segfaults with:

0x00000001003f33cc in shape::ctxt<shape::data<shape::log, shape::ptr> >::get_variant_sp (this=0x1018ffe00, tinfo=@0x1018ffba0, variant_id=4303535105) at rust_shape.h:348
348     const uint8_t *variant_ptr = tables->tags + variant_offset;
(gdb) bt
#0  0x00000001003f33cc in shape::ctxt<shape::data<shape::log, shape::ptr> >::get_variant_sp (this=0x1018ffe00, tinfo=@0x1018ffba0, variant_id=4303535105) at rust_shape.h:348
#1  0x00000001003f33ed in shape::ctxt<shape::data<shape::log, shape::ptr> >::get_variant_name (this=<value temporarily unavailable, due to optimizations>, tinfo=<value temporarily unavailable, due to optimizations>, variant_id=<value temporarily unavailable, due to optimizations>) at rust_shape.h:359
#2  0x00000001003f6320 in shape::log::walk_tag2 () at /Users/etryzelaar/Projects/rust/rust/src/rt/rust_shape.h:1217
#3  0x00000001003f6320 in shape::data<shape::log, shape::ptr>::walk_tag1 (this=0x1018ffe00, tinfo=@0x1018ffba0) at rust_shape.h:1124
#4  0x00000001003f64ec in shape::ctxt<shape::data<shape::log, shape::ptr> >::walk_tag0 (this=<value temporarily unavailable, due to optimizations>) at rust_shape.h:415
#5  0x00000001003f3063 in shape::log::walk_res2 (this=0x1018ffe00, dtor=<value temporarily unavailable, due to optimizations>, end_sp=0x100006149 "") at /Users/etryzelaar/rust/rust/src/rt/rust_shape.cpp:476
#6  0x00000001003f61e9 in shape::ctxt<shape::data<shape::log, shape::ptr> >::walk_res0 (this=0x1018ffe00) at rust_shape.h:954
#7  0x00000001003f28e6 in basic_string [inlined] () at /usr/include/c++/4.2.1/bits/basic_string.h:513
#8  0x00000001003f28e6 in _Alloc_hider [inlined] () at /usr/include/c++/4.2.1/bits/basic_string.h:2067
#9  0x00000001003f28e6 in basic_string [inlined] () at /Users/etryzelaar/rust/rust/src/rt/rust_shape.cpp:262
#10 0x00000001003f28e6 in std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str () at /Users/etryzelaar/rust/rust/src/rt/rust_shape.cpp:130
#11 std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::str () at /usr/include/c++/4.2.1/sstream:572
#12 0x00000001003f28e6 in shape_log_str (tydesc=0x100007af0, data=0x100508da0 "\001??") at /Users/etryzelaar/rust/rust/src/rt/rust_shape.cpp:515
#13 0x000000010004fbca in shape_log_str__c_stack_shim ()
#14 0x00000001003fd90b in __morestack ()

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsI-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions