Failure to fetch to old format via Smart Server
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Unassigned |
Bug Description
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I'm trying to write a fairly simple test case to expose some issues with
our code and ghost handling.
Specifically, my recent gc-stacking patch broke the ability to push
bzr.dev via the smart server.
So I tried to add this test:
=== modified file 'bzrlib/
- --- bzrlib/
+++ bzrlib/
@@ -300,6 +300,48 @@
+ def make_simple_
+ builder = self.make_
+ builder.
+ builder.
+ ('add', ('', 'root-id', 'directory', None)),
+ ('add', ('file', 'file-id', 'file', 'content\n'))])
+ builder.
+ builder.
+ source_b = builder.
+ source_
+ self.addCleanup
+ return source_b
+
+ def test_fetch_
+ source_b = self.make_
+ target = self.make_
+ target.lock_write()
+ self.addCleanup
+ target.
+
+ def test_fetch_
+ trans = self.make_
+ source_b = self.make_
+ target = self.make_
+ # Re-open the repository over the smart protocol
+ target = repository.
+ target.lock_write()
+ self.addCleanup
+ target.
However, when I go to run that I get:
ERROR: test_fetch_
(bzrlib.
ory)
vvvv[log from
bzrlib.
ith_ghost(
...
>
>
> -------
> Traceback (most recent call last):
> File "C:\Users\
> test_fetch_
> target.
> File "C:\Users\
> find_ghosts=
> File "C:\Users\
> result = unbound(self, *args, **kwargs)
> File "C:\Users\
> pb=pb, find_ghosts=
> File "C:\Users\
> self.__fetch()
> File "C:\Users\
> self._fetch_
> File "C:\Users\
> ch
> self.sink.
> File "C:\Users\
> self.target_
> File "C:\Users\
> self._ensure_real()
> File "C:\Users\
> self.bzrdir.
> File "C:\Users\
> self._real_
> File "C:\Users\
> result = self.control_
> File "C:\Users\
> token_from_lock = self._lock.
> File "C:\Users\
> raise errors.
> TokenLockingNot
> not support token specifying a token when locking.
(sorry about the ugly formatting)
Anyway, it would seem that Smart Server + fetch + Knit formats is
broken, and we never knew it, because we never had a per-format test of
fetching and the smart server.
I don't feel like fixing this for my current patch, so I'll probably
just blacklist specific versions.
I'll note that it looks like an even simpler failing test would be:
def test_can_
trans = self.make_
self.
# Open repo via smart server
repo = repository.
repo.lock_write()
self.
repo.
Any thoughts?
John
=:->
affects bzr
status confirmed
importance high
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://
iEYEARECAAYFAko
rY0AoM+
=9KVO
-----END PGP SIGNATURE-----
tags: | added: hpss |
tags: | added: knits |
Changed in bzr: | |
importance: | High → Medium |
tags: | added: check-for-breezy |