From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 0/11 v5] Some download-related changes (branch yem/check-downloads)
Date: Sun, 1 Jun 2014 15:38:22 +0200 [thread overview]
Message-ID: <20140601133822.GG3430@free.fr> (raw)
In-Reply-To: <20140601152441.045ec06b@free-electrons.com>
Thomas, All,
On 2014-06-01 15:24 +0200, Thomas Petazzoni spake thusly:
> On Sun, 4 May 2014 14:01:43 +0200, Yann E. MORIN wrote:
> > This series contains those download-related changes:
>
> I have one request regarding this series: I would like all the
> temporary steps for the download procedures to take place somewhere in
> $(O), and then only after the download is completed, do an atomic
> rename of the file into $(DL_DIR).
>
> The problem I'd like to solve is that it is currently impossible to
> share a download directory between separate, parallel, builds of
> Buildroot, because all the builds are going to use $(DL_DIR) as a
> temporary location to download things, stepping on each other if the
> different builds happen to download the same file at the same time. For
> this reason, I had to switch to one download directory per build
> instance in the autobuilder.
>
> By downloading all the temporary files in $(O), and then doing an
> atomic rename, the other build instances will either see the file and
> use it, or not see it, and do the same procedure, with an atomic rename
> at the end. Of course, it won't work if the download directory is on a
> different filesystem, because the atomic property of file rename is
> guaranteed only inside a given filesystem. But still, it's going to be
> better than what we have today.
Well, that's basically what happens in patch 8/11 (as you noticed
already!).
You said on IRC:
at least for the wget download method, it's still wrong.
What Arnout said is that we want to create the temporary file in the
same filesystem as for the final file.
That can only be true if we create the temp file in the same directory
as the final file, as we have no info about the mountpoints.
But, as you said you want it to work even for parallel downloads, we
will have to do a bit of a gymnastic to avoid to builds in different
directories clobbering each others temp files.
So, of course, two parallel wget will step on each other's temp file.
Ditto for the other downloaders.
So, we must create temp files and temp clones with unique names. I'll
use mktemp for that.
Thanks for the review!
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2014-06-01 13:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-04 12:01 [Buildroot] [PATCH 0/11 v5] Some download-related changes (branch yem/check-downloads) Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 01/11] Makefile: add BR2_DL_DIR to EXTRA_ENV Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 02/11] pkg-infra: also set PKGDIR for the download step Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 03/11] pkg-infra: move the git download helper to a script Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 04/11] pkg-infra: move the svn " Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 05/11] pkg-infra: move the cvs " Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 06/11] pkg-infra: move the hg " Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 07/11] pkg-infra: move the wget " Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 08/11] pkg-infra: don't use DL_DIR as scratchpad for temporary VCS checkouts Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 09/11] pkg-infra: add possiblity to check downloaded files against known hashes Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 10/11] manual: add documentation about packages' hashes Yann E. MORIN
2014-05-04 12:01 ` [Buildroot] [PATCH 11/11] package/ca-certificates: add tarball's hashes Yann E. MORIN
2014-06-01 13:24 ` [Buildroot] [PATCH 0/11 v5] Some download-related changes (branch yem/check-downloads) Thomas Petazzoni
2014-06-01 13:38 ` Yann E. MORIN [this message]
2014-06-01 13:41 ` Thomas Petazzoni
2014-06-01 13:51 ` Yann E. MORIN
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=20140601133822.GG3430@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox