专栏首页容器计算tcsetpgrp failed重新编译tini

tcsetpgrp failed重新编译tini

1 Overview

在启动 Spark Operator 的时候出现了一个意想不到的问题。

[root@sholdmix01node1 /data/runzhliu/spark]# kubectl log  -n kube-system spark-sparkoperator-86f6c889cd-ggbmc
log is DEPRECATED and will be removed in a future version. Use logs instead.
++ id -u
+ myuid=185
++ id -g
+ mygid=0
+ set +e
++ getent passwd 185
+ uidentry=
+ set -e
+ echo 185
185
0

+ echo 0
+ echo
+ [[ -z '' ]]
+ [[ -w /etc/passwd ]]
+ echo '185:x:185:0:anonymous uid:/opt/spark:/bin/false'
+ exec /usr/bin/tini -s -- /usr/bin/spark-operator
[FATAL tini (9)] tcsetpgrp failed: Permission denied

因为本人在腾讯,这是因为开发环境的 tlinux 的问题,导致 tini 出错了。寻找了很久,也没找到 特别有效的信息,于是查看一下 tini 的源码,看看 这个 错误是如何产生的。

2 tini 源码

大家可以看到这行代码,错误信息就是由他打印的。

// Doing it in the child process avoids a race condition scenario
// if Tini is calling Tini (in which case the grandparent may make the
// parent the foreground process group, and the actual child ends up...
// in the background!)
if (tcsetpgrp(STDIN_FILENO, getpgrp())) {
	if (errno == ENOTTY) {
		PRINT_DEBUG("tcsetpgrp failed: no tty (ok to proceed)");
	} else if (errno == ENXIO) {
		// can occur on lx-branded zones
		PRINT_DEBUG("tcsetpgrp failed: no such device (ok to proceed)");
	} else {
		PRINT_FATAL("tcsetpgrp failed: %s", strerror(errno));
		return 1;
	}
}

可以直接把这段代码注释掉,然后重新编译 cmake . && make

3 Summary

将重新编译后的 tini 替换原来镜像的 tini 即可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kubernetes Scheduler Extender浅析

    Scheduler 组件可以视为一种监视 watche 和将 Pod 分配 assign 到 Node 的特殊类型控制器 controller。在 Kubern...

    runzhliu
  • yum install空间不足

    本地要编一个 ceph-exporter,需要 ceph 的相关库,于是在开发机上 yum install librados2-devel,报错了,因为第一次遇...

    runzhliu
  • Delta Lake 学习笔记(四) - 名词解释

    在了解 Delta Lake 之前,我觉得有必要解释一下经常出现的一些名词,这里收集记录一下。如果跟我一样是菜鸡,可能你也需要看一下…

    runzhliu
  • SAP WebClient UI和business switch相关的逻辑介绍

    Do you know the meaning of these two checkboxes in F2 popup?

    Jerry Wang
  • Golang源码探索----GC的实现原理(2)

    freelarge的类型是mTreap, 调用remove函数会在树里面搜索一个至少npage且在树中的最小的span返回:

    李海彬
  • flink系列(7)-streamGraph

    StreamGraph是flink四层执行图中的第一层图,代码在org.apache.flink.streaming.api.graph包中,第一层graph主...

    yiduwangkai
  • Externalizing Session State for a Spring Boot Application Using Spring-Session

    Spring-session is a very cool new project that aims to provide a simpler way of ...

    九州暮云
  • Optimizing the number of centroids最优化形心数量

    Centroids are difficult to interpret, and it can also be very difficult to deter...

    到不了的都叫做远方
  • 响铃:互联网金融理财端寡头时代来临,到底谁该被剩下来?

      近日,互联网金融又遇大事,百度与中信银行成立直销银行:百信银行,这意味着BAT三大巨头均以不同形式拿到银行牌照。至此互联网金融“井喷式”发展过后,进入了新的...

    曾响铃
  • “星”起之秀:湖南大学成功举办腾讯TAPD“敏捷之星”选拔赛

    ? 导语 腾讯作为国内敏捷实践的先行者和引领者,与全国高校合作,共同助力软件工程人才培养。敏捷开发是大型互联网公司目前以及计划使用的主流软件工程方法,是高校软...

    腾讯高校合作

扫码关注云+社区

领取腾讯云代金券