From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Saul Wold <sgw@linux.intel.com>
Cc: akuster808@gmail.com, bitbake-devel@lists.openembedded.org,
Paul Eggleton <paul.eggleton@linux.intel.com>
Subject: Re: [PATCH][1.24/Dizzy] cooker: properly fix bitbake.lock handling
Date: Sat, 22 Aug 2015 11:11:20 +0100 [thread overview]
Message-ID: <1440238280.12105.284.camel@linuxfoundation.org> (raw)
In-Reply-To: <1440092897-6518-1-git-send-email-sgw@linux.intel.com>
On Thu, 2015-08-20 at 10:48 -0700, Saul Wold wrote:
> From: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> If the PR server or indeed any other child process takes some time to
> exit (which it sometimes does when saving its database), it can end up
> holding bitbake.lock after the UI exits, which led to errors if you ran
> bitbake commands successively - we saw this when running the PR server
> oe-selftest tests in OE-Core. The recent attempt to fix this wasn't
> quite right and ended up breaking memory resident bitbake. This time we
> close the lock file when cooker shuts down (inside the UI process)
> instead of unlocking it, and this is done in the cooker code rather than
> the actual UI code so it doesn't matter which UI is in use. Additionally
> we report that we're waiting for the lock to be released, using lsof or
> fuser if available to list the processes with the lock open.
>
> The 'magic' in the locking is due to all spawned subprocesses of bitbake
> holding an open file descriptor to the bitbake.lock. It is automatically
> unlocked when all those fds close the file (as all the processes terminate).
> We close the UI copy of the lock explicitly, then close the server process
> copy, any remaining open copy is therefore some proess exiting.
>
> (The reproducer for the problem is to set PRSERV_HOST = "localhost:0"
> and add a call to time.sleep(20) after self.server_close() in
> lib/prserv/serv.py, then run "bitbake -p; bitbake -p" ).
>
> Cleanup work done by Paul Eggleton <paul.eggleton@linux.intel.com>.
>
> This reverts bitbake commit 69ecd15aece54753154950c55d7af42f85ad8606 and
> e97a9f1528d77503b5c93e48e3de9933fbb9f3cd.
>
> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> [sgw - merged changes from new main.py to bin/bitbake, dizzy will continue
> to use bin/bitbake and not use the new main.py (which is removed)]
> Signed-off-by: Saul Wold <sgw@linux.intel.com>
>
> Conflicts:
> lib/bb/cooker.py
> lib/bb/main.py
> lib/bb/tinfoil.py
> lib/bb/ui/knotty.py
> ---
> bin/bitbake | 7 ++++++-
> lib/bb/cooker.py | 31 ++++++++++++++++++++++++++++++-
> lib/bb/tinfoil.py | 5 +++++
> lib/bb/ui/knotty.py | 43 ++++++++++++++++++++++++-------------------
> lib/bb/utils.py | 29 +++++++++++++++++++++++++----
> 5 files changed, 90 insertions(+), 25 deletions(-)
>
> diff --git a/bin/bitbake b/bin/bitbake
> index a2e8cc1..d3055fb 100755
> --- a/bin/bitbake
> +++ b/bin/bitbake
> @@ -263,13 +263,18 @@ def start_server(servermodule, configParams, configuration, features):
> logger.handle(event)
> raise exc_info[1], None, exc_info[2]
> server.detach()
> + cooker.lock.close()
> return server
>
>
>
> def main():
>
> - configParams = BitBakeConfigParameters()
> + # Python multiprocessing requires /dev/shm on Linux
> + if sys.platform.startswith('linux') and not os.access('/dev/shm', os.W_OK | os.X_OK):
> + raise sys.exit("FATAL: /dev/shm does not exist or is not writable")
> +
> + conaigParams = BitBakeConfigParameters()
> configuration = cookerdata.CookerConfiguration()
> configuration.setConfigParameters(configParams)
>
conaigParams ?
I think the above hunk shouldn't be there...
Cheers,
Richard
next prev parent reply other threads:[~2015-08-22 10:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-20 17:48 [PATCH][1.24/Dizzy] cooker: properly fix bitbake.lock handling Saul Wold
2015-08-22 10:11 ` Richard Purdie [this message]
2015-08-24 14:59 ` Paul Eggleton
-- strict thread matches above, loose matches on Subject: below --
2015-08-28 16:08 [PATCH][1.24/dizzy] " Saul Wold
2015-08-28 16:38 ` akuster
2015-08-29 6:16 ` Saul Wold
2015-08-31 18:16 ` 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=1440238280.12105.284.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=akuster808@gmail.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=paul.eggleton@linux.intel.com \
--cc=sgw@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox