Strider-CD / strider

Open Source Continuous Integration & Deployment Server
http://strider-cd.github.io/
4.6k stars 432 forks source link

Error's not reported to web interface #987

Closed samuelcolvin closed 4 years ago

samuelcolvin commented 8 years ago

I've just found strider and was very excited, however after an hour or so trying to get it running locally (with docker using https://github.com/macropin/docker-strider) I'm pretty frustrated.

The primary problem I've found is that errors occurring in strider are not displayed in any way to the user in the web interface. Not even "something's gone wrong", surely as an admin I should get a stracktrace?

For example, I've been trying to build the public project https://github.com/samuelcolvin/arq as an experiment. I've tried with both the python plugin and custom. With both plugins I've got errors:

16-09-06T14:05:54.693Z - info: [runner:simple-runner] Queued new job. Project: samuelcolvin/arq Job ID: 57cecd42ca256c530055b4e4
2016-09-06T14:05:54.762Z - info: [runner:simple-runner] Job started. Project: samuelcolvin/arq Job ID: 57cecd42ca256c530055b4e4
2016-09-06T14:05:54.763Z - info: [runner:simple-runner] Found a disabled plugin: python Project: samuelcolvin/arq Job ID: 57cecd42ca256c530055b4e4
/data/node_modules/step/lib/step.js:39
        throw arguments[0];
        ^

TypeError: Cannot set property 'errored' of undefined
    at /data/node_modules/strider-simple-runner/lib/index.js:375:29
    at Object.Job.done (/data/node_modules/strider-runner-core/lib/job.js:145:5)
    at Object.Job.phaseDone (/data/node_modules/strider-runner-core/lib/job.js:391:21)
    at /data/node_modules/strider-runner-core/node_modules/async/lib/async.js:232:13
    at /data/node_modules/strider-runner-core/node_modules/async/lib/async.js:136:21
    at /data/node_modules/strider-runner-core/node_modules/async/lib/async.js:229:17
    at /data/node_modules/strider-runner-core/node_modules/async/lib/async.js:556:34
    at updateCache (/data/node_modules/strider-git/worker.js:159:14)
    at /data/node_modules/strider-git/lib/index.js:126:5
    at Function.<anonymous> (/data/node_modules/gitane/index.js:173:7)
    at next (/data/node_modules/step/lib/step.js:51:23)
    at ChildProcess.<anonymous> (/data/node_modules/gitane/index.js:159:9)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:852:16)
    at Socket.<anonymous> (internal/child_process.js:323:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:492:12)
83 died 1 null
114 forked
2016-09-06T14:05:57.171Z - info: RUNNER INIT
2016-09-06T14:06:05.539Z - info: Fetching projects...
2016-09-06T14:06:05.540Z - info: [ null ]
2016-09-06T14:06:05.605Z - info: Saved repo cache
2016-09-06T14:06:29.953Z - info: GET [ecosystem]/plugins.yml
2016-09-06T14:06:40.123Z - info: [runner:simple-runner] Queued new job. Project: samuelcolvin/arq Job ID: 57cecd6fa290b27200889374
2016-09-06T14:06:40.169Z - info: [runner:simple-runner] Job started. Project: samuelcolvin/arq Job ID: 57cecd6fa290b27200889374
/opt/strider/lib/utils/index.js:139
function defaultVal(val) {
                   ^

RangeError: Maximum call stack size exceeded
    at defaultVal (/opt/strider/lib/utils/index.js:139:20)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
    at defaultSchema (/opt/strider/lib/utils/index.js:157:17)
    at defaultVal (/opt/strider/lib/utils/index.js:150:39)
114 died 1 null
126 forked
2016-09-06T14:07:53.986Z - info: RUNNER INIT

(and numerous more)

None of these were displayed in the UI the build screen just hung.

I'm also not clear on how I would isolate services (eg. dbs) wrt separate builds and the configure > plugins page seems to have a UI bug where I can't remove a plugin once I've added it.

I'm really keen to get self hosted CI working, however with fundamental problems like error reporting not working I'm not particularly keen to invest more time in strider.

oliversalzburg commented 8 years ago

Some errors are so critical that it is not possible to communicate them to the UI. That being said, this could be improved.

Some of the errors you're encountering are probably fixed in the latest version, which is pending release. Please pull the latest sources from master and try again. Set DEBUG to strider* to capture all relevant output. If there are issues with plugins: https://github.com/Strider-CD/strider/wiki/Debugging

Please also take note of https://github.com/Strider-CD/strider/wiki/Advanced-Configuration