monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Re: 0.37 dumps on my FreeBSD-6-stable amd64


From: Lapo Luchini
Subject: [Monotone-devel] Re: 0.37 dumps on my FreeBSD-6-stable amd64
Date: Mon, 29 Oct 2007 10:33:41 +0100
User-agent: Thunderbird 2.0.0.6 (X11/20070831)

Lapo Luchini wrote:
> Lapo Luchini wrote:
>> % mtn --version
>> monotone 0.37 (revisione base: c21eefc002b8f9c430e9f4cc16c4af7b852f54ec)
> 
> The release dumps (also on "mtn st" on pretty much every workspace I
> have) and a "manual compile" of the same revision does not! -_-

OK, got it: the ports are compiled with -O2, while my "manual compile"
was "-ggdb -O0".
I tried to manually compile with "-ggdbc -O2" and got the same signal 11
dump, plus a nice backtrace from gdb:

Program terminated with signal 11, Segmentation fault.
(gdb) bt
#0  roster_t::do_deep_copy_from (this=0x7fffffffdd10, address@hidden)
at shared_ptr.hpp:179
#1  0x000000000061771d in roster_t::operator= (this=0x7fffffffdd10,
address@hidden) at roster.cc:310
#2  0x0000000000555b4d in database::get_roster (this=0x0, address@hidden,
address@hidden, address@hidden) at shared_ptr.hpp:308
#3  0x0000000000609cd7 in (anonymous
namespace)::make_roster_for_nonmerge (address@hidden, address@hidden,
address@hidden,
    address@hidden, address@hidden,
address@hidden) at roster.cc:1923
#4  0x000000000062ab2c in make_roster_for_revision (address@hidden,
address@hidden, address@hidden,
    address@hidden, address@hidden,
address@hidden) at roster.cc:1983
#5  0x0000000000506e82 in workspace::get_current_roster_shape
(this=0x7fffffffe0f0, address@hidden, address@hidden) at
work.cc:179
#6  0x00000000004ccdbb in commands::cmd_status::exec (this=0x0,
address@hidden, address@hidden, address@hidden) at
cmd_ws_commit.cc:502
#7  0x000000000046156f in commands::process (address@hidden,
address@hidden, address@hidden) at commands.cc:772
#8  0x00000000006d93ee in cpp_main (argc=11683904, argv=0xac0718) at
monotone.cc:271
#9  0x00000000006d9d35 in main (argc=2, argv=0x7fffffffe688) at
unix/main.cc:150
(gdb) list shared_ptr.hpp:179
174     //  except that Borland C++ has a bug, and g++ with -Wsynth warns
175     #if defined(__BORLANDC__) || defined(__GNUC__)
176
177         shared_ptr & operator=(shared_ptr const & r) // never throws
178         {
179             px = r.px;
180             pn = r.pn; // shared_count::op= doesn't throw
181             return *this;
182         }
183
(gdb) list roster.cc:310
305     roster_t &
306     roster_t::operator=(roster_t const & other)
307     {
308       root_dir.reset();
309       nodes.clear();
310       do_deep_copy_from(other);
311       return *this;
312     }
313
314

...and I have no clue how a variable assignement could dump a program,
and only with -O2 with that regard.
Anyone has an idea? (Zack?)
Should I simply accept it as a fact and force a lower optimization level
in FreeBSD's amd64 monotone port?

    Lapo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]