Re: Freeze break request: fixing race condition breakage for pkgdb_sync

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

 



On Fri, Feb 27, 2015 at 03:54:22AM -0500, Patrick Uiterwijk wrote:
> Any +1s?
> Explanation in the commit message.
> 
> Note: we should work on improving the script in general, but that is not something we should
> consider pushing during freeze, so this is a patch that hopefully gets us through the freeze.
> 
> commit 2d98b6748663747698cd6a0bfc23d05bbc371a01
> Author: Patrick Uiterwijk <puiterwijk@xxxxxxxxxx>
> Date:   Fri Feb 27 08:44:57 2015 +0000
> 
>     Make pkgdb_sync more resilient by always calling SETUP_PACKAGE if master does not exist
>     
>     This should make it recover in case there are any repos in a weird state (aka, no master branch).
>     This could for example happen if the package was created in pkgdb after pkgdb_sync ran, but before
>     genacls.pkgdb runs, because then gitolite will see it as a new repo, and create a totally blank repo.
>     Especially since pkgdb_sync will abort after the first error, it would then leave all later created
>     repos broken as well.
>     
>     Calling setup_git_package in a repo without master branch has no ill effect:
>     - Running git init on a pre-initialized repo is a no-op (or at least doesn't destroy current git data)
>     - Since it doesn't have master, it didn't run the script, so adding the first commit and hooks etc are
>       what we want the script to do
>     
>     Signed-off-by: Patrick Uiterwijk <puiterwijk@xxxxxxxxxx>
> 
> diff --git a/roles/distgit/templates/pkgdb_sync_git_branches.py b/roles/distgit/templates/pkgdb_sync_git_branches.py
> index ced139b..8643165 100644
> --- a/roles/distgit/templates/pkgdb_sync_git_branches.py
> +++ b/roles/distgit/templates/pkgdb_sync_git_branches.py
> @@ -187,7 +187,7 @@ def branch_package(pkgname, branches):
>  
>      # Create the devel branch if necessary
>      if not os.path.exists(
> -            os.path.join(GIT_FOLDER, '%s.git' % pkgname)):
> +            os.path.join(GIT_FOLDER, '%s.git/refs/heads/master' % pkgname)):
>          _invoke(SETUP_PACKAGE, [pkgname])
>          if 'master' in branches:
>              branches.remove('master')  # SETUP_PACKAGE creates master

+1 for me

Pierre

Attachment: pgpX4bbbUTuye.pgp
Description: PGP signature

_______________________________________________
infrastructure mailing list
infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/infrastructure

[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux