summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
Commit message (Collapse)AuthorAgeFilesLines
* bitbake: cooker/cache/parse: Implement pyinofity based reconfigureRichard Purdie2015-04-113-3/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Memory resident bitbake has one current flaw, changes in the base configuration are not noticed by bitbake. The parsing cache is also refreshed on each invocation of bitbake (although the mtime cache is not cleared so its pointless). This change adds in pyinotify support and adds two different watchers, one for the base configuration and one for the parsed recipes. Changes in the latter will trigger a reparse (and an update of the mtime cache). The former will trigger a complete reload of the configuration. Note that this code will also correctly handle creation of new configuration files since the __depends and __base_depends variables already track these for cache correctness purposes. We could be a little more clever about parsing cache invalidation, right now we just invalidate the whole thing and recheck. For now, its better than what we have and doesn't seem to perform that badly though. For education and QA purposes I can document a workflow that illustrates this: $ source oe-init-build-env-memres $ time bitbake bash [base configuration is loaded, recipes are parsed, bash builds] $ time bitbake bash [command returns quickly since all caches are valid] $ touch ../meta/classes/gettext.bbclass $ time bitbake bash [reparse is triggered, time is longer than above] $ echo 'FOO = "1"' >> conf/local.conf $ time bitbake bash [reparse is triggered, but with a base configuration reload too] As far as changes go, I like this one a lot, it makes memory resident bitbake truly usable and may be the tweak we need to make it the default. The new pyinotify dependency is covered in the previous commit. (Bitbake rev: 0557d03c170fba8d7efe82be1b9641d0eb229213) (Bitbake rev: 47809de6459deb346929e4ca6efa87a997cfcb38) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: Shut down the parser in error stateRichard Purdie2015-02-111-1/+1
| | | | | | | | | | | | If the cooker is in an error state, we shouldn't continue to try parsing. This fixes an issue where an invalid PR server is detected when bitbake is started and ensures bitbake exits cleanly rather than hanging. [YOCTO #6934] (Bitbake rev: 923fc5ee0ace02cc29110bff502a2c65e6bdebf0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cache/fetch2/siggen: Ensure we track include history for file checksumsRichard Purdie2015-02-113-21/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if you reference a file url, its checksum is included in the task hash, however if you change to a different file at a different location, perhaps taking advantage of the FILESPATH functionality, the system will not reparse the file in question and change its checksum to match the new file. To correctly handle this, the system not only needs to know if the existing file still exists or not, but also check the existance of every file it would have looked at when computing the original file. We already do this in the bitbake parsing code for class inclusion. This change uses the same technique to log the file list we looked at and if files in these locations exist when they previously did not, to invalidate and reparse the file. Since data stored in the cache is flattened text, we have to use a string form of the data and split on the ":" character which is ugly, but is an internal detail we can improve later if a better method is found. The cache version changes to trigger a reparse since the previous cache data is now incompatible. [YOCTO #7019] (Bitbake rev: 67ebf368aab8fbe372374190f013bdf2c83c59de) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: wget: Add localpaths method which gives localpath with historyRichard Purdie2015-02-111-21/+33
| | | | | | | | | | | | | | In some cases for cache purpoes we not only need to know which file is going to be used but also which paths were considered. Add a localpaths method which includes the history. The core which() funciton already supports this, this just extends the function to preserve the extra data we need. localpath becomes just a special case of the case with history. (Bitbake rev: d71407dbbf82659f245e002ecaad02b26838f455) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: ast: Add error when trying to use dash in sh function namesRichard Purdie2015-02-111-0/+2
| | | | | | | | | | | | | | | A dash character is illegal in function names in sh (but not bash). Since our shell tasks run under sh and the shell parser is sh based, EXPORT_FUNCTIONS won't work with class names containing a dash. We can't change sh, we can ensure the user is warned about the problem straight away though. [YOCTO #7006] (Bitbake rev: 879fe20f47ba75f4afb3484d4398d5fd60431e12) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Ensure taskdata default functions exist in base classRichard Purdie2015-02-111-6/+7
| | | | | | | | | | | | The get/set_taskdata functions are now part of the API of the class, ensure they exist in the base class definition so the noop handler works. [YOCTO #7233] (Bitbake rev: d571149cd82028c5e05cca33a3007ce1b779a654) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/git: Allow other namespaces than refs/heads to be searched.Fredrik Svensson2015-01-061-1/+4
| | | | | | | | | | | | This makes it possble to fetch Gerrit review references which are normally stored under refs/changes. Please disregard previous patch with the same topic. (Bitbake rev: ab8cbf2a71750f5ea36e218036b050857301607b) Signed-off-by: Fredrik Svensson <fredrik.svensson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: exit normally when SIGHUPRobert Yang2014-12-311-1/+6
| | | | | | | | | | | | | | Fixed: 1) Run "bitbake recipe" in the terminal 2) Close the terminal while building 3) $ ps aux | grep bitbake-worker There will be many processes, and they will keep the resources (e.g., memory), and won't exit unless kill or kill -9. (Bitbake rev: 72536d4e0cc3379001b730950afa012f7a96a79b) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: event: fix resetting class handlers objectPaul Eggleton2014-12-311-0/+1
| | | | | | | | | | | | | If you don't explicitly specify to use a global variable when doing an assignment, you will be setting a local variable instead, which means this function wasn't working at all. It explains some odd behaviour we have seen in the layer index where event handlers were sometimes bleeding into other contexts where they should not have been. (Bitbake rev: f12c738d3dc1f0fd105d457385511440024bffab) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data: Handle BASH_FUNC shellshock implicationRichard Purdie2014-12-311-0/+7
| | | | | | | | | | | | | | | | | | | The shellshock patches changed the way bash functions are exported. Unfortunately different distros used slightly different formats, Fedora went with BASH_FUNC_XXX()=() { echo foo; } and Ubuntu went with BASH_FUNC_foo%%=() { echo foo; }. The former causes errors in dealing with out output from emit_env, the functions are not exported in either case any more. This patch handles things so the functions work as expected in either case. [YOCTO #6880] (Bitbake rev: 4d4baf20487271aa83bd9f1a778e4ea9af6f6681) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix 100% cpu use after keyboard interruptRichard Purdie2014-12-311-5/+4
| | | | | | | | | | After Ctrl+C is pressed to interrupt bitbake, it loops continually, running at 100% cpu. This patch selects on the correct file descriptors resolving the excess cpu usage. (Bitbake rev: dca5d82830ef2838439e5272da9dac1f28954cf1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: buildinfohelper: Make sure we use the orm defined value for loglevelMichael Wood2014-12-311-5/+3
| | | | | | | | | | | | | We need to consistently use LogMessage.INFO/WARNING/ERROR to make sure toaster knows how to categories these rather than passing in the "raw" loglevel value which in best case comes from python logging but worst case any value. [YOCTO 6885] (Bitbake rev: 926235aad806232bc73e33d6dd8955dd26562e6b) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Fix shared work checksum mismatch/rebuild issuesRichard Purdie2014-11-201-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to the last shared work task signature bug, we've found another one. Looking at the improved output of diffsigs in this case: runtaskdeps changed from [ 'autoconf_2.69.bb.do_populate_sysroot:virtual:native', 'gnu-config_20120814.bb.do_populate_sysroot:virtual:native', 'libgcc-initial_4.9.bb.do_patch:virtual:nativesdk' ] to [ 'autoconf_2.69.bb.do_populate_sysroot:virtual:native', 'gcc-crosssdk-initial_4.9.bb.do_patch', 'gnu-config_20120814.bb.do_populate_sysroot:virtual:native' ] so we can get a different task hash since libgcc sorts before gnu-config and gcc sorts after it. We could do with a way of fixing this, the best I can come up with is to include a single parent directory. Since recipes are never at the top of any metadata trees I've seen, this should suffice for now. I'm planning to burn the concept of shared work within bitbake and do something at the metadata level in the 1.8 timeframe as its just too fragile as things stand and hard to fix well. (Bitbake rev: fc7ebf3835a206a5daafd4e1b73bac2549714ad3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data_smart.py: fix variable splitting at _remove mechanismStefan Müller-Klieser2014-11-191-1/+1
| | | | | | | | | | If we split variables only at whitespaces, a slipped in tab will render a value unremovable. (Bitbake rev: 0da22ba3e930fbb060b31fc423fd3333ca8843a0) Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetcher: fix getVar call due to incorrect argument datatypeAlejandro Hernandez2014-10-111-1/+1
| | | | | | | (Bitbake rev: 2ac33aac3446cb12227f1b8daa5f27f417c9bb9e) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetcher: fix BB_STRICT_CHECKSUM datatype checkAlejandro Hernandez2014-10-061-2/+2
| | | | | | | | | | | Forcing strict to be a string, to avoid problems when performing comparisons [YOCTO #6762] (Bitbake rev: b8ed2098bdea2afd93ab4e3e1b834f3a31cb60de) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: hob: Fix sstate mirrors manglingRichard Purdie2014-09-291-4/+1
| | | | | | | | | | | | hob was adding the redundant characters "\1" in SSTATE_MIRRORS variable. If needed it is expected the user will add this instead so remove the code that was doing this. [YOCTO #6600] (Bitbake rev: 73bf120062fc00c7e26dc4e77a7d140658d89daf) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch: Extend testing of subdir unpack parameter and fixRichard Purdie2014-09-292-0/+9
| | | | | | | | | This fixes urls of the form file://some/path/file;subdir=b. It also adds in a couple of tests so we now tests these corner cases. (Bitbake rev: 46306912a96444790efa9418d934dfdd36773ba1) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch: SRC_URI parameter "subdir" does not work for local filesRoxana2014-09-291-1/+4
| | | | | | | | | | | Check if the 'subdir' parameter exists and assign it to 'destdir' so that files are copied in ${WORKDIR}/destdir. This fixes urls that are of the form file://a;subdir=b. (Bitbake rev: 836a986b365eb9798563ec08d90b346596de7791) Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: monitordisk: don't log when not monitoring a filesystem for inodesRoss Burton2014-09-291-4/+2
| | | | | | | | | | | | Writing a log that the filesystem isn't being monitored for inode usage just confuses users who are not aware about the nature of inodes in their filesystem, so don't say anything, just silently disable the monitor. In general this only happens on filesystems which don't have a limit on inodes. (Bitbake rev: ca93bc84ee5fb94a50c11c47e4d212d7da649e24) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bin/bitbake: Update to version 1.24.0Richard Purdie2014-09-231-1/+1
| | | | | | (Bitbake rev: 637ce8df2658e4905fab8a0600a45505596bf472) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/perforce: Use replace (1 line) instead of find (3 lines)Chad Nelson2014-09-231-7/+3
| | | | | | (Bitbake rev: 5bf5a937b26896bedbfea78dd1d62bce5a26ac2a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/perforce: Fix localfile name if labels are usedChad Nelson2014-09-231-10/+7
| | | | | | | | | | | | | | I could apply the label "release_1.0" to a super project that contains many sub projects. If my recipes have SRC_URI's that use that label but grab different sub-folders, than there's a bug where the cached localfile (tar.gz) will not be unique and reused at the wrong times. SRC_URI = "p4://perforce::1234@//depot/SuperProject/MiniProjectAAA/...;label=release_1.0 \ p4://perforce::1234@//depot/SuperProject/MiniProjectBBB/...;label=release_1.0" (Bitbake rev: 3b5b1703b77490116dda895b29737cea51a3d6a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: Ensure commandline parameters are updated in memres serverRichard Purdie2014-09-234-0/+20
| | | | | | | | | | | | | | | | When using options like -k, -f, -v and so on with the memory resident server, they'd currently only be set on the initial values passed to the original command. This ensures they now match those specified on the commandline for the options where this makes sense. To make this work, a command to update the options on the server side is required so this is added. [YOCTO #5292] (Bitbake rev: 1c75cc4d0c8b606c1fe76e6bf60bf6a32298b105) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data_smart: Clarify what 'computed' means in the data store history ↵Richard Purdie2014-09-161-1/+1
| | | | | | | | context (Bitbake rev: a2ca038dd1d0be4e0a0b20ae16a467d5a0075514) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: data_smart: Fix remove operator and its interaction with data expansionRichard Purdie2014-09-132-1/+9
| | | | | | | | | | | | | | | | | | | If you have: FOO = "${bindir}/X Y" FOO_remove = "${bindir}/X" the expected result is "Y". Currently this doesn't work since the removed expressions are not expanded first. This patch adjusts things so the expressions are expanded before being processed for removal. Also add a test to ensure this case continues to work. [YOCTO #6624] (Bitbake rev: 72a1ca4a104ccab73d6abcbd44db9c2636a58572) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bin/bitbake: Update to version 1.23.2Richard Purdie2014-09-111-1/+1
| | | | | | (Bitbake rev: e24095f54c52a547c0462836586a5d716249036e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen/runqueue/bitbake-worker: Improve siggen data transfer interfaceRichard Purdie2014-09-112-7/+6
| | | | | | | | | | | | | We need to transfer some of the siggen data from the core/cooker into the worker instances. There was a partial API created for this but its ugly and its not possible to extend it from the siggen class. This patch completes the interface/abstraction for the data and means the class can extend/customise it in any siggen class. (Bitbake rev: cf2d642052979d236185c5b8ca2c5478c06e62ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: tinfoil: add a means of enabling variable history trackingPaul Eggleton2014-09-051-3/+6
| | | | | | | | | | | | | | | Unfortunately it seems like the external use of the cooker enableDataTracking() function broke at some point since the code that reads it now runs within BBCooker's constructor. Since this now has to be done early, add a parameter to Tinfoil's constructor to allow enabling variable history tracking. Fixes [YOCTO #6676]. (Bitbake rev: a9439b136f55f3f0e80ff053cd3b159da69ba362) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: process: Ensure abnormal exits set an error levelRichard Purdie2014-09-021-1/+1
| | | | | | (Bitbake rev: 8f5c1cdae1ee6ce04ae0d04d0b95bd80efbf7534) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: ignore interrupted system callsDan McGregor2014-09-011-1/+1
| | | | | | | | | | | | | With the improved exception handling added in an earlier commit bitbake now stops when recieving a SIGWINCH. This happens frequently when disconnecting and reconnecting tmux sessions and bitbake didn't survive. Restore old behaviour of ignoring interrupted system calls but keep proper exception handling for other errors. (Bitbake rev: 418358a595c75f45b8d15160ec42bbe569562d91) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: buildinfohelper: BuildRequest project file update soft linkedAlexandru DAMIAN2014-08-291-1/+1
| | | | | | | (Bitbake rev: 93887dadd5ee35557d320e96059c466d2e541065) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: toasterui: refactor log saving and save out-of-build errorsAlexandru DAMIAN2014-08-292-38/+51
| | | | | | | | | | | | | We refactor log saving to go through only one code path. All logs that happened outside the build (i.e. before build starting) now will be logged to either toaster_ui.log if the build command ran in interactive mode, or to the build request errors if the command ran in managed mode. This enables proper display of error logs in project page. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: build/data: Write out more complete python run filesRichard Purdie2014-08-282-1/+36
| | | | | | | | | | | | | Currently the output in the python task/function run files is rather incomplete and effectively useless. This enhances the code to take advantage of the bitbake's dependency tracking and extend the output to include dependencies. This makes the files more usable for debugging purposes. Since this only happens at python function execution time, the overhead is minimal in the grand scheme of things. (Bitbake rev: 02667e048c3e632f857c87177c0022eaf5481802) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: bitbake-worker: Extra profiling data dumpRichard Purdie2014-08-281-2/+5
| | | | | | | | | | | | | | Currently we get no profiling oversight into either the main bitbake worker process, or the overall parsing before task execution. This adds in extra profiling hooks so we can truly capture all parts of bitbake's execution into the profile data. To do this we modify the 'magic' value passed to bitbake-worker to trigger the profiling, before the configuration data is sent over to the worker. (Bitbake rev: 446e490bf485b712e5cee733dab5805254cdcad0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: utils: Improve profile log processingRichard Purdie2014-08-281-6/+1
| | | | | | | | | This stream redirection of stdout is horrible. pstats takes a stream argument so lets use that instead. (Bitbake rev: 93d155f4766e27e7b004d13569aa03961fe89e3b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/hg: Fix username/password handlingRichard Purdie2014-08-281-1/+4
| | | | | | | | | We should only add user/password options if they're specified as in the fetch case. Patch from Volker Vogelhuber <v.vogelhuber@digitalendoscopy.de> (Bitbake rev: 303e6256947f4df4f283b75b7ccfdffa72864d67) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue: Fix setscene tasks not runningRichard Purdie2014-08-281-0/+4
| | | | | | | | | | | | | | | | | | | | Currently, if you have hard dependencies between setscene tasks (like avahi on base-passwd through useradd.bbclass), other dependencies may not be installed even if these exist in sstate. For example, avahi -> expat -> pigz-native (and avahi -> base-passwd) yet if you cleansstate base-passwd: bitbake gzip-native:do_clean avahi:do_clean expat:do_clean pigz-native:do_clean base-passwd:do_cleansstate bitbake avahi | tee you will currently see pigz-native being rebuilt even though it was in sstate. The fix for this is to continue to iterate dependency chains around hard blocked dependencies as per this patch. After this patch is applied, you will see pigz-native installed from sstate. (Bitbake rev: f787957a224e8c2682a19e5c4a4d9c86bdce52ba) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: lib/bb/*.py: Typo fixes/grammar/comment fixes, nothing functional.Robert P. J. Day2014-08-259-27/+29
| | | | | | | (Bitbake rev: 587b144ee409d444494d8d7f2d1c53ede8f7c953) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: depexp: don't use undefined variable 'logging'Olof Johansson2014-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This fixes an issue when trying to use depexp without specifying a recipe. Before change: $ bitbake -g -udepexp Traceback (most recent call last): File ".../bitbake/bin/bitbake", line 382, in <module> ret = main() File ".../bitbake/bin/bitbake", line 370, in main return ui_module.main(server_connection.connection, server_connection.events, configParams) File ".../bitbake/lib/bb/ui/depexp.py", line 201, in main logger.error(cmdline['msg']) NameError: global name 'logger' is not defined After change: $ bitbake -g -udepexp Please specify a package name for dependency graph generation. (Bitbake rev: 984ad90b2f1e29634dc79803a4a0404ab0534039) Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: cooker: tweak CookerCollectFiles::find_bbfilesBernhard Reutner-Fischer2014-08-231-1/+1
| | | | | | | | | since python-2.5 string.endswith() takes a tuple (Bitbake rev: 86a67a1fd4244da9343dbf14deed1ad0d3003f32) Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: siggen: Fix a subtle bug in hash calculation for shared work tasksRichard Purdie2014-08-231-1/+1
| | | | | | | | | | | | | | | | | | | With a shared work task like gcc, the task can be run from a variety of different recipes which may have different virtual extensions in place. Depending on whether gcc-runtime or nativesdk-gcc-runtime's do_preconfigure task is called for example will change the sorting of the task hashes due to the way clean_basename currently works. The correct thing to do here is sort on the base filename first, then any extension when ordering the hashes. This means we do account for things like recipes with both a native and non-native dependency but we also fix the shared work case where we don't care whether it was a virtual version or not. (Bitbake rev: 2e80b5d10a5037ed6f0bc227a1f9b42529c87086) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: process: Further improve robustness against server shutdownRichard Purdie2014-08-231-3/+14
| | | | | | | | | | | | | | | | | Currently, if an exception occurs in an event handler, the server shuts down but the UI simply hangs. This happens in two places, firstly waiting for events and secondly, sending events to a server which no longer exists. The latter does time out, the former does not. These patches improve both code sections to check if the main server process is alive and if not, trigger things to shut down gracefully. This avoids the timeout in the command sending case too. This resolves various cases where the UI would simply hang indefintely. (Bitbake rev: ac418e1112ff5f9c3157569316902f7a27fba4b4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: utils: Add workaround for multiprocessing bugRichard Purdie2014-08-231-0/+12
| | | | | | | | | | | | Our usage of multitprocessing is problematic. In particular, there is a bug in python 2.7 multiprocessing where signals are not handled until command completion instead of immediately. This adds a workaround into our wrapper function to deal with the issue. (Bitbake rev: a16185e602b39b71475aa7e9ee80ad2b1f28d0f7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: command: Trigger updateCache to shut down any active parser threadsRichard Purdie2014-08-231-0/+3
| | | | | | | | | | | | | If we trigger a shutdown whilst parsing for whatever reason, in some cases we were not closing down the parser threads. This change ensures we do so. The function names are not entirely intuitive but the behaviour is more correct (and commented). The previous bug with the stdout failure would trigger this one, if there was a cold cache and parsing was required (but not otherwise). (Bitbake rev: 25bfa2478f1c3a8eb695e1e5760e06db5be8f2fc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: knotty: Improve exception handlingRichard Purdie2014-08-231-1/+9
| | | | | | | | | | | | Currently, IOErrors are just passed over due to the broken Exception clause. A command like "bitbake X | <invalid command>" would break stdout triggering a traceback. With these changes we print the exceptions, shut down the server gracefully and exit which is a much nicer behaviour and is less confusion to the user. (Bitbake rev: 9544108f7b413038d871ce6ca88232de2f2434d9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: process: Deal with infinite looping of the serverRichard Purdie2014-08-231-0/+2
| | | | | | | | | | | | | | | Currently if an exception occurs, we just run the idle handler again and again, usually looping indefintely. Chances are the exception that occurred will keep occuring and this is not a good place to be. This was breaking the autobuilders with gigabytes of logs. At least improve things so the cooker shuts down gracefully when this happens. Some trace of the original problem may still be present on the console too! (Bitbake rev: 1f28d8d3311262427938180435b68f0a35c2b330) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: runqueue.py: Fix typoes/grammar in comments.Robert P. J. Day2014-08-191-6/+6
| | | | | | | (Bitbake rev: 000fa81013205dd9bc907ff7a61f06f57637212d) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: fetch2/local.py: fix first line indent of search path debug outputAndre McCurdy2014-08-191-1/+1
| | | | | | | | | Make OE do_unpack logs slightly prettier. (Bitbake rev: cec5859dec56529d76a0a685cc67b8da29453c69) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake: daemonize.py: Non-functional comment/aesthetic fixes.Robert P. J. Day2014-08-191-3/+3
| | | | | | | (Bitbake rev: fd293c5fcc89bc7a541d09e88a6aec5e0b2a1db2) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>