OpenEmbedded "poky" with some sysmocom specific modifications. Mostly used only up to sysmocom release 201310, but the "pyro" branch is still used for 201705
Go to file
Jason Wessel da6260f95f bitbake: 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.

(Bitbake rev: 972bc43e6d5b1207b944b3baa8f9805adb35dda7)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-28 00:25:56 +01:00
bitbake bitbake: serv.py: Fix hang when spawned dynamically with bitbake 2013-08-28 00:25:56 +01:00
documentation ref-manual, mega-manual: Updated figure for conf/compile details 2013-08-26 11:06:31 +01:00
meta linux-yocto-rt: add qemumips and qemuppc to COMPATIBLE_MACHINES 2013-08-28 00:25:56 +01:00
meta-hob meta-*/conf/layer.conf: tweak BBFILES comment 2013-04-10 09:23:17 +01:00
meta-skeleton hello-mod: Add comment for kernel module package naming 2013-08-20 15:31:24 +01:00
meta-yocto local.conf.sample: Replace atom-pc with genericx86 2013-08-27 10:55:08 +01:00
meta-yocto-bsp layer.conf: Bumping LAYERVERSION_yoctobsp to account for atom-pc 2013-08-27 10:55:08 +01:00
scripts python-2.7-manifest: Add missing python-ctypes dependency to python-multiprocessing 2013-08-26 12:15:49 +01:00
.gitignore gitignore: only ignore meta- directories 2013-01-15 08:12:01 +00:00
LICENSE LICENSE: Clarify the license recipe source code is under 2010-06-10 10:13:18 +01:00
README README: Clarify where to send patches 2012-08-22 14:05:00 +01:00
README.hardware README.hardware: Replace atom-pc with genericx86 2013-08-27 10:55:08 +01:00
oe-init-build-env oe-init-build-env: Make it use the correct $OEROOT with zsh 2013-04-05 23:05:34 +01:00
oe-init-build-env-memres Add memory resident bitbake script 2013-08-26 11:29:44 +01:00

README

Poky
====

Poky is an integration of various components to form a complete prepackaged
build system and development environment. It features support for building
customised embedded device style images. There are reference demo images
featuring a X11/Matchbox/GTK themed UI called Sato. The system supports
cross-architecture application development using QEMU emulation and a
standalone toolchain and SDK with IDE integration.

Additional information on the specifics of hardware that Poky supports
is available in README.hardware. Further hardware support can easily be added
in the form of layers which extend the systems capabilities in a modular way.

As an integration layer Poky consists of several upstream projects such as 
BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information 
e.g. for the hardware support. Poky is in turn a component of the Yocto Project.

The Yocto Project has extensive documentation about the system including a 
reference manual which can be found at:
    http://yoctoproject.org/documentation

OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with
DISTRO = "") and contains only emulated machine support.

For information about OpenEmbedded, see the OpenEmbedded website:
    http://www.openembedded.org/

Where to Send Patches
=====================

As Poky is an integration repository, patches against the various components
should be sent to their respective upstreams.

bitbake:
    bitbake-devel@lists.openembedded.org

meta-yocto:
    poky@yoctoproject.org

Most everything else should be sent to the OpenEmbedded Core mailing list.  If
in doubt, check the oe-core git repository for the content you intend to modify.
Before sending, be sure the patches apply cleanly to the current oe-core git
repository.
    openembedded-core@lists.openembedded.org

Note: The scripts directory should be treated with extra care as it is a mix
      of oe-core and poky-specific files.