Skip to content

Commit 8b27c26

Browse files
committed
Warn if editor session manager socket cannot be created.
1 parent 5d3c9ed commit 8b27c26

File tree

3 files changed

+44
-4
lines changed

3 files changed

+44
-4
lines changed

src/node/main.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,9 @@ export const runCodeServer = async (
126126

127127
logger.info(`Using config file ${humanPath(os.homedir(), args.config)}`)
128128
logger.info(`${protocol.toUpperCase()} server listening on ${serverAddress.toString()}`)
129-
logger.info(`Session server listening on ${sessionServerAddress?.toString()}`)
129+
if (sessionServerAddress) {
130+
logger.info(`Session server listening on ${sessionServerAddress.toString()}`)
131+
}
130132

131133
if (args.auth === AuthType.Password) {
132134
logger.info(" - Authentication is enabled")

src/node/vscodeSocket.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,11 @@ export async function makeEditorSessionManagerServer(
7878
})
7979

8080
const server = http.createServer(router)
81-
await listen(server, { socket: codeServerSocketPath })
81+
try {
82+
await listen(server, { socket: codeServerSocketPath })
83+
} catch (e) {
84+
logger.warn(`Could not create socket at ${codeServerSocketPath}`)
85+
}
8286
return server
8387
}
8488

test/unit/node/vscodeSocket.test.ts

+36-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,39 @@
1-
import { EditorSessionManager } from "../../../src/node/vscodeSocket"
2-
import { clean, tmpdir, listenOn } from "../../utils/helpers"
1+
import { logger } from "@coder/logger"
2+
import * as app from "../../../src/node/app"
3+
import { EditorSessionManager, makeEditorSessionManagerServer } from "../../../src/node/vscodeSocket"
4+
import { clean, tmpdir, listenOn, mockLogger } from "../../utils/helpers"
5+
6+
describe("makeEditorSessionManagerServer", () => {
7+
let tmpDirPath: string
8+
9+
const testName = "mesms"
10+
11+
beforeAll(async () => {
12+
jest.clearAllMocks()
13+
mockLogger()
14+
await clean(testName)
15+
})
16+
17+
afterAll(() => {
18+
jest.resetModules()
19+
})
20+
21+
beforeEach(async () => {
22+
tmpDirPath = await tmpdir(testName)
23+
})
24+
25+
it("warns if socket cannot be created", async () => {
26+
jest.spyOn(app, "listen").mockImplementation(() => {
27+
throw new Error()
28+
})
29+
const server = await makeEditorSessionManagerServer(
30+
`${tmpDirPath}/code-server-ipc.sock`,
31+
new EditorSessionManager(),
32+
)
33+
expect(logger.warn).toHaveBeenCalledWith(`Could not create socket at ${tmpDirPath}/code-server-ipc.sock`)
34+
server.close()
35+
})
36+
})
337

438
describe("EditorSessionManager", () => {
539
let tmpDirPath: string

0 commit comments

Comments
 (0)