microsoft / microsoft/mimalloc

under what situation mi_new could fail and how to get more info when crashes

Open
#379 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
13.4k
Forks
1.2k
Avg merge
4d 45m
Merged PRs (30d)
13

Description

most time my program runs ok (for example several months in production no problem). when there was a network issue and restarted my program, the program could crash. And I can't do any meaningful logical analysis.

gdb result

Using host libthread_db library "/lib64/libthread_db.so.1".
Missing separate debuginfo for /home/sgesys/flex/libs/libxerces-c-3.1.so
Try: yum --enablerepo='*debug*' install /usr/lib/debug/.build-id/df/7633d16d4b4063b8cd02ccdbb11acaa15526f5.debug
Core was generated by `sge_flex -nodeid SGE_FLEX'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000625b2e in mi_new ()
Missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64 libgcc-4.8.5-28.el7.x86_64 libstdc++-4.8.5-28.el7.x86_64 zlib-1.2.7-17.el7.x86_64
(gdb) bt full
#0 0x0000000000625b2e in mi_new ()
No symbol table info available.
#1 0x0000000000417a70 in allocate (this=0x7f5cb73fd940, __n=784) at /opt/rh/devtoolset-7/root/usr/include/c++/7/ext/new_allocator.h:111
No locals.
#2 allocate (__a=..., __n=784) at /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/alloc_traits.h:436
No locals.
#3 fmt::v6::basic_memory_buffer >::grow (this=0x7f5cb73fd940, size=) at /fs02/home/thirdparty/spdlog/include/spdlog/fmt/bundled/format.h:676
new_capacity = 784
new_data =

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report points to mi_new(), allocate() in new_allocator.h and alloc_traits.h, and spdlog's format.h grow(); start by reproducing the crash under gdb with the missing debuginfo installed. Done means identifying the cause of the network-triggered segmentation fault or documenting the additional diagnostic information needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.