[bitbake-devel] [PATCH] bitbake: Add pyinotify to lib/

Robert Yang liezhi.yang at windriver.com
Mon Jan 19 08:10:30 UTC 2015


Resend since the previous message body is too big.

Hi RP,

The inotify watcher numbers need less than "sysctl -n fs.inotify.max_user_watches",
otherwise we may get the errors like:
WatchManagerError: add_watch: cannot watch /path/to/build/conf/bblayers.conf 
WD=-1, Errno=No space left on device (ENOSPC),

It's easy to meet this error if we run many builds at the same time,
On Ubuntu Ubuntu 12.04.3 x86_64, the default value is "8192".

Can we add some counters in cooker.py (or other files) to check the
value and print ERRORS/WARNINGS, please ? Ther current "ENOSPC" errors
is not easy to debug.

I'd like to work on it if that make sense.

// Robert

On 01/13/2015 10:11 PM, Richard Purdie wrote:
> We need inotify support within bitbake and pyinotify provides the best
> mechanism to add this. We have a few options:
>
> a) Depend on pyinotify from the system
> b) Add in our own copy
> c) Only use pyinotify in cases like the memory resident server
>
> For a), it would mean adding in dependencies, updating documentation and
> generally creating churn for users as well as having implications for things
> like the build-appliance recipe.
>
> It turns out that glibc has the C functionality we need from version 2.4
> onwards (2006) and that we just need a single python file for b), there
> is no binary module needed. We therefore add in a copy of pyinotify 0.9.5
> into the tree meaning we can depend on it simply and unconditionally.
>
> c) is unattractive as we need fewer possible code paths, not more.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
>
> diff --git a/bitbake/lib/pyinotify.py b/bitbake/lib/pyinotify.py
> new file mode 100644
> index 0000000..2dae002
> --- /dev/null
> +++ b/bitbake/lib/pyinotify.py
> @@ -0,0 +1,2416 @@
> +#!/usr/bin/env python



More information about the bitbake-devel mailing list