Deamon crash on parser error
a-schild opened this issue · comments
André Schild commented
When the ldap server receives unknown/unhandled packets/requests, the daemon might abort with a fatal error und the ldap service is dead.
Here the stack trace ejected when the daemon did stop.
I don't yet know what request was incomming to the server
Mar 13 11:47:05 rc19b0502 ctldap[9779]: events.js:174
Mar 13 11:47:05 rc19b0502 ctldap[9779]: throw er; // Unhandled 'error' event
Mar 13 11:47:05 rc19b0502 ctldap[9779]: ^
Mar 13 11:47:05 rc19b0502 ctldap[9779]: VError: Parser error for xx.xxx.xxx.xx:1287: Parser error for xx.xxx.xxx.xx:1287: Op 0x?? not supported
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Parser.<anonymous> (/opt/ctldap-ms-master/node_modules/ldapjs/lib/server.js:442:26)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Parser.emit (events.js:189:13)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Parser.write (/opt/ctldap-ms-master/node_modules/ldapjs/lib/messages/parser.js:107:10)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Socket.<anonymous> (/opt/ctldap-ms-master/node_modules/ldapjs/lib/server.js:460:16)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Socket.emit (events.js:189:13)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at addChunk (_stream_readable.js:284:12)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at readableAddChunk (_stream_readable.js:265:11)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Socket.Readable.push (_stream_readable.js:220:10)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: Emitted 'error' event at:
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Parser.<anonymous> (/opt/ctldap-ms-master/node_modules/ldapjs/lib/server.js:442:12)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at Parser.emit (events.js:189:13)
Mar 13 11:47:05 rc19b0502 ctldap[9779]: [... lines matching original stack trace ...]
Mar 13 11:47:05 rc19b0502 ctldap[9779]: at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
milux commented
This is a low priority issue, because if you need more resilience you can easily achieve this in a number of ways, among others: Docker restart policy (unless-stopped, always), watchdog services, systemd service definition...