No crashreporter in Firefox or Thunderbird

Bug #1002590 reported by Chris Coulson on 2012-05-22
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
firefox (Ubuntu)
High
Chris Coulson
Quantal
High
Chris Coulson
thunderbird (Ubuntu)
High
Chris Coulson
Quantal
High
Chris Coulson

Bug Description

dump_syms crashes during the build when creating the breakpad symbols with gcc 4.7. It isn't recreatable at all on a local build, which is a bit of a pain.

The stack looks like this:

#0 0x00007ffff7320445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        resultvar = 0
        pid = <optimized out>
        selftid = 31533
#1 0x00007ffff7323bab in __GI_abort () at abort.c:91
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x3, sa_sigaction = 0x3}, sa_mask = {__val = {4, 140737488347766, 47, 140737341956901, 1, 140737341961145, 3, 140737488338444, 4, 140737341956848, 1,
              140737341965828, 3, 140737488338420, 12, 140737341965832}}, sa_flags = 2, sa_restorer = 0x7ffff7464608}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff735de2e in __libc_message (do_abort=2, fmt=0x7ffff74660d0 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:201
        ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffc770, reg_save_area = 0x7fffffffc680}}
        ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffc770, reg_save_area = 0x7fffffffc680}}
        fd = 7
        on_2 = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3 0x00007ffff7368626 in malloc_printerr (action=3, str=0x7ffff7466230 "double free or corruption (out)", ptr=<optimized out>) at malloc.c:5007
        buf = "000055555578f900"
        cp = <optimized out>
#4 0x000055555555b277 in deallocate (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.7/ext/new_allocator.h:100
No locals.
#5 _M_put_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:356
No locals.
#6 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear (
    this=this@entry=0x55555578f908) at /usr/include/c++/4.7/bits/list.tcc:80
        __tmp = <optimized out>
        __cur = 0x5555557880d0
#7 0x000055555555b2b9 in ~_List_base (this=0x55555578f908, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:401
No locals.
#8 ~list (this=0x55555578f908, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:458
No locals.
#9 ~Abbrev (this=0x55555578f8f8, __in_chrg=<optimized out>)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/../../common/dwarf/dwarf2reader.h:244
No locals.
#10 _Destroy<dwarf2reader::CompilationUnit::Abbrev> (__pointer=0x55555578f8f8) at /usr/include/c++/4.7/bits/stl_construct.h:95
No locals.
#11 __destroy<dwarf2reader::CompilationUnit::Abbrev*> (__last=0x555555790b10, __first=0x55555578f8f8) at /usr/include/c++/4.7/bits/stl_construct.h:105
No locals.
#12 _Destroy<dwarf2reader::CompilationUnit::Abbrev*> (__last=0x555555790b10, __first=<optimized out>) at /usr/include/c++/4.7/bits/stl_construct.h:128
No locals.
#13 _Destroy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev> (__last=0x555555790b10, __first=<optimized out>) at /usr/include/c++/4.7/bits/stl_construct.h:155
No locals.
#14 ~vector (this=0x555555788090, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_vector.h:403
No locals.
#15 dwarf2reader::CompilationUnit::~CompilationUnit (this=<optimized out>, __in_chrg=<optimized out>)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/../../common/dwarf/dwarf2reader.h:227
No locals.
#16 0x000055555555bb21 in (anonymous namespace)::LoadDwarf (dwarf_filename=..., elf_header=elf_header@entry=0x7ffff7f5c000, big_endian=big_endian@entry=false, module=module@entry=0x7fffffffccd0)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:283
        reporter = <incomplete type>
        root_handler = {<dwarf2reader::RootDIEHandler> = {<dwarf2reader::DIEHandler> = {_vptr.DIEHandler = 0x555555786170}, <No data fields>}, line_reader_ = 0x7fffffffc800, cu_context_ = 0x555555789460,
          child_context_ = 0x5555557894a0, has_source_line_info_ = true, source_line_offset_ = 0,
          lines_ = {<std::_Vector_base<google_breakpad::Module::Line, std::allocator<google_breakpad::Module::Line> >> = {
              _M_impl = {<std::allocator<google_breakpad::Module::Line>> = {<__gnu_cxx::new_allocator<google_breakpad::Module::Line>> = {<No data fields>}, <No data fields>}, _M_start = 0x55555579db00,
                _M_finish = 0x55555579eba0, _M_end_of_storage = 0x55555579fb00}}, <No data fields>}}
        die_dispatcher = <incomplete type>
        reader = {_vptr.CompilationUnit = 0x555555785d60, header_ = {length = 15350, version = 2, abbrev_offset = 0, address_size = 8 '\b'}, offset_from_section_start_ = 0,
          buffer_ = 0x7ffff7f6cc3c "\366;", buffer_length_ = 120649, after_header_ = 0x7ffff7f6cc47 "\001*\"", reader_ = 0x7fffffffc8c8, sections_ = @0x7fffffffc840, handler_ = 0x7fffffffc928,
          abbrevs_ = 0x555555788090, string_buffer_ = 0x7ffff7f914fb "_ZNK8nsCOMPtrI12nsILocalFileEptEv", string_buffer_length_ = 35018}
        offset = 15354
        endianness = <optimized out>
        file_context = {filename = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x555555788028 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"}}, section_map = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<char const*, unsigned long long> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<char const*, unsigned long long> > > >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555788970, _M_left = 0x5555557881b0, _M_right = 0x555555788900}, _M_node_count = 39}}},
          module = 0x7fffffffccd0, file_private = 0x5555557882e0}
        sections = <optimized out>
        debug_info_section = {first = <optimized out>, second = 120649}
        debug_info_length = 120649
        byte_reader = <incomplete type>
        num_sections = <optimized out>
        section_names = <optimized out>
        line_to_module = {<google_breakpad::DwarfCUToModule::LineToModuleFunctor> = {_vptr.LineToModuleFunctor = 0x555555785830}, byte_reader_ = 0x7fffffffc8c8}
#17 0x000055555555be87 in (anonymous namespace)::LoadSymbols (obj_file=..., big_endian=big_endian@entry=false, elf_header=0x7ffff7f5c000, read_gnu_debug_link=read_gnu_debug_link@entry=true,
    info=info@entry=0x7fffffffcc78, module=module@entry=0x7fffffffccd0)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:559
        loading_addr = 140737353925952
        sections = 0x7ffff7fcc540
        stab_section = <optimized out>
        dwarf_cfi_section = <optimized out>
        section_names = 0x7ffff7fcce40
        found_debug_info_section = true
        dwarf_section = <optimized out>
        eh_frame_section = <optimized out>
#18 0x000055555555c40a in google_breakpad::WriteSymbolFile (obj_file=..., debug_dir=..., sym_file=0x7ffff76a1260)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:712
        module = {name_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x555555788108 "firefox"}}, os_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x555555788138 "Linux"}}, architecture_ = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788198 "x86_64"}}, id_ = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788258 "5D22B894777083103D31E72DB9C1F08E0"}},
          load_address_ = 4194304, files_ = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const* const, google_breakpad::Module::File*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const* const, google_breakpad::Module::File*> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555799440, _M_left = 0x55555579b7f0, _M_right = 0x55555579ac80}, _M_node_count = 42}}}, functions_ = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<google_breakpad::Module::Function*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<google_breakpad::Module::Function*> >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555799260, _M_left = 0x55555579acc0, _M_right = 0x5555557993e0}, _M_node_count = 3}}},
          stack_frame_entries_ = {<std::_Vector_base<google_breakpad::Module::StackFrameEntry*, std::allocator<google_breakpad::Module::StackFrameEntry*> >> = {
              _M_impl = {<std::allocator<google_breakpad::Module::StackFrameEntry*>> = {<__gnu_cxx::new_allocator<google_breakpad::Module::StackFrameEntry*>> = {<No data fields>}, <No data fields>},
                _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}}
        map_wrapper = {is_set_ = true, base_ = 0x7ffff7f5c000, size_ = 476754}
        file_id = {path_ = "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox", '\000' <repeats 4013 times>}
        architecture = 0x555555575e0f "x86_64"
        os = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788138 "Linux"}}
        id = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
            _M_p = 0x555555788258 "5D22B894777083103D31E72DB9C1F08E0"}}
        info = {debug_dir_ = @0x7fffffffde00, debuglink_file_ = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff7dc74d8 ""}}, has_loading_addr_ = false,
          loading_addr_ = 4194304, loaded_file_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
              _M_p = 0x555555788028 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"}}, loaded_sections_ = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x5555557882b0, _M_left = 0x5555557882b0, _M_right = 0x5555557882b0}, _M_node_count = 1}}}}
        elf_header = 0x7ffff7f5c000
        identifier = "\224\270\"]pw\020\203=1\347-\271\301", <incomplete sequence \360\216>
        big_endian = false
        name = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788108 "firefox"}}
#19 0x000055555555a0cf in main (argc=<optimized out>, argv=<optimized out>)
    at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/dump_syms.cc:49
        binary = 0x7fffffffe2a6 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"
        debug_dir = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff7dc74d8 ""}}

Unfortunately, valgrind is not much help by default because dump_syms is statically linked (so memcheck can't hook in to malloc / free). However, I can do a dynamic build in a PPA and get that build to crash locally. In this case, I see this in valgrind:

==965== Invalid read of size 8
==965== at 0x10F277: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (stl_list.h:358)
==965== by 0x121978: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::~_List_base() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x120441: std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::~list() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x12047D: dwarf2reader::CompilationUnit::Abbrev::~Abbrev() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x12781C: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x1260E5: void std::_Destroy_aux<false>::__destroy<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x123A98: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122626: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev>&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122B1E: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c1f660 is 0 bytes after a block of size 64 alloc'd
==965== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x126589: __gnu_cxx::new_allocator<dwarf2reader::CompilationUnit::Abbrev>::allocate(unsigned long, void const*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x124674: std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_allocate(unsigned long) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122A42: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==
--965-- REDIR: 0x56b0d30 (__memmove_ssse3_back) redirected to 0x4c2cd20 (memcpy@GLIBC_2.2.5)
--965-- REDIR: 0x55f06e0 (__GI_memset) redirected to 0x4c2e080 (memset)
==965== Invalid free() / delete / delete[] / realloc()
==965== at 0x4C2A4BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x10F276: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (new_allocator.h:100)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c49a90 is 48 bytes inside a block of size 8,192 alloc'd
==965== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x126589: __gnu_cxx::new_allocator<dwarf2reader::CompilationUnit::Abbrev>::allocate(unsigned long, void const*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x124674: std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_allocate(unsigned long) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122A42: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==
==965== Invalid read of size 8
==965== at 0x10F26F: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (list.tcc:74)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c4bf80 is 0 bytes inside a block of size 24 free'd
==965== at 0x4C2A4BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x10F276: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (new_allocator.h:100)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==

I wonder if this is actually a STL issue

Changed in firefox (Ubuntu Quantal):
importance: Undecided → High
status: New → Triaged
milestone: none → quantal-alpha-1
Changed in thunderbird (Ubuntu Quantal):
importance: Undecided → High
status: New → Triaged
milestone: none → quantal-alpha-1
Changed in firefox (Ubuntu Quantal):
assignee: nobody → Chris Coulson (chrisccoulson)
Changed in thunderbird (Ubuntu Quantal):
assignee: nobody → Chris Coulson (chrisccoulson)
Changed in firefox (Ubuntu Quantal):
status: Triaged → In Progress
Changed in thunderbird (Ubuntu Quantal):
status: Triaged → In Progress
Changed in firefox (Ubuntu Quantal):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package firefox - 13.0~b4+build1-0ubuntu4

---------------
firefox (13.0~b4+build1-0ubuntu4) quantal; urgency=low

  * Shuffle the order of google-breakpad/src/common/dwarf/Makefile.in to fix a
    variable substitution issue, which was causing some objects to be built with
    the wrong compiler flags, resulting in dump_syms crashing (LP: #1002590)
    - add debian/patches/fix-makefile-substitution-bug.patch
  * Build with --disable-methodjit on armel in quantal
    - update debian/config/mozconfig.in
  * Turn crash reporter back on again
    - update debian/config/branch.mk
 -- Chris Coulson <email address hidden> Tue, 22 May 2012 17:38:38 +0100

Changed in firefox (Ubuntu Quantal):
status: Fix Committed → Fix Released
Changed in thunderbird (Ubuntu Quantal):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package thunderbird - 13.0~b2+build1-0ubuntu2

---------------
thunderbird (13.0~b2+build1-0ubuntu2) quantal; urgency=low

  * Shuffle the order of google-breakpad/src/common/dwarf/Makefile.in to fix a
    variable substitution issue, which was causing some objects to be built with
    the wrong compiler flags, resulting in dump_syms crashing (LP: #1002590)
    - add debian/patches/fix-makefile-substitution-bug.patch
  * Build with --disable-methodjit on armel in quantal
    - update debian/config/mozconfig.in
 -- Chris Coulson <email address hidden> Tue, 22 May 2012 17:50:56 +0100

Changed in thunderbird (Ubuntu Quantal):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers