makeomatic / makeomatic/mservice-calendar

crash on specific input

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.