hackmdio / hackmdio/codimd

CodiMD fails to start with existing unix socket file

Abierto
#1,024 4 comentarios 0 reacciones 0 asignados Ver en GitHub
bug help wanted
Lenguaje dominante
JavaScript
Estrellas
10.1k
Forks
1.1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

When starting CodiMD the first time, it creates the Unix socket (file), but leaves it on shutdown. The second time I start CodiMD, it fails with `message=listen EADDRINUSE /run/codimd/socket, stack=Error: listen EADDRINUSE /run/codimd/socket`. It would be helpful when CodiMD could use an existing socket, because I could set the permissions of the socket and change ownership, before starting CodiMD.

```
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1350:19)
at listenInCluster (net.js:1408:12)
at Server.listen (net.js:1503:5)
at startListen (/srv/www/n.jo-so.de/app.js:221:12)
at /srv/www/n.jo-so.de/app.js:234:47
at /srv/www/n.jo-so.de/lib/models/revision.js:167:20
at Model. (/srv/www/n.jo-so.de/lib/models/revision.js:200:41)
at Model.tryCatcher (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/promise.js:694:18)
at _drainQueueStep (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/async.js:138:12)
at _drainQueue (/srv/www/n.jo-so.de/node_modules/bluebird/js/release/async.js:131:9), code=EADDRINUSE, errno=EADDRINUSE, syscall=listen, address=/run/codimd/socket, port=-1
```

@ahihi, please have a look.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en app.js, alrededor de startListen, cerca de la línea 221, y reproduce el fallo iniciando CodiMD de nuevo mientras /run/codimd/socket siga presente. Sigue el apagado y el manejo de listen; estará terminado cuando un segundo inicio gestione el socket existente según lo solicitado sin el fallo EADDRINUSE.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript, node.js
Área
backend, networking
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.