hackmdio / hackmdio/codimd

CodiMD fails to start with existing unix socket file

Offen
#1,024 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug help wanted
Vorherrschende Sprache
JavaScript
Sterne
10.1k
Forks
1.1k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start in app.js around startListen, near line 221, and reproduce the failure by starting CodiMD again with /run/codimd/socket still present. Trace the shutdown and listen handling; done means a second startup handles the existing socket as requested without the EADDRINUSE failure.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, node.js
Bereich
backend, networking
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.