All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Murray <scott.murray@konsulko.com>
To: bitbake-devel@lists.openembedded.org
Subject: [1.40][PATCH 04/10] gitsm.py: Optimize code and attempt to resolve locking issue
Date: Tue, 12 Mar 2019 18:46:21 -0400	[thread overview]
Message-ID: <20190312224627.12667-5-scott.murray@konsulko.com> (raw)
In-Reply-To: <20190312224627.12667-1-scott.murray@konsulko.com>

From: Mark Hatle <mark.hatle@windriver.com>

It was reported that a race condition on a shared download directory could
occur with the gitsm fetcher, the result happened with a call to

  git config

that occured within the update_submodules.  Since the fetch is locked by the
upper level, it was probably the prior need_update(...) function causing this
because of some old code.

The gitsm class inherits the git class.  The need_update was overridding the
version in gitsm, so that it forceably checked the submodules.

It's clear we can optimize the code by only updating if the primary repository
needs updating.  Since we don't care if the submodule repository has changed
because if the primary hasn't, references to the submodule won't change.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 346338667edca1f58ace769ad417548da2b8d981)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 lib/bb/fetch2/gitsm.py | 14 --------------
 1 file changed, 14 deletions(-)

diff --git a/lib/bb/fetch2/gitsm.py b/lib/bb/fetch2/gitsm.py
index dd94186c..11bfa668 100644
--- a/lib/bb/fetch2/gitsm.py
+++ b/lib/bb/fetch2/gitsm.py
@@ -148,20 +148,6 @@ class GitSM(Git):
 
         return True
 
-    def need_update(self, ud, d):
-        main_repo_needs_update = Git.need_update(self, ud, d)
-
-        # First check that the main repository has enough history fetched. If it doesn't, then we don't
-        # even have the .gitmodules and gitlinks for the submodules to attempt asking whether the
-        # submodules' histories are recent enough.
-        if main_repo_needs_update:
-            return True
-
-        # Now check that the submodule histories are new enough. The git-submodule command doesn't have
-        # any clean interface for doing this aside from just attempting the checkout (with network
-        # fetched disabled).
-        return not self.update_submodules(ud, d)
-
     def download(self, ud, d):
         Git.download(self, ud, d)
 
-- 
2.17.2



  parent reply	other threads:[~2019-03-12 22:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-12 22:46 [1.40][PATCH 0/10] Backport gitsm fetcher fixes Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 01/10] gitsm.py: Fix when a submodule is defined, but not initialized Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 02/10] gitsm.py: Add support for alternative URL formats from submodule files Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 03/10] tests/fetch.py: Add alternative gitsm test case Scott Murray
2019-03-12 22:46 ` Scott Murray [this message]
2019-03-12 22:46 ` [1.40][PATCH 05/10] gitsm.py: revise unpack Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 06/10] gitsm.py: Rework the shallow fetcher and test case Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 07/10] gitsm.py: Refactor the functions and simplify the class Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 08/10] gitsm.py: Fix relative URLs Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 09/10] gitsmy.py: Fix unpack of submodules of submodules Scott Murray
2019-03-12 22:46 ` [1.40][PATCH 10/10] gitsm: The fetcher did not process some recursive submodules properly Scott Murray
2019-03-13  4:38 ` [1.40][PATCH 0/10] Backport gitsm fetcher fixes akuster808
2019-03-13 19:17 ` akuster808
2019-03-13 23:19   ` Mark Hatle
2019-03-14 15:27   ` Scott Murray
2019-03-14 23:04     ` akuster808

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190312224627.12667-5-scott.murray@konsulko.com \
    --to=scott.murray@konsulko.com \
    --cc=bitbake-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.