tableflip / guvnor

A node process manager that isn't spanners all the way down
MIT License
430 stars 37 forks source link

guv daemon died #64

Open randomsock opened 9 years ago

randomsock commented 9 years ago

Just starting an app in the UI and it lost contact with guv-web. When I checked my terminal, the whole guv daemon had gone.

This was the last entry in /var/log/guvnor/guvnor.error.log (pretty printed):

{
    "date": "Fri Apr 17 2015 19:31:50 GMT+0100 (BST)",
    "process": {
        "pid": 21376,
        "uid": 0,
        "gid": 5202,
        "cwd": "/var/run/guvnor",
        "execPath": "/usr/local/bin/node",
        "version": "v0.10.36",
        "argv": [
            "/usr/local/bin/node",
            "/usr/local/lib/node_modules/guvnor/lib/daemon/index.js"
        ],
        "memoryUsage": {
            "rss": 68931584,
            "heapTotal": 54096128,
            "heapUsed": 28516688
        }
    },
    "os": {
        "loadavg": [
            0.857421875,
            0.38671875,
            0.35986328125
        ],
        "uptime": 19470117.857272524
    },
    "trace": [
        {
            "column": 15,
            "file": "/usr/local/lib/node_modules/guvnor/node_modules/boss-dnode/index.js",
            "function": "D.connect",
            "line": 64,
            "method": "connect",
            "native": false
        },
        {
            "column": 16,
            "file": "/usr/local/lib/node_modules/guvnor/lib/common/ManagedProcess.js",
            "function": "ManagedProcess.connect",
            "line": 153,
            "method": "connect",
            "native": false
        },
        {
            "column": 10,
            "file": "/usr/local/lib/node_modules/guvnor/lib/daemon/service/ProcessService.js",
            "function": "",
            "line": 412,
            "method": null,
            "native": false
        },
        {
            "column": 16,
            "file": "/usr/local/lib/node_modules/guvnor/node_modules/wantsit/lib/Container.js",
            "function": "",
            "line": 147,
            "method": null,
            "native": false
        },
        {
            "column": 16,
            "file": "events.js",
            "function": "g",
            "line": 180,
            "method": null,
            "native": false
        },
        {
            "column": 17,
            "file": "events.js",
            "function": "emit",
            "line": 98,
            "method": null,
            "native": false
        },
        {
            "column": 15,
            "file": "timers.js",
            "function": "processImmediate [as _immediateCallback]",
            "line": 354,
            "method": null,
            "native": false
        }
    ],
    "stack": [
        "Error: no port or unix path given",
        "    at D.connect (/usr/local/lib/node_modules/guvnor/node_modules/boss-dnode/index.js:64:15)",
        "    at ManagedProcess.connect (/usr/local/lib/node_modules/guvnor/lib/common/ManagedProcess.js:153:16)",
        "    at null.<anonymous> (/usr/local/lib/node_modules/guvnor/lib/daemon/service/ProcessService.js:412:10)",
        "    at null.<anonymous> (/usr/local/lib/node_modules/guvnor/node_modules/wantsit/lib/Container.js:147:16)",
        "    at g (events.js:180:16)",
        "    at emit (events.js:98:17)",
        "    at processImmediate [as _immediateCallback] (timers.js:354:15)"
    ],
    "level": "error",
    "message": "uncaughtException: no port or unix path given",
    "timestamp": "2015-04-17T18:31:50.466Z"
}
randomsock commented 9 years ago

v3.5.7 btw

randomsock commented 9 years ago

Seems solid, every time I tried to start an app from the UI. Same app will start ok from the command line.

I've completely cleared down everything I can think of:

[root ~]# guv kill
[root ~]# npm remove -g guvnor
unbuild guvnor@3.5.7
[root ~]# rm -f /etc/guvnor/apps.json
[root ~]# rm -f /etc/guvnor/processes.json
[root ~]# rm -rf /usr/local/guvnor/*
[root ~]# ps -efH | grep guv
root     27803 27592  0 21:56 pts/2    00:00:00                 grep guv
[root ~]# npm install -g guvnor --unsafe-perm
...
[root ~]# guv
No running processes
[root ~]# guv --version
3.5.7

Then started guv web from my own user, installed an app with the UI, tried to start it and guv daemon dies. Weird that the same works fine from the console, so at least it's not a blocker at the moment.

achingbrain commented 9 years ago

Not quite sure what could cause this, I've released a new version that wraps the dnode invocation in a try/catch block so it should at least stop the daemon process from crashing while I dig a little deeper.