Skip to content
This repository has been archived by the owner on Nov 5, 2018. It is now read-only.

Segfault #82

Closed
c0gent opened this issue Jul 25, 2018 · 12 comments · Fixed by crossbeam-rs/crossbeam#184
Closed

Segfault #82

c0gent opened this issue Jul 25, 2018 · 12 comments · Fixed by crossbeam-rs/crossbeam#184

Comments

@c0gent
Copy link

c0gent commented Jul 25, 2018

I'm not sure exactly which repo this issue belongs in. I just updated to crossbeam 0.4.0 earlier and am now experiencing segfaults with the following stack trace. Apologies for the lack of pruning:

Thread 51 "tokio-runtime-w" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe13fe700 (LWP 107445)]
arena_dalloc_bin_locked_impl (bitselm=<optimized out>, junked=true, ptr=<optimized out>, chunk=0x7fffdec00000, 
    arena=0x7ffff6d4eb00, tsdn=0x7fffe13fe480) at /checkout/src/liballoc_jemalloc/../jemalloc/src/arena.c:2964
2964	/checkout/src/liballoc_jemalloc/../jemalloc/src/arena.c: No such file or directory.
(gdb) bt
#0  arena_dalloc_bin_locked_impl (bitselm=<optimized out>, junked=true, ptr=<optimized out>, chunk=0x7fffdec00000, 
    arena=0x7ffff6d4eb00, tsdn=0x7fffe13fe480) at /checkout/src/liballoc_jemalloc/../jemalloc/src/arena.c:2964
#1  je_arena_dalloc_bin_junked_locked (tsdn=tsdn@entry=0x7fffe13fe480, arena=arena@entry=0x7ffff6d4eb00, 
    chunk=0x7fffdec00000, ptr=<optimized out>, bitselm=<optimized out>)
    at /checkout/src/liballoc_jemalloc/../jemalloc/src/arena.c:2981
#2  0x00005555558640a5 in je_tcache_bin_flush_small (tsd=0x7fffe13fe480, tcache=tcache@entry=0x7fffebca1000, 
    tbin=tbin@entry=0x7fffebca1328, binind=binind@entry=24, rem=rem@entry=10)
    at /checkout/src/liballoc_jemalloc/../jemalloc/src/tcache.c:137
#3  0x000055555583ca9f in je_tcache_dalloc_small (slow_path=<optimized out>, binind=<optimized out>, 
    ptr=<optimized out>, tcache=<optimized out>, tsd=<optimized out>)
    at /checkout/src/liballoc_jemalloc/../jemalloc/include/jemalloc/internal/tcache.h:419
#4  je_arena_sdalloc (slow_path=<optimized out>, tcache=<optimized out>, size=<optimized out>, ptr=<optimized out>, 
    tsdn=<optimized out>) at /checkout/src/liballoc_jemalloc/../jemalloc/include/jemalloc/internal/arena.h:1499
#5  je_isdalloct (slow_path=<optimized out>, tcache=<optimized out>, size=<optimized out>, ptr=<optimized out>, 
    tsdn=<optimized out>) at include/jemalloc/internal/jemalloc_internal.h:1195
#6  je_isqalloc (slow_path=<optimized out>, tcache=<optimized out>, size=<optimized out>, ptr=<optimized out>, 
    tsd=<optimized out>) at include/jemalloc/internal/jemalloc_internal.h:1205
#7  isfree (tsd=<optimized out>, slow_path=<optimized out>, tcache=<optimized out>, usize=<optimized out>, 
    ptr=<optimized out>) at /checkout/src/liballoc_jemalloc/../jemalloc/src/jemalloc.c:1921
#8  sdallocx (ptr=0x7fffdec59800, size=<optimized out>, flags=<optimized out>)
    at /checkout/src/liballoc_jemalloc/../jemalloc/src/jemalloc.c:2669
#9  0x00005555555ff077 in <alloc::alloc::Global as core::alloc::GlobalAlloc>::dealloc (self=<optimized out>, 
    ptr=<optimized out>, layout=...) at /checkout/src/liballoc/alloc.rs:86
#10 <alloc::alloc::Global as core::alloc::Alloc>::dealloc (self=<optimized out>, ptr=..., layout=...)
    at /checkout/src/liballoc/alloc.rs:117
#11 <alloc::raw_vec::RawVec<T, A>>::dealloc_buffer (self=<optimized out>) at /checkout/src/liballoc/raw_vec.rs:704
#12 <alloc::raw_vec::RawVec<T, A> as core::ops::drop::Drop>::drop (self=0x7fffdec72198)
    at /checkout/src/liballoc/raw_vec.rs:713
#13 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#14 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#15 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#16 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#17 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#18 0x0000555555634435 in core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#19 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#20 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#21 core::mem::drop (_x=0x7fffdec72000) at /checkout/src/libcore/mem.rs:787
#22 <crossbeam_epoch::atomic::Owned<T> as core::ops::drop::Drop>::drop (self=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/atomic.rs:723
#23 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#24 core::mem::drop (_x=...) at /checkout/src/libcore/mem.rs:787
#25 crossbeam_epoch::guard::Guard::defer::{{closure}} ()
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/guard.rs:176
#26 crossbeam_epoch::deferred::Deferred::new::call (raw=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/deferred.rs:44
#27 0x0000555555735be6 in crossbeam_epoch::deferred::Deferred::call (self=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/deferred.rs:75
#28 <crossbeam_epoch::internal::Bag as core::ops::drop::Drop>::drop (self=0x7fffe13fbcf8)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/internal.rs:106
#29 core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#30 0x0000555555736cf5 in core::ptr::drop_in_place () at /checkout/src/libcore/ptr.rs:59
#31 core::mem::drop (_x=...) at /checkout/src/libcore/mem.rs:787
#32 crossbeam_epoch::internal::Global::collect (self=0x7ffff6a8b040, guard=0x7fffe13fc530)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/internal.rs:190
#33 0x00005555555fec5d in crossbeam_epoch::internal::Local::pin (self=0x3)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/internal.rs:379
#34 crossbeam_epoch::collector::Handle::pin (self=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/collector.rs:72
---Type <return> to continue, or q <return> to quit---  
#35 crossbeam_epoch::default::pin::{{closure}} (handle=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/default.rs:25
#36 <std::thread::local::LocalKey<T>>::try_with (self=<optimized out>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#37 <std::thread::local::LocalKey<T>>::with (self=<optimized out>, f=...) at /checkout/src/libstd/thread/local.rs:248
#38 0x000055555567656d in crossbeam_epoch::default::pin ()
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-epoch-0.5.1/src/default.rs:25
#39 <crossbeam::seg_queue::SegQueue<T>>::try_pop (self=0x7ffff6b091a0)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-0.4.0/src/seg_queue.rs:116
#40 0x000055555569b367 in <hydrabadger::hydrabadger::handler::Handler as futures::future::Future>::poll (
    self=0x7ffff6b09178) at src/hydrabadger/handler.rs:684
#41 0x000055555560a3fe in futures::future::option::<impl futures::future::Future for core::option::Option<F>>::poll (
    self=0x7ffff6b09178)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/option.rs:12
#42 <futures::future::map_err::MapErr<A, F> as futures::future::Future>::poll (self=0x7ffff6b09178)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/map_err.rs:30
#43 0x00005555556274ac in <futures::future::join::MaybeDone<A>>::poll (self=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/join.rs:153
#44 <futures::future::join::Join4<A, B, C, D> as futures::future::Future>::poll (self=0x7ffff6b09000)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/join.rs:75
#45 0x00005555556098b9 in <futures::future::map::Map<A, F> as futures::future::Future>::poll (self=0x7ffff6b09000)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/map.rs:30
#46 0x0000555555718c60 in <alloc::boxed::Box<F> as futures::future::Future>::poll (self=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/future/mod.rs:113
#47 <futures::task_impl::Spawn<T>>::poll_future_notify::{{closure}} (f=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/task_impl/mod.rs:289
#48 <futures::task_impl::Spawn<T>>::enter::{{closure}} ()
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/task_impl/mod.rs:363
#49 futures::task_impl::std::set (task=0x7fffe13fd428, f=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/task_impl/std/mod.rs:78
#50 0x000055555571bc86 in <futures::task_impl::Spawn<T>>::enter (self=<optimized out>, 
    unpark=<error reading variable: access outside bounds of object referenced via synthetic pointer>, f=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/task_impl/mod.rs:363
#51 <futures::task_impl::Spawn<T>>::poll_future_notify (self=<optimized out>, notify=<optimized out>, id=76)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.23/src/task_impl/mod.rs:289
#52 tokio_threadpool::task::TaskFuture::poll (self=<optimized out>, unpark=<optimized out>, id=76, 
    exec=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/task/mod.rs:292
#53 tokio_threadpool::task::Task::run::{{closure}} ()
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/task/mod.rs:165
#54 core::ops::function::FnOnce::call_once () at /checkout/src/libcore/ops/function.rs:223
#55 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once (self=..., _args=<optimized out>)
    at /checkout/src/libstd/panic.rs:305
#56 std::panicking::try::do_call (data=0x7fffe13fd4d0 "H\325?\341\377\177") at /checkout/src/libstd/panicking.rs:310
#57 0x0000555555834d8a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:105
#58 0x000055555571ade7 in std::panicking::try (f=...) at /checkout/src/libstd/panicking.rs:289
#59 std::panic::catch_unwind (f=...) at /checkout/src/libstd/panic.rs:374
#60 tokio_threadpool::task::Task::run (self=<optimized out>, unpark=<optimized out>, exec=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/task/mod.rs:151
#61 0x00005555557144a6 in tokio_threadpool::worker::Worker::run_task2 (self=<optimized out>, notify=<optimized out>, 
    sender=<optimized out>, task=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:545
#62 tokio_threadpool::worker::Worker::run_task (self=0x7fffe13fd938, task=..., notify=<optimized out>, sender=0x3)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:445
#63 0x00005555557137b5 in tokio_threadpool::worker::Worker::try_run_owned_task (notify=0x7fffe0a0d060, 
    sender=0x7ffff6a8b280, self=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:385
#64 tokio_threadpool::worker::Worker::try_run_task (self=<optimized out>, notify=<optimized out>, 
---Type <return> to continue, or q <return> to quit---
    sender=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:293
#65 tokio_threadpool::worker::Worker::run (self=0x7fffe13fd938)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:239
#66 0x0000555555700967 in tokio::runtime::builder::Builder::build::{{closure}}::{{closure}}::{{closure}}::{{closure}}
    () at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.7/src/runtime/builder.rs:125
#67 tokio_timer::timer::handle::with_default::{{closure}} (current=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.4/src/timer/handle.rs:64
#68 <std::thread::local::LocalKey<T>>::try_with (self=<optimized out>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#69 <std::thread::local::LocalKey<T>>::with (self=<optimized out>, f=...) at /checkout/src/libstd/thread/local.rs:248
#70 0x0000555555700a93 in tokio_timer::timer::handle::with_default (handle=<optimized out>, enter=<optimized out>, 
    f=...) at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.4/src/timer/handle.rs:56
#71 tokio::runtime::builder::Builder::build::{{closure}}::{{closure}}::{{closure}} (enter=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.7/src/runtime/builder.rs:124
#72 tokio_timer::clock::clock::with_default::{{closure}} (cell=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.4/src/clock/clock.rs:136
#73 <std::thread::local::LocalKey<T>>::try_with (self=0x555555b886a0 <byte_str.0.llvm>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#74 <std::thread::local::LocalKey<T>>::with (self=0x555555b886a0 <byte_str.0.llvm>, f=...)
    at /checkout/src/libstd/thread/local.rs:248
#75 0x00005555557007cb in tokio_timer::clock::clock::with_default (clock=<optimized out>, enter=<optimized out>, f=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.4/src/clock/clock.rs:119
#76 tokio::runtime::builder::Builder::build::{{closure}}::{{closure}} (enter=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.7/src/runtime/builder.rs:123
#77 tokio_reactor::with_default::{{closure}} (current=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.2/src/lib.rs:231
#78 <std::thread::local::LocalKey<T>>::try_with (self=<optimized out>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#79 <std::thread::local::LocalKey<T>>::with (self=<optimized out>, f=...) at /checkout/src/libstd/thread/local.rs:248
#80 0x00005555556fe0a9 in tokio_reactor::with_default (handle=<optimized out>, enter=<optimized out>, f=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.2/src/lib.rs:214
#81 tokio::runtime::builder::Builder::build::{{closure}} (w=<optimized out>, enter=0x7fffe13fd8a0)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.7/src/runtime/builder.rs:122
#82 0x000055555571a545 in tokio_threadpool::callback::Callback::call (self=<optimized out>, worker=0x0, enter=0x4c)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/callback.rs:21
#83 tokio_threadpool::worker::Worker::do_run::{{closure}}::{{closure}} (enter=0x4c)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:121
#84 tokio_executor::global::with_default::{{closure}} (cell=0x7fffe13fe5a8)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.2/src/global.rs:176
#85 <std::thread::local::LocalKey<T>>::try_with (self=<optimized out>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#86 <std::thread::local::LocalKey<T>>::with (self=<optimized out>, f=...) at /checkout/src/libstd/thread/local.rs:248
#87 0x000055555571a68c in tokio_executor::global::with_default (executor=0x7ffff6a8b280, enter=0x8, f=...)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.2/src/global.rs:150
#88 tokio_threadpool::worker::Worker::do_run::{{closure}} (c=<optimized out>)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:119
#89 <std::thread::local::LocalKey<T>>::try_with (self=0x555555b893c0 <byte_str.p.llvm>, f=...)
    at /checkout/src/libstd/thread/local.rs:294
#90 <std::thread::local::LocalKey<T>>::with (self=0x555555b893c0 <byte_str.p.llvm>, f=...)
    at /checkout/src/libstd/thread/local.rs:248
#91 0x0000555555719734 in tokio_threadpool::worker::Worker::do_run (self=0x7ffff6a8b280)
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/worker/mod.rs:110
#92 tokio_threadpool::pool::Pool::spawn_thread::{{closure}} ()
    at /home/nick/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-threadpool-0.1.5/src/pool/mod.rs:417
#93 std::sys_common::backtrace::__rust_begin_short_backtrace (f=...)
    at /checkout/src/libstd/sys_common/backtrace.rs:136
#94 0x000055555571bcec in std::thread::Builder::spawn::{{closure}}::{{closure}} ()
---Type <return> to continue, or q <return> to quit---
    at /checkout/src/libstd/thread/mod.rs:409
#95 <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once (self=..., _args=<optimized out>)
    at /checkout/src/libstd/panic.rs:305
#96 std::panicking::try::do_call (data=<optimized out>) at /checkout/src/libstd/panicking.rs:310
#97 0x0000555555834d8a in __rust_maybe_catch_panic () at libpanic_unwind/lib.rs:105
#98 0x000055555571740d in std::panicking::try (f=...) at /checkout/src/libstd/panicking.rs:289
#99 std::panic::catch_unwind (f=...) at /checkout/src/libstd/panic.rs:374
#100 std::thread::Builder::spawn::{{closure}} () at /checkout/src/libstd/thread/mod.rs:408
#101 <F as alloc::boxed::FnBox<A>>::call_box (self=0x7ffff3698380, args=<optimized out>)
    at /checkout/src/liballoc/boxed.rs:638
#102 0x000055555582982b in _$LT$alloc..boxed..Box$LT$alloc..boxed..FnBox$LT$A$C$$u20$Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h9ad6846d840ae36b ()
    at /checkout/src/liballoc/boxed.rs:648
#103 std::sys_common::thread::start_thread () at libstd/sys_common/thread.rs:24
#104 0x00005555558188b6 in std::sys::unix::thread::Thread::new::thread_start () at libstd/sys/unix/thread.rs:90
#105 0x00007ffff77b16db in start_thread (arg=0x7fffe13fe700) at pthread_create.c:463
#106 0x00007ffff72c288f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Let me know what else you want to know. It's very reproducable.

@ghost
Copy link

ghost commented Jul 25, 2018

My guess is the problem lies here:
https://docs.rs/crossbeam/0.4.0/src/crossbeam/seg_queue.rs.html#24

We need to wrap T into ManuallyDrop.

It looks like MsQueue suffers from the same problem so we should fix that as well:
https://docs.rs/crossbeam/0.4.0/src/crossbeam/ms_queue.rs.html#24

@c0gent Is there a way for me to reproduce the issue (like a repo to clone and tests to run)?

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Yes, give me a sec and I'll get it set up for you.

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Go to https://github.com/poanetwork/hydrabadger/ and follow the directions except switch to the debug-crossbeam branch after cloning.

You will need to run 8 nodes/terminals to get it to start (./run-node {0 - 7}). Let me know if that doesn't work for any reason.

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Also you can use gdb-node instead to run in gdb.

@ghost
Copy link

ghost commented Jul 25, 2018

That branch is using crossbeam v0.3.2 and I'm able to run 8 nodes without any problems. Should I bump the version in Cargo.toml?

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Sorry re-clone.

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Also you may need to let it run a while though it usually segfaults on at least a few of the nodes within a few minutes.

@ghost
Copy link

ghost commented Jul 25, 2018

Ok, I'm getting segfaults now, but it looks like my fix solves the problem... so far at least. :)

Can you try using this branch and see if the problem is resolved on your machine, too?
crossbeam-rs/crossbeam#184

To use the branch, add the following to Cargo.toml:

crossbeam = { git = "https://github.com/stjepang/crossbeam.git", branch = "use-manually-drop" }

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

Already did, it looks good.

@c0gent
Copy link
Author

c0gent commented Jul 25, 2018

By the way, thanks to you and Aaron and everyone for the great crate!

You don't know me but if you're at RustConf this year maybe I'll have a chance to say hi.

@ghost
Copy link

ghost commented Jul 25, 2018

Yeah, I'll be at RustConf, do say hi! :)

This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

Successfully merging a pull request may close this issue.

1 participant