我正在努力在我的系统上实现一个临时补丁(非持久性),如此处所述(在等待官方发行版内核时):
https://bugzilla.redhat.com/show_bug.cgi?id=1384344#c13
我已经在写入脚本上测试了一个脏副本,以便在我的系统上测试此错误的解决方案,但请注意我收到了语义错误,并且该错误在我的系统上仍然有效:
SuperUser Shell ~/> # stap -g -p 4 fix.stp
semantic error: while resolving probe point: identifier 'syscall' at fix.stp:5:7
source: probe syscall.ptrace { // includes compat ptrace as well
^
semantic error: no match
Pass 2: analysis failed. [man error::pass2]
SuperUser Shell ~/>
用颜色(如果那是你的事):
阅读本文:
我看到一个简短的解释:
语义错误:探测点不匹配,同时解析探测点
foo
无法解析事件/处理函数foo 总之,出于各种原因。当发生此错误 脚本包含事件kernel.function(" blah"),而blah则没有 存在。在某些情况下,错误也可能意味着脚本包含 无效的内核文件名或源行号。
syscall
内核函数无法识别,对吗?感谢您的帮助
PS:对不起,如果这看起来有点像小伙子(我还没有完全理解这个热门修补程序)。
答案 0 :(得分:3)
是的,我已成功在CentOS 7上实施此临时缓解措施。
如该bugzilla条目中的comments之一所述,您需要为内核安装systemtap和debuginfo以使此缓解工作。
给出的命令是:
yum install systemtap yum-utils
debuginfo-install kernel-$(uname -r)
根据你发布的内容,大概你已经有了systemtap,但是你得到的错误表明你需要debuginfo包。上面的第二个命令应该安装正确的东西;您也可以从http://debuginfo.centos.org/手动获取RPM(这是我最终要做的)
顺便说一句,使用systemtap的这种缓解并不是一个真正的解决方案,它只是使概念证明程序之一失败。值得做,但不能替代真正的补丁内核。
我不明白为什么Red Hat和CentOS尚未推出补丁内核软件包,Ubuntu和其他人几天前就已经有了更新。什么是持有?