more aggressive error handling on bind operations, liveness probe improvements

Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
This commit is contained in:
Travis Glenn Hansen 2022-03-06 07:58:26 -07:00
parent a18f8ad8b7
commit 60eefe0248
2 changed files with 29 additions and 6 deletions

View File

@ -339,7 +339,7 @@ logger.info(
(eventType) => {
process.on(eventType, (code) => {
console.log(`running server shutdown, exit code: ${code}`);
let socketPath = args.serverSocket || "";
let socketPath = bindSocket;
socketPath = socketPath.replace(/^unix:\/\//g, "");
if (socketPath && fs.existsSync(socketPath)) {
fs.unlinkSync(socketPath);
@ -358,7 +358,11 @@ if (require.main === module) {
csiServer.bindAsync(
bindAddress,
grpc.ServerCredentials.createInsecure(),
() => {
(err) => {
if (err) {
reject(err);
return;
}
resolve();
}
);
@ -366,11 +370,21 @@ if (require.main === module) {
}
if (bindSocket) {
let socketPath = bindSocket;
socketPath = socketPath.replace(/^unix:\/\//g, "");
if (socketPath && fs.existsSync(socketPath)) {
fs.unlinkSync(socketPath);
}
await new Promise((resolve, reject) => {
csiServer.bindAsync(
bindSocket,
grpc.ServerCredentials.createInsecure(),
() => {
(err) => {
if (err) {
reject(err);
return;
}
resolve();
}
);

View File

@ -2,6 +2,7 @@
const yaml = require("js-yaml");
const fs = require("fs");
const { grpc } = require("../src/utils/grpc");
let options;
const args = require("yargs")
@ -33,8 +34,6 @@ const args = require("yargs")
const package = require("../package.json");
args.version = package.version;
//const grpc = require("grpc");
const grpc = require("grpc-uds");
const protoLoader = require("@grpc/proto-loader");
const csiVersion = process.env.CSI_VERSION || args.csiVersion || "1.2.0";
const PROTO_PATH = __dirname + "/../csi_proto/csi-v" + csiVersion + ".proto";
@ -51,8 +50,18 @@ const packageDefinition = protoLoader.loadSync(PROTO_PATH, {
const protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
const csi = protoDescriptor.csi.v1;
let csiAddress = args.csiAddress;
const tcpRegex = /[^\:]+:[0-9]*$/;
if (
!tcpRegex.test(csiAddress) &&
!csiAddress.toLowerCase().startsWith("unix://")
) {
csiAddress = "unix://" + csiAddress;
}
const clientIdentity = new csi.Identity(
args.csiAddress,
csiAddress,
grpc.credentials.createInsecure()
);