* [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
@ 2016-03-14 0:23 Zac Medico
2016-03-14 10:26 ` Alexander Berntsen
0 siblings, 1 reply; 8+ messages in thread
From: Zac Medico @ 2016-03-14 0:23 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Zac Medico
For parallel-install, lock package slots of the current package and
blocked packages, in order to account for blocked packages being
removed or replaced concurrently. Acquire locks in predictable order,
preventing deadlocks with competitors that may be trying to acquire
overlapping locks.
X-Gentoo-Bug: 576888
X-Gentoo-Bug-url: https://bugs.gentoo.org/show_bug.cgi?id=576888
---
pym/_emerge/Scheduler.py | 9 +-
pym/portage/dbapi/vartree.py | 99 +++++++++++-
.../emerge/test_emerge_blocker_file_collision.py | 168 +++++++++++++++++++++
3 files changed, 267 insertions(+), 9 deletions(-)
create mode 100644 pym/portage/tests/emerge/test_emerge_blocker_file_collision.py
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
index 20a4e85..97b826a 100644
--- a/pym/_emerge/Scheduler.py
+++ b/pym/_emerge/Scheduler.py
@@ -586,18 +586,15 @@ class Scheduler(PollScheduler):
blocker_db = self._blocker_db[new_pkg.root]
- blocker_dblinks = []
+ blocked_pkgs = []
for blocking_pkg in blocker_db.findInstalledBlockers(new_pkg):
if new_pkg.slot_atom == blocking_pkg.slot_atom:
continue
if new_pkg.cpv == blocking_pkg.cpv:
continue
- blocker_dblinks.append(portage.dblink(
- blocking_pkg.category, blocking_pkg.pf, blocking_pkg.root,
- self.pkgsettings[blocking_pkg.root], treetype="vartree",
- vartree=self.trees[blocking_pkg.root]["vartree"]))
+ blocked_pkgs.append(blocking_pkg)
- return blocker_dblinks
+ return blocked_pkgs
def _generate_digests(self):
"""
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index e7effca..6209a86 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -168,6 +168,7 @@ class vardbapi(dbapi):
self._conf_mem_file = self._eroot + CONFIG_MEMORY_FILE
self._fs_lock_obj = None
self._fs_lock_count = 0
+ self._slot_locks = {}
if vartree is None:
vartree = portage.db[settings['EROOT']]['vartree']
@@ -284,6 +285,38 @@ class vardbapi(dbapi):
self._fs_lock_obj = None
self._fs_lock_count -= 1
+ def _slot_lock(self, slot_atom):
+ """
+ Acquire a slot lock (reentrant).
+
+ WARNING: The varbapi._slot_lock method is not safe to call
+ in the main process when that process is scheduling
+ install/uninstall tasks in parallel, since the locks would
+ be inherited by child processes. In order to avoid this sort
+ of problem, this method should be called in a subprocess
+ (typically spawned by the MergeProcess class).
+ """
+ lock, counter = self._slot_locks.get(slot_atom, (None, 0))
+ if lock is None:
+ lock_path = self.getpath("%s:%s" % (slot_atom.cp, slot_atom.slot))
+ ensure_dirs(os.path.dirname(lock_path))
+ lock = lockfile(lock_path, wantnewlockfile=True)
+ self._slot_locks[slot_atom] = (lock, counter + 1)
+
+ def _slot_unlock(self, slot_atom):
+ """
+ Release a slot lock (or decrementing recursion level).
+ """
+ lock, counter = self._slot_locks.get(slot_atom, (None, 0))
+ if lock is None:
+ raise AssertionError("not locked")
+ counter -= 1
+ if counter == 0:
+ unlockfile(lock)
+ del self._slot_locks[slot_atom]
+ else:
+ self._slot_locks[slot_atom] = (lock, counter)
+
def _bump_mtime(self, cpv):
"""
This is called before an after any modifications, so that consumers
@@ -1590,6 +1623,7 @@ class dblink(object):
# compliance with RESTRICT=preserve-libs.
self._preserve_libs = "preserve-libs" in mysettings.features
self._contents = ContentsCaseSensitivityManager(self)
+ self._slot_locks = []
def __hash__(self):
return hash(self._hash_key)
@@ -1623,6 +1657,58 @@ class dblink(object):
def unlockdb(self):
self.vartree.dbapi.unlock()
+ def _slot_locked(f):
+ """
+ A decorator function which, when parallel-install is enabled,
+ acquires and releases slot locks for the current package and
+ blocked packages. This is required in order to account for
+ interactions with blocked packages (involving resolution of
+ file collisions).
+ """
+ def wrapper(self, *args, **kwargs):
+ if "parallel-install" in self.settings.features:
+ self._acquire_slot_locks(
+ kwargs.get("mydbapi", self.vartree.dbapi))
+ try:
+ return f(self, *args, **kwargs)
+ finally:
+ self._release_slot_locks()
+ return wrapper
+
+ def _acquire_slot_locks(self, db):
+ """
+ Acquire slot locks for the current package and blocked packages.
+ """
+
+ slot_atoms = []
+
+ try:
+ slot = self.mycpv.slot
+ except AttributeError:
+ slot, = db.aux_get(self.mycpv, ["SLOT"])
+ slot = slot.partition("/")[0]
+
+ slot_atoms.append(portage.dep.Atom(
+ "%s:%s" % (self.mycpv.cp, slot)))
+
+ for blocker in self._blockers or []:
+ slot_atoms.append(blocker.slot_atom)
+
+ # Sort atoms so that locks are acquired in a predictable
+ # order, preventing deadlocks with competitors that may
+ # be trying to acquire overlapping locks.
+ slot_atoms.sort()
+ for slot_atom in slot_atoms:
+ self.vartree.dbapi._slot_lock(slot_atom)
+ self._slot_locks.append(slot_atom)
+
+ def _release_slot_locks(self):
+ """
+ Release all slot locks.
+ """
+ while self._slot_locks:
+ self.vartree.dbapi._slot_unlock(self._slot_locks.pop())
+
def getpath(self):
"return path to location of db information (for >>> informational display)"
return self.dbdir
@@ -1863,6 +1949,7 @@ class dblink(object):
plib_registry.unlock()
self.vartree.dbapi._fs_unlock()
+ @_slot_locked
def unmerge(self, pkgfiles=None, trimworld=None, cleanup=True,
ldpath_mtimes=None, others_in_slot=None, needed=None,
preserve_paths=None):
@@ -3929,9 +4016,14 @@ class dblink(object):
prepare_build_dirs(settings=self.settings, cleanup=cleanup)
# check for package collisions
- blockers = self._blockers
- if blockers is None:
- blockers = []
+ blockers = []
+ for blocker in self._blockers or []:
+ blocker = self.vartree.dbapi._dblink(blocker.cpv)
+ # It may have been unmerged before lock(s)
+ # were aquired.
+ if blocker.exists():
+ blockers.append(blocker)
+
collisions, dirs_ro, symlink_collisions, plib_collisions = \
self._collision_protect(srcroot, destroot,
others_in_slot + blockers, filelist, linklist)
@@ -4993,6 +5085,7 @@ class dblink(object):
else:
proc.wait()
+ @_slot_locked
def merge(self, mergeroot, inforoot, myroot=None, myebuild=None, cleanup=0,
mydbapi=None, prev_mtimes=None, counter=None):
"""
diff --git a/pym/portage/tests/emerge/test_emerge_blocker_file_collision.py b/pym/portage/tests/emerge/test_emerge_blocker_file_collision.py
new file mode 100644
index 0000000..10d09d8
--- /dev/null
+++ b/pym/portage/tests/emerge/test_emerge_blocker_file_collision.py
@@ -0,0 +1,168 @@
+# Copyright 2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+import subprocess
+import sys
+
+import portage
+from portage import os
+from portage import _unicode_decode
+from portage.const import PORTAGE_PYM_PATH, USER_CONFIG_PATH
+from portage.process import find_binary
+from portage.tests import TestCase
+from portage.tests.resolver.ResolverPlayground import ResolverPlayground
+from portage.util import ensure_dirs
+
+class BlockerFileCollisionEmergeTestCase(TestCase):
+
+ def testBlockerFileCollision(self):
+
+ debug = False
+
+ install_something = """
+S="${WORKDIR}"
+
+src_install() {
+ einfo "installing something..."
+ insinto /usr/lib
+ echo "${PN}" > "${T}/file-collision"
+ doins "${T}/file-collision"
+}
+"""
+
+ ebuilds = {
+ "dev-libs/A-1" : {
+ "EAPI": "6",
+ "MISC_CONTENT": install_something,
+ "RDEPEND": "!dev-libs/B",
+ },
+ "dev-libs/B-1" : {
+ "EAPI": "6",
+ "MISC_CONTENT": install_something,
+ "RDEPEND": "!dev-libs/A",
+ },
+ }
+
+ playground = ResolverPlayground(ebuilds=ebuilds, debug=debug)
+ settings = playground.settings
+ eprefix = settings["EPREFIX"]
+ eroot = settings["EROOT"]
+ var_cache_edb = os.path.join(eprefix, "var", "cache", "edb")
+ user_config_dir = os.path.join(eprefix, USER_CONFIG_PATH)
+
+ portage_python = portage._python_interpreter
+ emerge_cmd = (portage_python, "-b", "-Wd",
+ os.path.join(self.bindir, "emerge"))
+
+ file_collision = os.path.join(eroot, 'usr/lib/file-collision')
+
+ test_commands = (
+ emerge_cmd + ("--oneshot", "dev-libs/A",),
+ (lambda: portage.util.grablines(file_collision) == ["A\n"],),
+ emerge_cmd + ("--oneshot", "dev-libs/B",),
+ (lambda: portage.util.grablines(file_collision) == ["B\n"],),
+ emerge_cmd + ("--oneshot", "dev-libs/A",),
+ (lambda: portage.util.grablines(file_collision) == ["A\n"],),
+ ({"FEATURES":"parallel-install"},) + emerge_cmd + ("--oneshot", "dev-libs/B",),
+ (lambda: portage.util.grablines(file_collision) == ["B\n"],),
+ ({"FEATURES":"parallel-install"},) + emerge_cmd + ("-Cq", "dev-libs/B",),
+ (lambda: not os.path.exists(file_collision),),
+ )
+
+ fake_bin = os.path.join(eprefix, "bin")
+ portage_tmpdir = os.path.join(eprefix, "var", "tmp", "portage")
+ profile_path = settings.profile_path
+
+ path = os.environ.get("PATH")
+ if path is not None and not path.strip():
+ path = None
+ if path is None:
+ path = ""
+ else:
+ path = ":" + path
+ path = fake_bin + path
+
+ pythonpath = os.environ.get("PYTHONPATH")
+ if pythonpath is not None and not pythonpath.strip():
+ pythonpath = None
+ if pythonpath is not None and \
+ pythonpath.split(":")[0] == PORTAGE_PYM_PATH:
+ pass
+ else:
+ if pythonpath is None:
+ pythonpath = ""
+ else:
+ pythonpath = ":" + pythonpath
+ pythonpath = PORTAGE_PYM_PATH + pythonpath
+
+ env = {
+ "PORTAGE_OVERRIDE_EPREFIX" : eprefix,
+ "PATH" : path,
+ "PORTAGE_PYTHON" : portage_python,
+ "PORTAGE_REPOSITORIES" : settings.repositories.config_string(),
+ "PYTHONDONTWRITEBYTECODE" : os.environ.get("PYTHONDONTWRITEBYTECODE", ""),
+ "PYTHONPATH" : pythonpath,
+ }
+
+ if "__PORTAGE_TEST_HARDLINK_LOCKS" in os.environ:
+ env["__PORTAGE_TEST_HARDLINK_LOCKS"] = \
+ os.environ["__PORTAGE_TEST_HARDLINK_LOCKS"]
+
+ dirs = [playground.distdir, fake_bin, portage_tmpdir,
+ user_config_dir, var_cache_edb]
+ true_symlinks = ["chown", "chgrp"]
+ true_binary = find_binary("true")
+ self.assertEqual(true_binary is None, False,
+ "true command not found")
+ try:
+ for d in dirs:
+ ensure_dirs(d)
+ for x in true_symlinks:
+ os.symlink(true_binary, os.path.join(fake_bin, x))
+ with open(os.path.join(var_cache_edb, "counter"), 'wb') as f:
+ f.write(b"100")
+ # non-empty system set keeps --depclean quiet
+ with open(os.path.join(profile_path, "packages"), 'w') as f:
+ f.write("*dev-libs/token-system-pkg")
+
+ if debug:
+ # The subprocess inherits both stdout and stderr, for
+ # debugging purposes.
+ stdout = None
+ else:
+ # The subprocess inherits stderr so that any warnings
+ # triggered by python -Wd will be visible.
+ stdout = subprocess.PIPE
+
+ for i, args in enumerate(test_commands):
+
+ if hasattr(args[0], '__call__'):
+ self.assertTrue(args[0](),
+ "callable at index %s failed" % (i,))
+ continue
+
+ if isinstance(args[0], dict):
+ local_env = env.copy()
+ local_env.update(args[0])
+ args = args[1:]
+ else:
+ local_env = env
+
+ proc = subprocess.Popen(args,
+ env=local_env, stdout=stdout)
+
+ if debug:
+ proc.wait()
+ else:
+ output = proc.stdout.readlines()
+ proc.wait()
+ proc.stdout.close()
+ if proc.returncode != os.EX_OK:
+ for line in output:
+ sys.stderr.write(_unicode_decode(line))
+
+ self.assertEqual(os.EX_OK, proc.returncode,
+ "emerge failed with args %s" % (args,))
+ finally:
+ playground.debug = False
+ playground.cleanup()
--
2.7.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-03-14 0:23 [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888) Zac Medico
@ 2016-03-14 10:26 ` Alexander Berntsen
2016-03-14 16:45 ` Zac Medico
2016-03-14 18:36 ` Brian Dolbec
0 siblings, 2 replies; 8+ messages in thread
From: Alexander Berntsen @ 2016-03-14 10:26 UTC (permalink / raw
To: gentoo-portage-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
I can't say much more than "ACK, probably makes sense" really. But
please test this *a lot* before merging it.
Regarding the merging of this patch, and th egencache patch that has
already been released: I thought we agreed that .29 should be *only*
the repoman merger, and then bug fixes go into a .30 where we try to
get a stable release with the new repoman. Why was egencache merged
anyway? Should we not merge repoman to stable ASAP before doing
anything else? That would make .29 easier.
- --
Alexander
bernalex@gentoo.org
https://secure.plaimi.net/~alexander
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCgAGBQJW5pHOAAoJENQqWdRUGk8BE0QQAMep2RpCTpTaW8N3D0iwxmY4
nOJPtvN+BZzWWFW+j0CIkwn3uinuN/NuxOOvnW7ZMwATHsmToPpt1VCsfXcelzTv
atx/1dPkdWCeeEDFEYpECInV+Lj38Sf1tlDIaWRmmDuHUkf71LojUlpvptFgEW7M
TCs7bnxyqQXxIDl+QGxWvFC3vWG14c59mMG2bPV+gKYpf010tc4tGRKPxKtT8Pu/
0JD/cq0KBdFqCh/lPZ6XruayzTQoEd3hYRn/3MPKdT/EyKhtwfGFs785gMDjNSpc
BPWCYH18Ff/s20Rldn2120QiDzK45D/ty/y4tS+rZoIcxzRycr+ZoxwrvNFX/mC4
PZEUw32Cw/vilJv1d0qAuk5oxXYMGVCzmhGSwbv/pap4ECjgjHaMhAoGHRvk0086
q2uJTq6hjsmpxSUhRkEvSqbdaTGLyGI5HZLjaWJjg7mbj6TAcbecJhOITzYzVIat
ILjfAV3o/kCNSDptLa9Zxf46jdjvZWc+22+l3R8Ci8S5y9WT/x38Hj2CbLSD9Lqe
jAQvamt5oucQ7rZ7L3ypQPURxrjNY/AhivYzroYlFYoAsp6J7Ni0FOMMUvh0mBVv
n49HUz7Hh/FEFlmYCA5vyBArSlB+VBzGdMbyc5xPjsKbwGHq24OgJRqWLFC84DiY
jnXERLU0GnopPhth/xhs
=wGXd
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-03-14 10:26 ` Alexander Berntsen
@ 2016-03-14 16:45 ` Zac Medico
2016-03-14 18:36 ` Brian Dolbec
1 sibling, 0 replies; 8+ messages in thread
From: Zac Medico @ 2016-03-14 16:45 UTC (permalink / raw
To: gentoo-portage-dev
On 03/14/2016 03:26 AM, Alexander Berntsen wrote:
> I can't say much more than "ACK, probably makes sense" really. But
> please test this *a lot* before merging it.
Thanks. I'll test it a lot.
> Regarding the merging of this patch, and th egencache patch that has
> already been released: I thought we agreed that .29 should be *only*
> the repoman merger, and then bug fixes go into a .30 where we try to
> get a stable release with the new repoman. Why was egencache merged
> anyway?
Sorry, I didn't really comprehend the necessity of excluding everything
besides the new repoman changes. The egencache patch has no overlap with
repoman the branch, so I didn't see any harm. I'll hold of on merging
anything more.
> Should we not merge repoman to stable ASAP before doing
> anything else? That would make .29 easier.
That works for me.
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-03-14 10:26 ` Alexander Berntsen
2016-03-14 16:45 ` Zac Medico
@ 2016-03-14 18:36 ` Brian Dolbec
2016-05-16 19:20 ` Zac Medico
1 sibling, 1 reply; 8+ messages in thread
From: Brian Dolbec @ 2016-03-14 18:36 UTC (permalink / raw
To: gentoo-portage-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On Mon, 14 Mar 2016 11:26:23 +0100
Alexander Berntsen <bernalex@gentoo.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> I can't say much more than "ACK, probably makes sense" really. But
> please test this *a lot* before merging it.
>
I ack as well, the code looks good. I don't know enough about to be
able to critique it in detail ;). But it does look decent and the idea
of what it is doing sounds good.
> Regarding the merging of this patch, and th egencache patch that has
> already been released: I thought we agreed that .29 should be *only*
> the repoman merger, and then bug fixes go into a .30 where we try to
> get a stable release with the new repoman. Why was egencache merged
> anyway? Should we not merge repoman to stable ASAP before doing
> anything else? That would make .29 easier.
> - --
> Alexander
> bernalex@gentoo.org
> https://secure.plaimi.net/~alexander
With a .29 release coming out very soon after the the .28, the .28
would not get much more testing for the stabilization. If only the
repoman code was changed, it makes it easier to know that any bugs
submitted for .29 that re not repoman specific, apply to .28 as well.
But more that if no non-repoman bugs were filed, then that clears .28
for stabilization.
- --
Brian Dolbec <dolsen>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.1
iQJ8BAEBCgBmBQJW5wSjXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNUQ3Qzc0RTA4MUNDNzBEQjRBNEFBRjVG
QkJEMDg3Mjc1ODIwRUQ4AAoJEPu9CHJ1gg7YF9IP/0s3s3h1eFWrr6bLfNOdDGvU
nfpnG97ulawslssJ4tL/oWFGmGaSqknUBl2rha65IhgeaswMGfmX1nHvyBqyf823
FgJMi+KZcB0kM3x63lEtB9K719tO9wF17JckmuIBW/4NLYAN/iHd7TKDHWyY1Isi
jStFNciRUY+h0IegnMqaNSfjPZAd0cjtxZlTO7tqbWQ9LH5ld90bZ84PgPp03poT
0/ZaYX4szi5e8FKhm7CThyZhYrYmcX0OpEDuSuLCUAwjWTYbhePXNOvlr0lC98ZG
itafmalGoKrpbsAsqN13BDuf0a053NKAePjveI4Gt5RYK7UiFs6G7sdCe14zq0SL
bePKF6aMc+PUyWaaF5vFywuDokjVfc6fyf/4EEpH90VRiIvTZlyMcIhClBgRsk57
sslUFm3lMLR1gW4QPxswn5ALtFt16+X7s/Zu/XIsZMYU0XJ1BM8N1/twHBx79O0G
RVRiRQPU1B+YhT9psCab4RZzhY9JqQZRdSV7mrBCBLAlKMF15PH7d2OSlGVweKSL
AjKa3ufGwy+KyCGqNQjYeYYFhW/F7NxfjASLg+/j4mCx1+OrCGzvXWuL/xMRszCP
5+KpEtdx+hQe4J0OufJypPYwVXpikpfoyW7oa44JyChuW/kzz1ESMr2e3vn07EJX
i3hjWpmUlCxgdWsWEKn8
=9IBu
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-03-14 18:36 ` Brian Dolbec
@ 2016-05-16 19:20 ` Zac Medico
2016-05-17 13:48 ` Brian Dolbec
2016-05-18 6:44 ` Alexander Berntsen
0 siblings, 2 replies; 8+ messages in thread
From: Zac Medico @ 2016-05-16 19:20 UTC (permalink / raw
To: gentoo-portage-dev
On 03/14/2016 11:36 AM, Brian Dolbec wrote:
> On Mon, 14 Mar 2016 11:26:23 +0100
> Alexander Berntsen <bernalex@gentoo.org> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA512
>
>> I can't say much more than "ACK, probably makes sense" really. But
>> please test this *a lot* before merging it.
>
>
> I ack as well, the code looks good. I don't know enough about to be
> able to critique it in detail ;). But it does look decent and the idea
> of what it is doing sounds good.
>
>
>> Regarding the merging of this patch, and th egencache patch that has
>> already been released: I thought we agreed that .29 should be *only*
>> the repoman merger, and then bug fixes go into a .30 where we try to
>> get a stable release with the new repoman. Why was egencache merged
>> anyway? Should we not merge repoman to stable ASAP before doing
>> anything else? That would make .29 easier.
>> - --
>> Alexander
>> bernalex@gentoo.org
>> https://secure.plaimi.net/~alexander
>
> With a .29 release coming out very soon after the the .28, the .28
> would not get much more testing for the stabilization. If only the
> repoman code was changed, it makes it easier to know that any bugs
> submitted for .29 that re not repoman specific, apply to .28 as well.
> But more that if no non-repoman bugs were filed, then that clears .28
> for stabilization.
Can we merge this now? Feedback from the user who reported the issue is
very positive:
https://bugs.gentoo.org/show_bug.cgi?id=576786#c7
--
Thanks,
Zac
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-05-16 19:20 ` Zac Medico
@ 2016-05-17 13:48 ` Brian Dolbec
2016-05-18 6:45 ` Alexander Berntsen
2016-05-18 6:44 ` Alexander Berntsen
1 sibling, 1 reply; 8+ messages in thread
From: Brian Dolbec @ 2016-05-17 13:48 UTC (permalink / raw
To: gentoo-portage-dev
On Mon, 16 May 2016 12:20:00 -0700
Zac Medico <zmedico@gentoo.org> wrote:
> On 03/14/2016 11:36 AM, Brian Dolbec wrote:
> > On Mon, 14 Mar 2016 11:26:23 +0100
> > Alexander Berntsen <bernalex@gentoo.org> wrote:
> >
> >> -----BEGIN PGP SIGNED MESSAGE-----
> >> Hash: SHA512
> >
> >> I can't say much more than "ACK, probably makes sense" really. But
> >> please test this *a lot* before merging it.
> >
> >
> > I ack as well, the code looks good. I don't know enough about to be
> > able to critique it in detail ;). But it does look decent and the
> > idea of what it is doing sounds good.
> >
> >
> >> Regarding the merging of this patch, and th egencache patch that
> >> has already been released: I thought we agreed that .29 should be
> >> *only* the repoman merger, and then bug fixes go into a .30 where
> >> we try to get a stable release with the new repoman. Why was
> >> egencache merged anyway? Should we not merge repoman to stable
> >> ASAP before doing anything else? That would make .29 easier.
> >> - --
> >> Alexander
> >> bernalex@gentoo.org
> >> https://secure.plaimi.net/~alexander
> >
> > With a .29 release coming out very soon after the the .28, the .28
> > would not get much more testing for the stabilization. If only the
> > repoman code was changed, it makes it easier to know that any bugs
> > submitted for .29 that re not repoman specific, apply to .28 as
> > well. But more that if no non-repoman bugs were filed, then that
> > clears .28 for stabilization.
>
> Can we merge this now? Feedback from the user who reported the issue
> is very positive:
>
> https://bugs.gentoo.org/show_bug.cgi?id=576786#c7
Alexander, with 2.3.0_rc1-r1 released, I think we can re-open portage
code for more patches before the official 2.3.0 release. We now know
the split install is working, it only had the one portage bug from the
split.
--
Brian Dolbec <dolsen>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-05-17 13:48 ` Brian Dolbec
@ 2016-05-18 6:45 ` Alexander Berntsen
0 siblings, 0 replies; 8+ messages in thread
From: Alexander Berntsen @ 2016-05-18 6:45 UTC (permalink / raw
To: gentoo-portage-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 17/05/16 15:48, Brian Dolbec wrote:
> Alexander, with 2.3.0_rc1-r1 released, I think we can re-open
> portage code for more patches before the official 2.3.0 release.
> We now know the split install is working, it only had the one
> portage bug from the split.
Great! Let's resume normal working conditions then.
- --
Alexander
bernalex@gentoo.org
https://secure.plaimi.net/~alexander
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCgAGBQJXPA97AAoJENQqWdRUGk8BMYoQALmth11ACOgrvJgXLxWPkjGS
3aUIEV8D7vSdVDfkUB2CdN763ocmBC3xSkQXKfYx0DtnFmQcIJCY+tkvpaVLN6m3
VX53pCYVwVeLOZhmRzpgMXN7GdvOn5ldYMvorjKt2eU8WUrg3lboBLregvk4So0W
9OLpgEdFX9KaNaMFfU0TXzi3DopmOiS9juHiMGwZBd9D8mdZlgi94hK0pBRvqnmu
UwesoquKoItEtLikjnLcvnz14RdQ1NtBifDeoqdOSV2QODxks0LBt5sKHFLDor9Q
l3fA6FxMm62d586pd5Lw3UbhSe8/FOZSSBUpHCUcwz6jH5AjC7RQqsKEapqraqUr
eWQdz4G+qY5+0BVrd6TaPZ34m66A/7eTpj5z/np+hjC7vBhxXTSsty7B9epSukiV
YGEg19pW6xV27+o1IVUXzAgLR6iKm9OGDtI0X2cr1g5MBUToKxPjHkgzITmWifIJ
65+K3tTx0W/iEIMzqd/PqPu9pSavkGSRIko5XUPrTe5CqK4QrZ4tUPWgpZ9bKnA0
oHkigK6d2fWNMN1idlvzaOmkQuq1HkrwM/zKugCI4tUjgFKb5Q0/s5noHOl+ZRRK
prdnObItii0Yz9GgKmlSEt5W58VQ4N+n0WfpHOsT64Tl3MLc9WuYTL/urNkEPmXu
OBqZriulxLJjf9MG/3LX
=l7W4
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888)
2016-05-16 19:20 ` Zac Medico
2016-05-17 13:48 ` Brian Dolbec
@ 2016-05-18 6:44 ` Alexander Berntsen
1 sibling, 0 replies; 8+ messages in thread
From: Alexander Berntsen @ 2016-05-18 6:44 UTC (permalink / raw
To: gentoo-portage-dev
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 16/05/16 21:20, Zac Medico wrote:
> Can we merge this now?
Yes!
- --
Alexander
bernalex@gentoo.org
https://secure.plaimi.net/~alexander
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCgAGBQJXPA9VAAoJENQqWdRUGk8Bn2gP/0/HFsTovWmfkoletX2+UzpU
45BZi2ae9O78TqAX9hMexd5zCSpiQydpIWi4ZVfYHeNZSTMNwixEutPWYCz1XjzX
VkMDKL9PGweWqMBL/oShid3FQ2NsUtUdI/pP2aM2jFhb3m+cmcT1m/zTqgArYh0l
TCMhKM5ky/GEQGCX6NMB9fFjdQdt/bofefeBVFChEl/wWDP7AdpQ5Fc+Kq7Wo+3K
XVwKeQ1J/6J0WqBtlvvYhGNkVf0QKNh20ki4JUSpUfvAEfXXgtEV1vO8A9hcK9X9
zJrX39nEbr1oLYbERSipW6XfhdwRlWee6X8CZOnSYYWjmdvG1XVFtLHCFvOV9wQs
tYa/E+f2VkpgOct0KTR9hnnDg/+W+wEl+Edy9UxH1IWNHOiaNzsklVIxZTBzHded
ndv95VOw4akcfB49OR2Er6R7pQ8zhcrq+yoxkIfrPRww7yTghB2/8uZ03NSYFkDl
JkWMs8Y7yXY/PeSlZhwCHliqDuHIgXJOvnOXg3hH1wh+8MlVYmt4w+IFYSk5u9HY
3CDUfev6qsyeSuzLhZxCCSNLW5qejeCp2oAidThujDgHKA02ObzvXkPJeHaWxA22
MunTS9SqpZUoJP8MHxjDH5PUK1ID0EOhFziTJRqKripn+HZqpOoAXQxikF5q/0jl
1Xuydn+5jtveN1+ExOPc
=Ma++
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-05-18 6:45 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-14 0:23 [gentoo-portage-dev] [PATCH] dblink: add locks for parallel-install with blockers (bug 576888) Zac Medico
2016-03-14 10:26 ` Alexander Berntsen
2016-03-14 16:45 ` Zac Medico
2016-03-14 18:36 ` Brian Dolbec
2016-05-16 19:20 ` Zac Medico
2016-05-17 13:48 ` Brian Dolbec
2016-05-18 6:45 ` Alexander Berntsen
2016-05-18 6:44 ` Alexander Berntsen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox