makeomatic / makeomatic/mservice-calendar
crash on specific input
- Dominant language
- JavaScript
- Stars
- 2
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
```
{"name":"mservice","hostname":"185ebcd46c77","pid":1,"level":50,"route":"calendar.event.create","params":{"token":"","event":{"title":"Test show","description":"A great show","tags":["news","60s","blues"],"hosts":["Bob"],"duration":30,"rrule":"DTSTART=20161208T070000Z;UNTIL=20170601T060000Z;WKST=SU;BYDAY=TH","owner":"john.ganschow@outlook.com"}},"method":"post","transport":"http","headers":{"host":"api.radiofx.co","accept-encoding":"gzip","cf-ipcountry":"US","x-forwarded-for":"2601:0240:d200:ef37:dcbd:8515:0c25:647c, 172.68.59.36","cf-ray":"30e16a2e2b8a561f-ORD","content-length":"434","x-forwarded-proto":"https, https","cf-visitor":"{\"scheme\":\"https\"}","accept":"application/json","origin":"https://admin.radiofx.co","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36","content-type":"application/json;charset=UTF-8","referer":"https://admin.radiofx.co/dashboard/schedule","accept-language":"en-US,en;q=0.8","cf-pseudo-ipv4":"252.82.240.0","cf-connecting-ip":"2601:0240:d200:ef37:dcbd:8515:0c25:647c","connection":"close"},"query":{},"latency":25.303,"msg":"Error performing operation TypeError: Cannot read property 'call' of undefined","time":"2016-12-08T15:57:44.178Z","v":0}
{"name":"mservice","hostname":"185ebcd46c77","pid":1,"level":60,"msg":"unexpected error TypeError: Cannot read property 'call' of undefined\n at RRule._iter (/src/node_modules/rrule/lib/rrule.js:1097:28)\n at RRule.all (/src/node_modules/rrule/lib/rrule.js:831:31)\n at Function.generateSpans (/src/lib/services/storage.js:30:32)\n at knex.transacting.returning.insert.spread (/src/lib/services/storage.js:76:31)\n at bound (domain.js:280:14)\n at runBound (domain.js:293:12)\n at tryCatcher (/src/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/src/node_modules/bluebird/js/release/promise.js:507:35)\n at Promise._settlePromise (/src/node_modules/bluebird/js/release/promise.js:567:18)\n at Promise._settlePromise0 (/src/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/src/node_modules/bluebird/js/release/promise.js:691:18)\n at Promise._fulfill (/src/node_modules/bluebird/js/release/promise.js:636:18)\n at PromiseArray._resolve (/src/node_modules/bluebird/js/release/promise_array.js:125:19)\n at PromiseArray._promiseFulfilled (/src/node_modules/bluebird/js/release/promise_array.js:143:14)\n at PromiseArray._iterate (/src/node_modules/bluebird/js/release/promise_array.js:113:31)\n at PromiseArray.init [as _init] (/src/node_modules/bluebird/js/release/promise_array.js:77:10)","time":"2016-12-08T15:57:44.178Z","v":0}
--
{"name":"mservice","hostname":"185ebcd46c77","pid":1,"level":50,"route":"calendar.event.create","params":{"token":"","event":{"title":"Test show","description":"A great show","tags":["news","60s","blues"],"hosts":[],"duration":30,"rrule":"DTSTART=20161208T070000Z;UNTIL=20170601T060000Z;WKST=SU;BYDAY=TH","owner":"john.ganschow@outlook.com"}},"method":"post","transport":"http","headers":{"host":"api.radiofx.co","accept-encoding":"gzip","cf-ipcountry":"US","x-forwarded-for":"2601:0240:d200:ef37:dcbd:8515:0c25:647c, 172.68.59.36","cf-ray":"30e16a9ded45561f-ORD","content-length":"429","x-forwarded-proto":"https, https","cf-visitor":"{\"scheme\":\"https\"}","accept":"application/json","origin":"https://admin.radiofx.co","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36","content-type":"application/json;charset=UTF-8","referer":"https://admin.radiofx.co/dashboard/schedule","accept-language":"en-US,en;q=0.8","cf-pseudo-ipv4":"252.82.240.0","cf-connecting-ip":"2601:0240:d200:ef37:dcbd:8515:0c25:647c","connection":"close"},"query":{},"latency":29.171,"msg":"Error performing operation TypeError: Cannot read property 'call' of undefined","time":"2016-12-08T15:58:02.049Z","v":0}
{"name":"mservice","hostname":"185ebcd46c77","pid":1,"level":60,"msg":"unexpected error TypeError: Cannot read property 'call' of undefined\n at RRule._iter (/src/node_modules/rrule/lib/rrule.js:1097:28)\n at RRule.all (/src/node_modules/rrule/lib/rrule.js:831:31)\n at Function.generateSpans (/src/lib/services/storage.js:30:32)\n at knex.transacting.returning.insert.spread (/src/lib/services/storage.js:76:31)\n at bound (domain.js:280:14)\n at runBound (domain.js:293:12)\n at tryCatcher (/src/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/src/node_modules/bluebird/js/release/promise.js:507:35)\n at Promise._settlePromise (/src/node_modules/bluebird/js/release/promise.js:567:18)\n at Promise._settlePromise0 (/src/node_modules/bluebird/js/release/promise.js:612:10)\n at Promise._settlePromises (/src/node_modules/bluebird/js/release/promise.js:691:18)\n at Promise._fulfill (/src/node_modules/bluebird/js/release/promise.js:636:18)\n at PromiseArray._resolve (/src/node_modules/bluebird/js/release/promise_array.js:125:19)\n at PromiseArray._promiseFulfilled (/src/node_modules/bluebird/js/release/promise_array.js:143:14)\n at PromiseArray._iterate (/src/node_modules/bluebird/js/release/promise_array.js:113:31)\n at PromiseArray.init [as _init] (/src/node_modules/bluebird/js/release/promise_array.js:77:10)","time":"2016-12-08T15:58:02.049Z","v":0}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the supplied calendar.event.create request with its RRULE, then inspect generateSpans in lib/services/storage.js at the stack-trace location and the related rrule call. Done means this input no longer crashes with "Cannot read property 'call' of undefined" and the request completes as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, node.js
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100