From: <Mikko.Rapeli@bmw.de>
To: <mark.hatle@windriver.com>
Cc: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH] Fix gitsm networking and mirroring
Date: Fri, 21 Sep 2018 14:15:37 +0000 [thread overview]
Message-ID: <20180921141536.GY9430@hiutale> (raw)
In-Reply-To: <d4b42aa4-2b09-4272-c0da-790cefb1a98d@windriver.com>
On Fri, Sep 21, 2018 at 09:04:10AM -0500, Mark Hatle wrote:
> On 9/21/18 2:02 AM, Mikko.Rapeli@bmw.de wrote:
> > Looks good from what I understand of the patch, but I have a question about
> > git/gitsm fetchers:
> >
> > Is it possible that two recipes end up modifying the same file e.g. via
> > hard links when they use git submodules and share one of the repositories?
>
> The symlinks (not hard links in this case) are between the components from the
> submodule and whatever the fetcher returned.
>
> The only modified element(s) are the references to the submodules within the
> bare repositories.
>
> Assuming all users use the same bare repositories, it's my
> understanding/expectation that the code in the 'downloads' will be the same.
> The only difference will then be in working dir.
>
> > I'm seeing very odd build failures on sumo and it looks like
> > recipes are either mixing up files in their sysroots or seeing each others
> > patches on top of the shared git submodule tree. These happen when building
> > the whole system and rebuilding affected recipes alone makes the problem
> > go away.
>
> Before or after my patch? The gitsm changes here should ONLY affect the
> repository and any submodules affected. The code affects the fetch and unpack
> behaviors of the system. So no patches would be applied to the tree.. (well
> they are not supposed to be!)
Before, on sumo and I was wondering if your patch could fix it.
But with help from #yocto I've now debugged this into openssl do_configure
and am testing a patch. With luck my problem had nothing to do with git
submodules.
> The previous (current) gitsm fetcher makes it's submodules present using either
> copies or git submodule updates. In the case of a copy, it might be possible
> for one workdir to have a symlink back to the download or other shared location.
> (I never encountered this, so this is purely speculation.)
>
> If you can get me a gitsm reproducer for the problems you were seeing, I can run
> them through this code and see if I can make it work.
>
> (As an aside, I think git submodules are one of the worst things ever. I really
> hate them...)
>
> > With svn fetcher we see the same, but that's one of the problems we knew about
> > from past. svn fetcher does not lock the download cached tree correctly
> > and if multiple recipes use the same repo, one of them can see the repo
> > in an inconsistent state and fail with various errors. Our workaround
> > is to switch to http/s fetcher instead.
>
> With my patch set, I'm not doing an explicit locking. The download process
> itself, should be locked by the existing fetch2 system, and git fetcher. The
> module setup/symlinking process might be slightly different.
>
> One place there COULD be an issue is if two different recipes refer to the same
> gitsm 'source', but different srcrev, and the different srcrev point to
> different submodules. I don't know if this is really a concern in practice though.
Given my luck, we will hit this sooner or later. I think with svn fetcher we
have already seen cases like this. In the best case build fails and in the
worst case wrong things end up in the build...
-Mikko
next prev parent reply other threads:[~2018-09-21 14:25 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-21 0:18 [PATCH] Fix gitsm networking and mirroring Mark Hatle
2018-09-21 0:18 ` [PATCH] fetch2/gitsm.py: Rework the git submodule fetcher Mark Hatle
2018-09-21 7:02 ` [PATCH] Fix gitsm networking and mirroring Mikko.Rapeli
2018-09-21 14:04 ` Mark Hatle
2018-09-21 14:15 ` Mikko.Rapeli [this message]
2018-09-21 15:05 ` Mark Hatle
2018-09-21 15:09 ` Mikko.Rapeli
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=20180921141536.GY9430@hiutale \
--to=mikko.rapeli@bmw.de \
--cc=bitbake-devel@lists.openembedded.org \
--cc=mark.hatle@windriver.com \
/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.