aboutsummaryrefslogtreecommitdiffstats
path: root/bin/bitbake-worker
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2013-08-27 15:12:55 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-28 00:25:40 +0100
commit972bc43e6d5b1207b944b3baa8f9805adb35dda7 (patch)
tree3a2f6b52954e11f480abca702034f91c32be54e4 /bin/bitbake-worker
parentf8166ace0bd9155199166990ce15da24eb2e793b (diff)
downloadbitbake-contrib-972bc43e6d5b1207b944b3baa8f9805adb35dda7.tar.gz
serv.py: Fix hang when spawned dynamically with bitbake
The PRServer has the possibility to hang indefinitely blocking on a semaphore processing a xmlrpc request to send an event back to the main bitbake instance. This was observed during a "bitbake -e" on a heavily loaded machine and the main bitbake instance and cooker exited before the PRServer emitted its first log. The stack trace is provided below as to show what happens every time a logger.info() is executed in the PRServer. Not only does it write to the stream handler but it also tries to send the event to the main event processor. self._notempty.acquire() self.queue.put(event) _ui_handlers[h].event.send(event) fire_ui_handlers(event, d) fire(record, None) self.emit(record) hdlr.handle(record) self.callHandlers(record) self.handle(record) self._log(INFO, msg, args, **kwargs) (self.dbfile, self.host, self.port, str(os.getpid()))) self.work_forever() pid = self.daemonize() self.prserv.start() singleton.start() self.prhost = prserv.serv.auto_start(self.data) cooker.pre_serve() bb.cooker.server_main(self.cooker, self.main) self.run() code = process_obj._bootstrap() self._popen = Popen(self) self.serverImpl.start() server.detach() server = start_server(servermodule, configParams, configuration) ret = main() It was never intended for the PRServer to send its logs anywhere but its own log file. The event processing is an artifact of how the PRServer was forked and it inherits the event log handlers. The simple fix is to clean up and purge all the log handlers after the fork() but before doing any of the typical PRServer work or logging. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bin/bitbake-worker')
0 files changed, 0 insertions, 0 deletions
d-sstate'>dankm/signed-sstate OpenEmbedded Core user contribution treesGrokmirror user
summaryrefslogtreecommitdiffstats
path: root/LICENSE
blob: d20dc59fb4fbbfa2a05dc4b13b9dea8c53082d33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Different components of OpenEmbedded are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further 
details of the individual licenses.

All metadata is MIT licensed unless otherwise stated. Source code
included in tree for individual recipes (e.g. patches) are under 
the LICENSE stated in the associated recipe (.bb file) unless 
otherwise stated.

License information for any other files is either explicitly stated 
or defaults to GPL version 2 only.

Individual files contain the following style tags instead of the full license 
text to identify their license:

    SPDX-License-Identifier: GPL-2.0-only
    SPDX-License-Identifier: MIT

This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/