运维:记录因grpc需求而引发的glibc故障
Posted 云服务圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维:记录因grpc需求而引发的glibc故障相关的知识,希望对你有一定的参考价值。
背景需求:
准备使用grpc作为服务组间的服务通信协议
问题发生:
本地开发采用mac开发,依赖如下:
<dependency>
<groupId>org.lognet</groupId>
<artifactId>grpc-spring-boot-starter</artifactId>
<version>2.4.3</version>
</dependency>
在采用grpc 相关组件对 protobuf 文件进行编译
<build>
<extensions>
<!-- os-maven-plugin -->
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>${os-maven-plugin.version}</version>
</extension>
</extensions>
<plugins>
<!-- spring-boot-maven-plugin -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- protobuf-maven-plugin -->
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>${protobuf-maven-plugin.version}</version>
<configuration>
<!--默认值-->
<protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>
<!--默认值-->
<!--<outputDirectory>${project.build.directory}/generated-sources/protobuf/java</outputDirectory>-->
<outputDirectory>${project.build.sourceDirectory}</outputDirectory>
<!--设置是否在生成java文件之前清空outputDirectory的文件,默认值为true,设置为false时也会覆盖同名文件-->
<clearOutputDirectory>false</clearOutputDirectory>
<!--默认值-->
<temporaryProtoFileDirectory>${project.build.directory}/protoc-dependencies</temporaryProtoFileDirectory>
<!--更多配置信息可以查看https://www.xolstice.org/protobuf-maven-plugin/compile-mojo.html-->
<protocArtifact>com.google.protobuf:protoc:3.5.1-1:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.11.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
本地mac 可以编译。但是当使用jenkins 进行构建时
报错。
提示glibc版本有问题,然后打算升级,glibc.结果把/lib64/libc.so.6 给替换了,造成Linux ssh无法远程登录,bash命令无法执行。
错误出现如下状态:
最后解决:
将该快磁盘,挂载在其他系统(ISO盘)启动,使其启动。然后将原来软连接删除。
手动创建,ln -s /lib64/libc-2.12.so /lib64/libc.so.6
参考:
https://unix.stackexchange.com/questions/179233/error-while-loading-shared-libraries-libc-so-6-cannot-open-shared-object-file
http://blog.51cto.com/asd9577/1931442
http://blog.51cto.com/314258/1704852
https://blog.csdn.net/zxyuying/article/details/44085753
https://help.aliyun.com/knowledge_detail/41478.html#%E9%80%9A%E8%BF%87%E5%9B%9E%E6%BB%9A%E7%A3%81%E7%9B%98%E6%81%A2%E5%A4%8D
以上是关于运维:记录因grpc需求而引发的glibc故障的主要内容,如果未能解决你的问题,请参考以下文章