If the inotifier code has an exception, bitbake currently hangs. Catch any
exception and exit if seen. Also check the idle thread is alive and exit
if it disappears. This should stop bitbake hanging if such a situation arises
in future such as this example:
3323260 21:48:31.554468 Running command ['getVariable', 'BBINCLUDELOGS']
Exception in thread Thread-1 (idle_thread):
Traceback (most recent call last):
File "/usr/lib64/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/bb/server/process.py", line 408, in idle_thread
self.cooker.process_inotify_updates()
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/bb/cooker.py", line 256, in process_inotify_updates
n.read_events()
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/pyinotify.py", line 1207, in read_events
if fcntl.ioctl(self._fd, termios.FIONREAD, buf_, 1) == -1:
OSError: [Errno 9] Bad file descriptor
3323260 21:48:32.206995 Command Completed (socket: True)
(Bitbake rev: 358b5b02d5de1ab0f98104c4ec4953e46999b9a5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've seen a couple of cases which bitbake hangs due to an inotifer exception
such as:
3323260 21:48:31.554468 Running command ['getVariable', 'BBINCLUDELOGS']
Exception in thread Thread-1 (idle_thread):
Traceback (most recent call last):
File "/usr/lib64/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/lib64/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/bb/server/process.py", line 408, in idle_thread
self.cooker.process_inotify_updates()
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/bb/cooker.py", line 256, in process_inotify_updates
n.read_events()
File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/bitbake/lib/pyinotify.py", line 1207, in read_events
if fcntl.ioctl(self._fd, termios.FIONREAD, buf_, 1) == -1:
OSError: [Errno 9] Bad file descriptor
3323260 21:48:32.206995 Command Completed (socket: True)
Ensure we don't destory the inotifier when the idle thread is reading is
by holding the lock during setup/teardown.
(Bitbake rev: 8fc5c50c2e23017833f93bcd514d708a14fa4266)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Somewhere along the way this ceased to be a build requirement;
I have verified that the recipe installs the same set
of identical files with and without introspection enabled and
present in sysroot.
(From OE-Core rev: 32283136eaad7631c5253b8da538b747666d2705)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The script is operating on layer repositories, which can and do sometimes contain
several layers. This distinction is important as the script will be tweaked
to write a record of actual layer locations.
(From OE-Core rev: 833965e6001db98039c0aa816ae661232213bcea)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using bb.fatal for a fatal error message is the best practise, switch
the code to match other call sites.
(Bitbake rev: c27e48fa81c2327a4a355a028884ab457cde3ae7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This code appears to be dangerous, it swallows exceptions, turning them into
"handled" versions which then show no errors to the user. This is a pretty
poor user experience and I can't see why this code should be swallowing
such things. Drop the worst bits of code.
(Bitbake rev: 13279044f16f2cf2502ebf39d277415f99bb6c18)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa reported that if you put a syntax error into an imported
module such as qa.py in OE, no error is shown.
Part of the issue appears to be that the catch_parse_error() decorator only
catches certain exceptions and SyntaxError isn't one of them. As far as I can
tell we should remove all the special cases and use the more advanced code
in all cases, not just expansion errors.
I confirmed this now prints a proper error message for a qa.py syntax error.
(Bitbake rev: 2365d891847f8e73d1c4661ddfdab8818ff619dc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* to be used by standalone script scripts/contrib/patchreview.py
as well
(From OE-Core rev: c326efeec8f576200728a44c694becdeab4fe2db)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GLib 1.x is incredibly obsolete and GLib 2.x is built using Meson
not autotools, so we can remove the GLib entries from the site files.
Also fix a few copy/paste typos where glib_ was used incorrectly, for example:
ac_cv_sizeof_ptrdiff_t=${glib_cv_sizeof_ptrdiff_t=4}
The glib_cv_ should be ac_cv_.
(From OE-Core rev: 69e757e6bef8b1037e2f23121774af1d5f6c96df)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's no need to use the internal glib fork for nativesdk builds, as
we can use the proper nativsdk-glib-2.0 recipe.
This means we're shipping less statically linked and obsolete code, and
can also drop two patches to that code which were only needed in
nativesdk builds on Windows.
(From OE-Core rev: f893b70a2db326e82f1de5c47b7da3855fa42439)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changelog:
==========
* Fix: urcu-bp: only teardown call-rcu worker in destructor
* Fix: rculfhash: urcu_die() takes positive error value
* Fix: call_rcu: teardown default call_rcu worker on application exit
* Fix: join worker thread in call_rcu_data_free
* Docs: clarify grace period polling API
* Document grace period polling in rcu-api.md
* Implement poll rcu stress test in rcutorture
* urcu-memb,mb,signal: Implement grace period polling
* Fix: auto-resize hash table destroy deadlock
* Fix building on MSYS2
* rculfhash: Include rculfhash-internal.h from local directory
* Remove "Darwin" from "should also work on list"
* Merge branch 'adah1972-improve-md'
* Add semicolons at the end of function prototypes
* Wrap a file name in backticks
* Wrap command-line options in backticks
* Fix a wrong format
* Wrap URLs in angle brackets
* Fix Markdown issues
* Fix: Always check pthread_create for failures
* Disable signals in URCU background threads
* Fix: futex.h: include headers outside extern C
* Fix: add missing unused attribute to _rcu_dereference
* Fix: change method used by _rcu_dereference to strip type constness
* Fix: remove type constness in URCU_FORCE_CAST's C++ version
* Move extern "C" down in include/urcu/urcu-bp.h
* fix: ifdef linux specific cpu count compat
* Add unit tests for possible_cpus_array_len
* fix: sysconf(_SC_NPROCESSORS_CONF) can be less than max cpu id
* Fix: revise obsolete command in README.md
* Fix: workqueue: remove unused variable "ret"
* Fix: urcu-qsbr: futex wait: handle spurious futex wakeups
* Fix: urcu: futex wait: handle spurious futex wakeups
* Fix: urcu-wait: futex wait: handle spurious futex wakeups
* Fix: defer_rcu: futex wait: handle spurious futex wakeups
* Fix: call_rcu: futex wait: handle spurious futex wakeups
* Fix: workqueue: futex wait: handle spurious futex wakeups
* Fix: Use %lu rather than %ld to print count
* Update ABI definition files
* Bump version current and age
* alpha: allocate membarrier system call number
* Bump version to 0.14.0-pre
* Improved test framework
* rculfhash: introduce cds_lfht_node_init_deleted
* Fix: changelog: v0.13.0 was released in 2021
* cleanup: i386 arch detection
* fix: properly detect 'cmpxchg' on x86-32
* fix: use urcu-tls compat with c++ compiler
* Fix typo
* fix: remove autoconf features default value in help message
* fix: add missing pkgconfig file for memb flavour lib
* Cleanup: Tests: Remove useless pre-C99 compatibility code from tap.h
* Document C99 and C++11 requirement in README.md
* Always use '__thread' for Thread local storage except on MSVC
* Fix: powerpc32: transparent unions alter calling convention
* fix: don't use C++ thread_local on MacOs
* wfcqueue API: implement overloaded wrappers with templates
* wfcqueue: combine C++ API cds_wfcq_head_cast with overloading
* wfstack C++ API: implement overloaded wrappers with templates
* lfstack C++ API: implement overloaded wrappers with templates
* wfstack: combine C++ API cds_wfs_stack_cast with overloading
* lfstack: combine C++ API cds_lfs_stack_cast with overloading
* fix: test_build tap plan
* Test C++ build of list head init
* Fix order of initializers in CDS_LIST_HEAD_INIT
* unit tests: test wfcqueue, wfstack, lfstack empty check functions in C++
* wfcqueue: implement C++ API based on function overloading
* wfstack: implement C++ API based on function overloading
* lfstack: implement C++ API based on function overloading
* Fix tap.h: remove extra semicolon in pass/fail macros
* Add C++ build tests
* Build and run regression and unit tests as C++ programs
* Add --enable-Werror configure switch
* Add `urcu_posix_assert()` as `assert()` replacement
* Rename `urcu_assert()` to `urcu_assert_debug()`
* cleanup: spelling fixes in comments
* Make temporary variable in _rcu_dereference non-const
* (tls-ie2) Fix: x86 and s390: uatomic __hp() macro C++ support
* Fix: x86 and s390: uatomic __hp() macro clang support
* Fix: x86 and s390 uatomic: __hp() macro warning with gcc 11
(From OE-Core rev: fdf6a7f1da7b23a1bbb51198f5702d925e68bf1a)
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>