踩到 kernel overlay fs 的一个坑

转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp

作者联系方式:YU TAO

关键字: yocto, docker, container, gobject-introspection, "Invalid argument", cap_inode_getsecurity, d_find_any_alias(), d_find_alias()

近期遇到一个 kernel overlay fs 文件系统的一个问题,这里将相关内容做一个记录。

你如果使用 docker container 容器来编译 yocto,如ubuntu 16.04, kernel 4.15, 可能会遇到相同的问题,提示 “Invalid argument” 错误:

./g-ir-compiler: line 117: tmp/work/x86_64-linux/gobject-introspection-native/1.54.1-r0/build/.libs/lt-g-ir-compiler: Invalid argument

而且还是个很随机出现的问题,但出错时,始终为同一个地方 lt-g-ir-compiler。

网络上也有人报告类似问题:

https://www.spinics.net/lists/linux-unionfs/msg05363.html

[13181.958681] Invalid argument reading file caps for
/vol/mnt/m/build/tmp/work/x86_64-linux/gobject-introspection-native/1.50.0-r0/build/.libs/lt-g-ir-compiler

还好,已经得到了解决。

Author: Eddie.Horng 
Date:   Fri Jul 20 15:30:00 2018 +0800
    cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()
    commit 355139a8dba446cc11a424cddbf7afebc3041ba1 upstream.

patch:

https://github.com/torvalds/linux/commit/355139a8dba446cc11a424cddbf7afebc3041ba1

从 4.18.7 开始进入了 kernel

https://elixir.bootlin.com/linux/v4.18.7/source/security/commoncap.c#L391

4.19+ 也有了。

所以解决办法就是升级 kernel 到 4.19。

你可能感兴趣的:(01.,building,system,31.,流媒体协议,30.,50.,linux/uclinux)