bugmonotone - Bugs: bug #23349, ...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #23349: I(right_uncommon_ancestors.find(right_rid) != right_uncommon_ancestors.end())' violated

Submitter:  Ludovic Brenta <lbrenta>
Submitted:  Sat 24 May 2008 08:45:19 PM UTC
   
 
Category:  merge algorithm Severity:  3 - Normal
Item Group:  crash Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed
mtn version --full: 

monotone 0.38 (base revision: c1757f6cde49bddd77c82580059105bc470145b2)
Running on          : Linux 2.6.24-1-amd64 #1 SMP Thu Mar 27 16:52:38 UTC 2008 x86_64
C++ compiler        : GNU C++ version 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)
C++ standard library: GNU libstdc++ version 20071123
Boost version       : 1_34_1
Changes since base revision:
format_version "1"

new_manifest [085f4d04a0bbbc06b44cf6194ca9c2079f924cdd]

old_revision [c1757f6cde49bddd77c82580059105bc470145b2]

  Generated from data cached in the distribution;
  further changes may have been made.

Sun 09 May 2010 10:37:50 AM UTC, comment #2: 

I tried to reproduce the problem with Debian monotone 0.45-2 and the problem is no longer there.  Closing the bug as fixed. Output of mtn version --full:

Running on          : Linux 2.6.32-3-amd64 #1 SMP Wed Feb 24 18:07:42 UTC 2010 x86_64
C++ compiler        : GNU C++ version 4.3.4
C++ standard library: GNU libstdc++ version 20091102
Boost version       : 1_40
SQLite version      : 3.6.23.1 (compiled against 3.6.20)
Lua version         : Lua 5.1
PCRE version        : 7.8 2008-09-05 (compiled against 7.8)
Botan version       : 1.8.8 (compiled against 1.8.6)
Changes since base revision:
format_version "1"

new_manifest [a4583b2d0cae8cb6889b8701543aeb4efc7e1554]

old_revision [a19f8b2017c81c3c6c8b2bb3247f865f6ed4e5a9]

  Generated from data cached in the distribution;
  further changes may have been made.

Ludovic Brenta <lbrenta>
Group Member
  Spam posted by anonymous
Sat 24 May 2008 08:45:19 PM UTC, original submission:  

I'm having a peculiar problem merging between two branches (org.debian.gcc-4.3 and org.debian.gnat-4.3) in the Ada-France database.

$ mtn co -d [omitted] -b org.debian.gcc-4.3
$ cd org.debian.gcc-4.3
$ cat _MTN/revision
format_version "1"

new_manifest [0000000000000000000000000000000000000001]

old_revision [b6268e44129cd7b83c5255096e6a41e02554dcba]
$ mtn propagate org.debian.gnat-4.3 org.debian.gcc-4.3
mtn: propagating org.debian.gnat-4.3 -> org.debian.gcc-4.3
mtn: [source] fdff43d734541e14cd0757c74aaf591bb2abd2e7
mtn: [target] b6268e44129cd7b83c5255096e6a41e02554dcba
mtn: branch 'org.debian.gcc-4.3' is up-to-date with respect to branch 'org.debian.gnat-4.3'
mtn: no action taken

This is untrue, as can be seen by examining the revision graph, which is (with revision ids abbreviated):

fdff 15b3
  | \ |
 ... 2f41
  |   |
 ... ...
  |   |
cf47 921e
  | / |
758a ca59
  |   |
 ... ...
  |   |
32c4 b01d
  | / |
76e4 989b
  |   |
 ... ...
  |   |
9142 a7d4
  | / |
03f5 b5ec
  |   |
  |  ...
  |   |
6b42 b626

The left branch is org.debian.gnat-4.3; the right branch is org.debian.gcc-4.3.  Left was merged several times into Right; the last time this occurred was when h:Left was the offending revision, fdff.  Then, Right was merged 3 times into Left with no problems.  Now the merge algorithm complains but is incorrect, as 6b42 is not an ancestor of b626.

explicit_merge complains in the same way as propagate:

$ mtn explicit_merge h:org.debian.gnat-4.3 h:org.debian.gcc-4.3 org.debian.gnat-4.3
mtn: expanding selection 'h:org.debian.gnat-4.3'
mtn: expanded to 'fdff43d734541e14cd0757c74aaf591bb2abd2e7'
mtn: expanding selection 'h:org.debian.gcc-4.3'
mtn: expanded to 'b6268e44129cd7b83c5255096e6a41e02554dcba'
mtn: misuse: fdff43d734541e14cd0757c74aaf591bb2abd2e7 is already an ancestor of b6268e44129cd7b83c5255096e6a41e02554dcba

But now things become interesting:

$ mtn merge_into_workspace h:org.debian.gnat-4.3
mtn: expanding selection 'h:org.debian.gnat-4.3'
mtn: expanded to 'fdff43d734541e14cd0757c74aaf591bb2abd2e7'
mtn: fatal: std::logic_error: roster.cc:1810: invariant 'I(right_uncommon_ancestors.find(right_rid) != right_uncommon_ancestors.end())' violated
mtn: this is almost certainly a bug in monotone.
mtn: please send this error message, the output of 'mtn version --full',
mtn: and a description of what you were doing to monotone-devel@nongnu.org.
mtn: wrote debugging log to /home/lbrenta/src/tmp/org.debian.gcc-4.3/_MTN/debug
mtn: if reporting a bug, please include this file


The database is available at www.ada-france.org if anyone is interested.

Ludovic Brenta <lbrenta>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attached Files
file #15725:  debug added by lbrenta (83KiB - application/octet-stream - _MTN/debug produced by the invariant violation)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by lbrenta (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-05-09 lbrenta StatusNone Fixed
        Open/ClosedOpen Closed
    2008-05-24 lbrenta Attached File- Added debug, #15725

    Back to the top

    Powered by Savane 3.13-bb6a.
    Corresponding source code