ERROR: Tree transform is malformed [('versioning no contents', 'new-3')]

Bug #880701 reported by Thibaut DIRLIK (Logica)
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
High
Vincent Ladeuil
2.4
Fix Released
High
Vincent Ladeuil

Bug Description

Hi,

Running this command after a merge which generated 51 conflicts :

bzr resolve --all --take-other

I got :

bzr: ERROR: Tree transform is malformed [('versioning no contents', 'new-3')]

Here is the .bzr.log traceback :

lun. 2011-10-24 09:53:11 +0200
0.050 bazaar version: 2.4.1
0.050 bzr arguments: [u'resolve', u'--all', u'--take-other']
0.066 looking for plugins in /home/thibaut/.bazaar/plugins
0.067 looking for plugins in /usr/lib/python2.7/dist-packages/bzrlib/plugins
0.091 encoding stdout as sys.stdout encoding 'UTF-8'
0.109 opening working tree '/home/thibaut/OpenERP 6/Logica/addons'
0.356 Transferred: 0kB (0.0kB/s r:0kB w:0kB)
0.358 Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 946, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 1150, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 699, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 721, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 162, in run
    before, after = resolve(tree, file_list, action=action)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 195, in resolve
    conflict._do(action, tree)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 425, in _do
    meth(tree)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 620, in action_take_other
    self._resolve_with_cleanups(tree, 'THIS')
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 454, in _resolve_with_cleanups
    op.run_simple(tt, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 614, in _resolve
    tt.apply()
  File "/usr/lib/python2.7/dist-packages/bzrlib/transform.py", line 1730, in apply
    self._check_malformed()
  File "/usr/lib/python2.7/dist-packages/bzrlib/transform.py", line 555, in _check_malformed
    raise MalformedTransform(conflicts=conflicts)
MalformedTransform: Tree transform is malformed [('duplicate', 'new-2', 'new-204', u'crm.py')]

0.358 return code 3

Note : All the conflicts are not fusion conflicts. I mean, there is no "<<<" in the file, I don't know why they are marked as conflicts. We never edited any of the files marked as in conflicts.

Related branches

Revision history for this message
Thibaut DIRLIK (Logica) (thibaut-dirlik) wrote :

I join a file containing the result of `bzr st`.

Revision history for this message
Vincent Ladeuil (vila) wrote :

Malformed transform is *always* a bug.

At the very least we should output a traceback (i.e. MalformedTransform should inherit from InternalBzrError not from BzrError).

Changed in bzr:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Thibaut DIRLIK (Logica) (thibaut-dirlik) wrote :

Here is the traceback with resolve on only on file :

lun. 2011-10-24 10:32:00 +0200
0.042 bazaar version: 2.4.1
0.042 bzr arguments: [u'resolve', u'crm/test/test_crm_meeting.yml', u'--take-other']
0.058 looking for plugins in /home/thibaut/.bazaar/plugins
0.059 looking for plugins in /usr/lib/python2.7/dist-packages/bzrlib/plugins
0.082 encoding stdout as sys.stdout encoding 'UTF-8'
0.102 opening working tree '/home/thibaut/OpenERP 6/Logica/addons'
0.159 Transferred: 0kB (0.0kB/s r:0kB w:0kB)
0.160 Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 946, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 1150, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 699, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 721, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 162, in run
    before, after = resolve(tree, file_list, action=action)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 195, in resolve
    conflict._do(action, tree)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 425, in _do
    meth(tree)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 620, in action_take_other
    self._resolve_with_cleanups(tree, 'THIS')
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 454, in _resolve_with_cleanups
    op.run_simple(tt, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/conflicts.py", line 614, in _resolve
    tt.apply()
  File "/usr/lib/python2.7/dist-packages/bzrlib/transform.py", line 1730, in apply
    self._check_malformed()
  File "/usr/lib/python2.7/dist-packages/bzrlib/transform.py", line 555, in _check_malformed
    raise MalformedTransform(conflicts=conflicts)
MalformedTransform: Tree transform is malformed [('duplicate', 'new-2', 'new-54', u'test_crm_meeting.yml')]

0.160 return code 3

Revision history for this message
Thibaut DIRLIK (Logica) (thibaut-dirlik) wrote :

Here is the result of 'bzr st --show-ids'.

Revision history for this message
Thibaut DIRLIK (Logica) (thibaut-dirlik) wrote :

I uploaded the branch here : https://code.launchpad.net/~thibaut-dirlik/+junk/bzr-bug-880701

To reproduce the bug, get the rev 4920, and do a :

bzr merge lp:openobject-addons

Revision history for this message
Vincent Ladeuil (vila) wrote :

The root issue here is that we create content conflicts instead of duplicate entry conflicts.

The fallout demonstrated by this bug is that resolve then fail to resolve the conflict.

I have a failing test reproducing the wrong production of the conflict at merge time.

Changed in bzr:
assignee: nobody → Vincent Ladeuil (vila)
status: Confirmed → In Progress
Vincent Ladeuil (vila)
Changed in bzr:
milestone: none → 2.5b3
Vincent Ladeuil (vila)
Changed in bzr:
status: In Progress → 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.