Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server Crash: Unhandled exception in events.js #127

Closed
ph1l opened this issue Nov 24, 2016 · 7 comments
Closed

Server Crash: Unhandled exception in events.js #127

ph1l opened this issue Nov 24, 2016 · 7 comments

Comments

@ph1l
Copy link
Contributor

ph1l commented Nov 24, 2016

server crashes during portscan (nmap hostname.domain):

pi@freeboard:~/signalk-server-node $ DEBUG=* ./bin/signalk-server -s ./settings/freeboard-serial.json
  express:application set "x-powered-by" to true +0ms
  express:application set "etag" to 'weak' +22ms
  express:application set "etag fn" to [Function: wetag] +8ms
  express:application set "env" to 'development' +1ms
  express:application set "query parser" to 'extended' +1ms
  express:application set "query parser fn" to [Function: parseExtendedQueryString] +1ms
  express:application set "subdomain offset" to 2 +1ms
  express:application set "trust proxy" to false +1ms
  express:application set "trust proxy fn" to [Function: trustNone] +2ms
  express:application booting in development mode +1ms
  express:application set "view" to [Function: View] +0ms
  express:application set "views" to '/home/pi/signalk-server-node/views' +1ms
  express:application set "jsonp callback name" to 'callback' +1ms
  express:router use / query +22ms
  express:router:layer new / +3ms
  express:router use / expressInit +3ms
  express:router:layer new / +1ms
  express:router use / corsMiddleware +1ms
  express:router:layer new / +0ms
  signalk-server:config:config Config - appPath: /home/pi/signalk-server-node/ +3ms
  signalk-server:config:config Config - port: 3000 +0ms
  express:router use / errorHandler +72ms
  express:router:layer new / +0ms
  express:router use / logger +9ms
  express:router:layer new / +0ms
  signalk-server:config:cli Using settings file: /home/pi/signalk-server-node/settings/freeboard-serial.json +16ms
  signalk-server:config:cli UUID: urn:mrn:signalk:uuid:REDACTED +2ms
  express:router use / jsonParser +144ms
  express:router:layer new / +0ms
  express:router:route new / +1ms
  express:router:layer new / +1ms
  express:router:route get / +1ms
  express:router:layer new / +1ms
  signalk-server Using certificate ssl-key.pem and ssl-cert.pem in ./settings/ +10ms
  signalk-server Starting server to serve both http and https +2ms
  signalk-server ID type: uuid +55ms
  signalk-server ID: urn:mrn:signalk:uuid:REDACTED +0ms
  signalk-server Interfaces config:{"nmea-tcp":false} +1ms
  signalk-server Loading interface 'bower' +48ms
  signalk-server Starting interface 'bower' +1ms
  express:router use /bower_components serveStatic +2ms
  express:router:layer new /bower_components +0ms
  express:router use / serveStatic +1ms
  express:router:layer new / +0ms
  express:router:route new /apps +1ms
  express:router:layer new /apps +1ms
  express:router:route get /apps +0ms
  express:router:layer new / +1ms
  signalk-server Not loading interface 'nmea-tcp' because of configuration +0ms
  signalk-server Loading interface 'plugins' +0ms
  signalk-server Starting interface 'plugins' +1ms
  signalk:interfaces:plugins Registering plugin marinetraffic-reporter +50ms
  signalk:interfaces:plugins Could not find options for plugin marinetrafficreporter, returning empty options +20ms
  express:router:route new / +1ms
  express:router:layer new / +0ms
  express:router:route get / +0ms
  express:router:layer new / +1ms
  express:router:route new /config +0ms
  express:router:layer new /config +0ms
  express:router:route post /config +0ms
  express:router:layer new / +1ms
  express:router use /plugins/marinetrafficreporter router +0ms
  express:router:layer new /plugins/marinetrafficreporter +0ms
  signalk:interfaces:plugins Registering plugin set-system-time +21ms
  express:router:route new / +6ms
  express:router:layer new / +0ms
  express:router:route get / +0ms
  express:router:layer new / +1ms
  express:router:route new /config +0ms
  express:router:layer new /config +0ms
  express:router:route post /config +0ms
  express:router:layer new / +0ms
  express:router use /plugins/set-system-time router +1ms
  express:router:layer new /plugins/set-system-time +0ms
  signalk:interfaces:plugins Registering plugin signalk-to-nmea0183 +7ms
  signalk:interfaces:plugins Could not find options for plugin sk-to-nmea0183, returning empty options +9ms
  express:router:route new / +0ms
  express:router:layer new / +1ms
  express:router:route get / +0ms
  express:router:layer new / +0ms
  express:router:route new /config +0ms
  express:router:layer new /config +0ms
  express:router:route post /config +1ms
  express:router:layer new / +0ms
  express:router use /plugins/sk-to-nmea0183 router +0ms
  express:router:layer new /plugins/sk-to-nmea0183 +0ms
  signalk:interfaces:plugins Registering plugin signalk-zones +1ms
  signalk:interfaces:plugins Could not find options for plugin zones-edit, returning empty options +21ms
  express:router:route new / +1ms
  express:router:layer new / +0ms
  express:router:route get / +0ms
  express:router:layer new / +0ms
  express:router:route new /config +1ms
  express:router:layer new /config +0ms
  express:router:route post /config +0ms
  express:router:layer new / +0ms
  express:router use /plugins/zones-edit router +0ms
  express:router:layer new /plugins/zones-edit +1ms
  express:router use /plugins/configure serveStatic +10ms
  express:router:layer new /plugins/configure +0ms
  express:router:route new /plugins +1ms
  express:router:layer new /plugins +0ms
  express:router:route get /plugins +0ms
  express:router:layer new / +0ms
  signalk-server Loading interface 'rest' +1ms
  signalk-server Starting interface 'rest' +1ms
  express:router use / serveStatic +2ms
  express:router:layer new / +0ms
  express:router:route new /signalk/v1/api/* +0ms
  express:router:layer new /signalk/v1/api/* +0ms
  express:router:route get /signalk/v1/api/* +2ms
  express:router:layer new / +0ms
  express:router:route new /signalk +0ms
  express:router:layer new /signalk +0ms
  express:router:route get /signalk +1ms
  express:router:layer new / +0ms
  signalk-server Loading interface 'tcp' +0ms
  signalk-server Starting interface 'tcp' +2ms
  signalk-server:interfaces:tcp Starting tcp interface +0ms
  signalk-server:interfaces:tcp Tcp delta server listening on 5555 +16ms
  signalk-server Loading interface 'ws' +0ms
  signalk-server Starting interface 'ws' +168ms
  signalk-server:interfaces:ws Starting Primus/WS interface +2ms
primus transformer `json` is a string, attempting to resolve location
primus transformer `websockets` is a string, attempting to resolve location
primus:transformer found existing request handlers on the HTTP server, moving Primus as first
primus automatically configuring middleware `forwarded`
primus automatically configuring middleware `cors`
primus automatically configuring middleware `primus.js`
primus automatically configuring middleware `spec`
primus automatically configuring middleware `authorization`
  signalk-server Starting interface 'mDNS' +108ms
  signalk-server Could not start mDNS:Error: Module version mismatch. Expected 48, got 14. +17ms
  signalk:multiplexer Using provided UUID: urn:mrn:signalk:uuid:REDACTED +404ms
signalk-server running at 0.0.0.0:3000

events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at exports._errnoException (util.js:1026:11)
    at TCP.onread (net.js:569:26)

./settings/freeboard-serial.json:

{
        "hostname": "REDACTED",
        "vessel": {
                "name"  : "REDACTED",
                "mmsi"  : "REDACTED",
                "uuid"  : "REDACTED",

                "dimensions": {
                        "length": 11.1,
                        "width": 3.48,
                        "mast": 13.11,
                        "depthTransducer": 0.5,
                        "keel": 1.37 
                }
        },

        "interfaces": {
                "nmea-tcp": false
        },
  "pipedProviders": [{
    "id": "FreeboardPLC",
    "pipeElements": [
       { 
         "type": "providers/serialport",
         "options": {
           "device": "/dev/ttyACM0",
           "baudrate": 38400
         },
         "optionMappings": [
           {
             "fromAppProperty": "argv.nmeadevice",
             "toOption": "device"
           },

           {
             "fromAppProperty": "argv.nmeabaudrate",
             "toOption": "baudrate"
           }
         ]
       },
       {
          "type": "providers/nmea0183-signalk",
          "optionMappings": [
            {
             "fromAppProperty": "selfId",
             "toOption": "selfId"
            },
            {
             "fromAppProperty": "selfType",
             "toOption": "selfType"
            }
          ]
       }               
    ]
  }]
}
@ph1l
Copy link
Contributor Author

ph1l commented Nov 24, 2016

Related to: nodejs/node/issues/3595 ?

@ph1l
Copy link
Contributor Author

ph1l commented Nov 24, 2016

pi@freeboard:~/signalk-server-node $ node --version
v6.9.1

@tkurki
Copy link
Member

tkurki commented Nov 26, 2016

Thanks for bringing this up! Don't want to have the server crash like that.

We need to listen to errors on the tcp connections. Plain Express deals with this, but apparently httpolygot doesn't.

This was referenced Nov 26, 2016
@ph1l
Copy link
Contributor Author

ph1l commented Nov 26, 2016

Thanks for the fix!

@ph1l
Copy link
Contributor Author

ph1l commented Nov 26, 2016

Fix works for me:


  signalk-server:interfaces:tcp Connected:0 undefined:undefined +6s
  signalk-server:interfaces:tcp Error:Error: write EPIPE 0 undefined:undefined +27ms
  signalk-server:interfaces:tcp Close:true 0 undefined:undefined +6ms

@hanu-jayaram
Copy link

hanu-jayaram commented Oct 13, 2017

I ran into another variant here:

events.js:182
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at _errnoException (util.js:1026:11)
    at Pipe.onread (net.js:606:25)

This is on node 8.5.0, could it be related to the above fix? Appreciate any pointers, thanks much.

@sbender9
Copy link
Member

You get this when doing a port scan?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants