Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

../configure --disable-optimize-cxx breaks jemalloc #7093

Closed
brson opened this issue Jun 13, 2013 · 2 comments
Closed

../configure --disable-optimize-cxx breaks jemalloc #7093

brson opened this issue Jun 13, 2013 · 2 comments
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows

Comments

@brson
Copy link
Contributor

brson commented Jun 13, 2013

Building libstd in stage1 crashes with this backtrace:

0x00007ffff599486d in arena_chunk_dirty_remove (rbtree=0x0, node=0x0) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:205
205     rb_gen(static UNUSED, arena_chunk_dirty_, arena_chunk_tree_t, arena_chunk_t,
(gdb) bt
#0  0x00007ffff599486d in arena_chunk_dirty_remove (rbtree=0x0, node=0x0) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:205
#1  0x00007ffff5996f8b in arena_avail_remove (arena=0x7ffff28092c0, chunk=0x7ffff2000000, pageind=538, npages=1, maybe_adjac_pred=true, maybe_adjac_succ=true)
    at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:293
#2  0x00007ffff599861d in arena_run_split (arena=0x7ffff28092c0, run=0x7ffff221a000, size=4096, large=true, binind=255, zero=false) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:406
#3  0x00007ffff599d4f6 in arena_chunk_purge (arena=0x7ffff28092c0, chunk=0x7ffff2000000, all=false) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:775
#4  0x00007ffff599e513 in arena_purge (arena=0x7ffff28092c0, all=false) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:952
#5  0x00007ffff599c87e in arena_maybe_purge (arena=0x7ffff28092c0) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:707
#6  0x00007ffff59a1a85 in arena_run_dalloc (arena=0x7ffff28092c0, run=0x7ffff2261000, dirty=true, cleaned=false) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:1101
#7  0x00007ffff59ac128 in arena_dalloc_bin_run (arena=0x7ffff28092c0, chunk=0x7ffff2000000, run=0x7ffff2261000, bin=0x7ffff280a350) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:1658
#8  0x00007ffff59acb6f in arena_dalloc_bin_locked (arena=0x7ffff28092c0, chunk=0x7ffff2000000, ptr=0x7ffff2261c00, mapelm=0x7ffff20038b8) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:1712
#9  0x00007ffff59acdb1 in arena_dalloc_bin (arena=0x7ffff28092c0, chunk=0x7ffff2000000, ptr=0x7ffff2261c00, pageind=609, mapelm=0x7ffff20038b8) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:1733
#10 0x00007ffff59ad69a in arena_dalloc_small (arena=0x7ffff28092c0, chunk=0x7ffff2000000, ptr=0x7ffff2261c00, pageind=609) at /home/brian/dev/rust2/src/rt/jemalloc/src/arena.c:1749
#11 0x00007ffff59874cc in arena_dalloc (try_tcache=true, ptr=0x7ffff2261c00, chunk=0x7ffff2000000, arena=0x7ffff28092c0) at /home/brian/dev/rust2/src/rt/jemalloc/include/jemalloc/internal/arena.h:1005
#12 idallocx (try_tcache=true, ptr=0x7ffff2261c00) at include/jemalloc/internal/jemalloc_internal.h:910
#13 iqallocx (try_tcache=true, ptr=0x7ffff2261c00) at include/jemalloc/internal/jemalloc_internal.h:929
#14 iqalloc (ptr=0x7ffff2261c00) at include/jemalloc/internal/jemalloc_internal.h:936
#15 free (ptr=0x7ffff2261c00) at /home/brian/dev/rust2/src/rt/jemalloc/src/jemalloc.c:1272
#16 0x00007ffff5927053 in rust_exchange_alloc::free (this=0x7ffff242a080, ptr=0x7ffff2261c00) at /home/brian/dev/rust2/src/rt/rust_exchange_alloc.cpp:41
#17 0x00007ffff5931f85 in rust_kernel::free (this=0x7ffff242a080, mem=0x7ffff2261c00) at /home/brian/dev/rust2/src/rt/rust_kernel.cpp:88
#18 0x00007ffff591be9b in kernel_owned<rust_sched_launcher>::operator delete (ptr=0x7ffff2261c00) at /home/brian/dev/rust2/src/rt/rust_kernel.h:170
#19 0x00007ffff591c0c6 in rust_thread_sched_launcher::~rust_thread_sched_launcher (this=0x7ffff2261c00, __in_chrg=<optimized out>) at /home/brian/dev/rust2/src/rt/rust_sched_launcher.h:43
#20 0x00007ffff591cbae in rust_scheduler::destroy_task_thread (this=0x7ffff2432180, thread=0x7ffff2261c00) at /home/brian/dev/rust2/src/rt/rust_scheduler.cpp:60
#21 0x00007ffff591cc0a in rust_scheduler::destroy_task_threads (this=0x7ffff2432180) at /home/brian/dev/rust2/src/rt/rust_scheduler.cpp:67
#22 0x00007ffff591ca38 in rust_scheduler::delete_this (this=0x7ffff2432180) at /home/brian/dev/rust2/src/rt/rust_scheduler.cpp:41
#23 0x00007ffff5932d38 in rust_scheduler::deref (this=0x7ffff2432180) at /home/brian/dev/rust2/src/rt/rust_scheduler.h:30
#24 0x00007ffff5932483 in rust_kernel::wait_for_schedulers (this=0x7ffff242a080) at /home/brian/dev/rust2/src/rt/rust_kernel.cpp:184
#25 0x00007ffff591d672 in rust_sched_reaper::run (this=0x7ffff242a1c8) at /home/brian/dev/rust2/src/rt/rust_sched_reaper.cpp:24
#26 0x00007ffff5914a95 in rust_thread_start (ptr=0x7ffff242a1c8) at /home/brian/dev/rust2/src/rt/sync/rust_thread.cpp:36
#27 0x00007ffff50f4e9a in start_thread (arg=0x7ffff7fdb700) at pthread_create.c:308
#28 0x00007ffff5606ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

@yichoi
Copy link
Contributor

yichoi commented Jun 17, 2013

It seems -O0 option is the reason of SEGV. In case of --disable-optimize-cxx, -O0 option is passed to jemalloc. when I changed only jemalloc makefile -O0 to -O2 like default configure, It succeeded.

I am not sure whether -O0 is proper to jemalloc or not when --disable-optimize-cxx set, since there is no non-optimization option in jemalloc and always fixed -O3.

BTW, why we do not use -O3 like jemalloc main branch ?

@emberian
Copy link
Member

emberian commented Aug 5, 2013

jemalloc probably shouldn't ever be built without optimizations. I'm going to close this, since we don't use jemalloc right now.

@emberian emberian closed this as completed Aug 5, 2013
flip1995 pushed a commit to flip1995/rust that referenced this issue Apr 22, 2021
Fix `single_match`

fixes: rust-lang#7038
changelog: Don't suggest an equality check for types which don't implement `PartialEq` in `single_match`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-runtime Area: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflows
Projects
None yet
Development

No branches or pull requests

3 participants