From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: bitbake-devel <bitbake-devel@lists.openembedded.org>
Subject: Re: [PATCH] command/runqueue: Fix shutdown logic
Date: Tue, 22 Jul 2014 16:46:05 +0200 [thread overview]
Message-ID: <20140722144605.GT22875@jama> (raw)
In-Reply-To: <1405931753.22985.93.camel@ted>
[-- Attachment #1: Type: text/plain, Size: 4052 bytes --]
On Mon, Jul 21, 2014 at 09:35:53AM +0100, Richard Purdie wrote:
> If you hit Ctrl+C at the right point, the system processes the request
> but merrily continues building. It turns out finish_runqueue() is called
> but this doesn't stop the later generation and execution of the
> runqueue.
>
> This patch adjusts some of the conditionals to ensure the build really
> does stop.
Great, I've included this change in my world builds to see if it fixes
bitbake still running after jenkins job is aborted.
I don't think it's caused by this change and I don't know how much we
can do about it, but today I was testing snort build (which eats all
memory in m4 call until OOMK kills it) and when I wanted to interrupt
the build it failed with 2 tracebacks:
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Running task 569 of 610 (ID: 5, /OE/build/oe-core/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.6.0.bb, do_configure)
NOTE: recipe snort-2.9.6.0-r0: task do_configure: Started
^C^C^C^C^C^C^C^C^C^C^C^C^C^CTraceback (most recent call last):
File "/OE/build/oe-core/bitbake/bin/bitbake", line 382, in <module>
ret = main()
File "/OE/build/oe-core/bitbake/bin/bitbake", line 372, in main
bb.event.ui_queue = []
KeyboardInterrupt
^CException KeyboardInterrupt in <module 'threading' from '/usr/lib64/python2.7/threading.pyc'> ignored
^CError in atexit._run_exitfuncs:
^CError in sys.exitfunc:
Traceback (most recent call last):
File "/usr/lib64/python2.7/atexit.py", line 30, in _run_exitfuncs
traceback.print_exc()
File "/usr/lib64/python2.7/traceback.py", line 233, in print_exc
print_exception(etype, value, tb, limit, file)
File "/usr/lib64/python2.7/traceback.py", line 110, in print_exception
def print_exception(etype, value, tb, limit=None, file=None):
KeyboardInterrupt
There was also about 5 minute delay between first 2 Ctrl+C and actual
exit, but that could be caused by huge load caused by that faulty m4.
Regards,
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py
> index 84fcdf9..d797fcf 100644
> --- a/bitbake/lib/bb/command.py
> +++ b/bitbake/lib/bb/command.py
> @@ -86,7 +86,7 @@ class Command:
>
> def runAsyncCommand(self):
> try:
> - if self.cooker.state == bb.cooker.state.error:
> + if self.cooker.state in (bb.cooker.state.error, bb.cooker.state.shutdown, bb.cooker.state.forceshutdown):
> return False
> if self.currentAsyncCommand is not None:
> (command, options) = self.currentAsyncCommand
> diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py
> index 4ea4970..f68a11d 100644
> --- a/bitbake/lib/bb/runqueue.py
> +++ b/bitbake/lib/bb/runqueue.py
> @@ -1065,7 +1065,7 @@ class RunQueue:
> if self.state is runQueueCleanUp:
> self.rqexe.finish()
>
> - if self.state is runQueueComplete or self.state is runQueueFailed:
> + if (self.state is runQueueComplete or self.state is runQueueFailed) and self.rqexe:
> self.teardown_workers()
> if self.rqexe.stats.failed:
> logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and %d failed.", self.rqexe.stats.completed + self.rqexe.stats.failed, self.rqexe.stats.skipped, self.rqexe.stats.failed)
> @@ -1106,6 +1106,7 @@ class RunQueue:
>
> def finish_runqueue(self, now = False):
> if not self.rqexe:
> + self.state = runQueueComplete
> return
>
> if now:
> --
> cgit v0.10.1
>
>
>
> --
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/bitbake-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2014-07-22 14:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-21 8:35 [PATCH] command/runqueue: Fix shutdown logic Richard Purdie
2014-07-22 14:46 ` Martin Jansa [this message]
2014-07-22 18:10 ` Richard Purdie
2014-07-22 18:51 ` Martin Jansa
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=20140722144605.GT22875@jama \
--to=martin.jansa@gmail.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.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.