Skip to content

Abort in dump() method #1973

Description

@ibc

What is the issue you have?

Eventually jsonObject.dump() crashes as follows:

#0  0x00007f30680cd428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007f30680cf02a in __GI_abort () at abort.c:89
#2  0x00007f30681152e8 in __malloc_assert (
    assertion=assertion@entry=0x7f3068229190 "(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)",
    file=file@entry=0x7f3068225bc5 "malloc.c", line=line@entry=2394, function=function@entry=0x7f30682299d8 <__func__.11510> "sysmalloc") at malloc.c:301
#3  0x00007f3068119426 in sysmalloc (nb=nb@entry=1936, av=av@entry=0x7f306845cb20 <main_arena>) at malloc.c:2391
#4  0x00007f306811a743 in _int_malloc (av=av@entry=0x7f306845cb20 <main_arena>, bytes=bytes@entry=1921) at malloc.c:3827
#5  0x00007f306811c184 in __GI___libc_malloc (bytes=1921) at malloc.c:2913
#6  0x00007f3068922e78 in operator new(unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007f30689b4499 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x00007f30689b5833 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00000000005c9e69 in nlohmann::detail::output_string_adapter<char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::write_characters (this=0x1ebd020,
    s=0x7ffd7146c16a "dtlsState65:FE:25:45:29:D2:87:D8:22:03:0A:54:5E:61:19:27:30:B8:5D:C0:97:B0:D3:E1:D9:CF:CD:EB:E5:19:44:F1:57:84:32:12:21:B6:06:1E:39:03:59:85:63:26:A8:10:B7:51:1E:5C:EF:E7:BB:51:CE:70:1E:6B:60", length=9)
    at ../deps/json/single_include/nlohmann/json.hpp:11274
Python Exception <class 'gdb.error'> There is no member named _M_dataplus.:
#10 0x00000000005cb051 in nlohmann::detail::serializer<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >::dump_escaped (this=0x7ffd7146c110, s=, ensure_ascii=false) at ../deps/json/single_include/nlohmann/json.hpp:14251
#11 0x00000000005c88f2 in nlohmann::detail::serializer<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >::dump (this=0x7ffd7146c110, val=..., pretty_print=false, ensure_ascii=false, indent_step=0, current_indent=0) at ../deps/json/single_include/nlohmann/json.hpp:13897
#12 0x00000000005c8956 in nlohmann::detail::serializer<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> >::dump (this=0x7ffd7146c110, val=..., pretty_print=false, ensure_ascii=false, indent_step=0, current_indent=0) at ../deps/json/single_include/nlohmann/json.hpp:13899
#13 0x00000000005c7385 in nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>::dump (
    this=0x7ffd7146c540, indent=-1, indent_char=32 ' ', ensure_ascii=false, error_handler=nlohmann::detail::error_handler_t::strict) at ../deps/json/single_include/nlohmann/json.hpp:16574
#14 0x00000000005d0938 in Channel::UnixStreamSocket::Send (this=0x1e647f0, jsonMessage=...) at ../src/Channel/UnixStreamSocket.cpp:48

Please describe the steps to reproduce the issue. Can you provide a small but working code example?

Working on it, but it's hard since it happens randomly.

It does not happen in OSX with Clang. It happens in Linux Debian with gcc 6.3.0 and Ubuntu with 5.4.0 in Docker.

  • Did you use a released version of the library or the version from the develop branch?

Latest stable 3.7.3

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions