From: Mark Hatle <mark.hatle@windriver.com>
To: Stefan Agner <stefan@agner.ch>
Cc: bitbake-devel@lists.openembedded.org
Subject: Re: gitsm shared DL_DIR and race conditions
Date: Wed, 9 Jan 2019 10:46:35 -0600 [thread overview]
Message-ID: <a511c497-e86c-c274-0505-bc3c3242e966@windriver.com> (raw)
In-Reply-To: <3585261e3fbb59fbacffbc7339a6f30a@agner.ch>
On 1/9/19 10:21 AM, Stefan Agner wrote:
> On 09.01.2019 16:38, Mark Hatle wrote:
>> On 1/9/19 7:48 AM, Stefan Agner wrote:
>>> Hi,
>>>
>>> We came across race conditions while fetching a repository using gitsm:
>>> ERROR: aktualizr-native-1.0+gitAUTOINC+d00d1a04cc-7 do_fetch: Fetcher
>>> failure: Fetch command export PSEUDO_DISABLED=1; export
>>> PATH="/workdir/oe/layers/openembedded-core/scripts/native-intercept:/workdir/oe/layers/openembedded-core/scripts:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/usr/bin/x86_64-linux:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/usr/bin:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/usr/sbin:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/usr/bin:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/sbin:/workdir/oe/tmp/work/x86_64-linux/aktualizr-native/1.0+gitAUTOINC+d00d1a04cc-7/recipe-sysroot-native/bin:/workdir/oe/bitbake/bin:/workdir/oe/tmp/hosttools";
>>> export HOME="/home/yocto"; git -c core.fsyncobjectfiles=0 config
>>> submodule.tests/tuf-test-vectors.url
>>> /workdir/downloads/git2/github.com.advancedtelematic.tuf-test-vectors.
>>> failed with exit code 255, output:
>>> error: could not lock config file config: File exists
>>>
>>> We share the same DL_DIR located on a NFS across multiple builders. We
>>> are using latest state of the 1.40 branch (thud) of bitbake.
>>>
>>> It seems that two git config invocations raced in this case. Is there
>>> locking required in the current gitsm implementation?
>>
>> Did not expect git config to have locking issue... but it is showing that two
>> fetches appear to have happened together... gitsm uses the regular git fetcher
>> for that bit, and then after the fetch is complete updates the config (like git
>> submodule init would) to point to downloaded components. It's this
>> configuration step that appears to have failed.
>>
>> It should be fairly trivial to catch this issue and retry.
>
> It does not happen often. It happened only once in the last ~100 builds
> or so...
>
> Since this is in the CI environment I need to check whether I can jump
> into that environment.
>
> As far as I can see git holds a lock to write its config file:
> https://github.com/git/git/blob/master/config.c#L2715
>
> Shouldn't we use a blocking lock on bitbake level to avoid running into
> the git lock and erroring out?
Any locking that occurs would need to be synchronized between the git and gitsm
fetchers. I'm not sure how easy or hard this would be to do. If we can
coordinate the locking there, that would be best... but baring that catch and
retry should be a reasonable alternative as it is highly unlikely that this file
will be locked for an extended period of time.
--Mark
> --
> Stefan
>
prev parent reply other threads:[~2019-01-09 16:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-09 13:48 gitsm shared DL_DIR and race conditions Stefan Agner
2019-01-09 15:38 ` Mark Hatle
2019-01-09 16:21 ` Stefan Agner
2019-01-09 16:46 ` Mark Hatle [this message]
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=a511c497-e86c-c274-0505-bc3c3242e966@windriver.com \
--to=mark.hatle@windriver.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=stefan@agner.ch \
/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.