No crashreporter in Firefox or Thunderbird

Bug #1002590 reported by Chris Coulson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
firefox (Ubuntu)
Fix Released
High
Chris Coulson
Quantal
Fix Released
High
Chris Coulson
thunderbird (Ubuntu)
Fix Released
High
Chris Coulson
Quantal
Fix Released
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
Revision history for this message
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.