Page MenuHomePhabricator

RESTBASE startup error
Closed, ResolvedPublic

Description

webadmin@khababash:~/restbase$ node server
{"name":"restbase","hostname":"khababash","pid":18630,"level":30,"levelPath":"info/service-runner","msg":"master(18630) initializing 16 workers","time":"2017-11-08T08:18:28.036Z","v":0}
{"name":"restbase","hostname":"khababash","pid":18641,"level":60,"err":{"message":"Cannot read property 'constructor' of undefined","name":"TypeError","stack":"TypeError: Cannot read property 'constructor' of undefined\n at stringifyObject (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:36:19)\n at stringifyObject (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:49:20)\n at Object.stringifyObject [as stringify] (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:49:20)\n at new Template (/home/webadmin/restbase/node_modules/swagger-router/lib/reqTemplate.js:397:62)\n at /home/webadmin/restbase/node_modules/hyperswitch/lib/router.js:531:41\n at tryCatcher (/home/webadmin/restbase/node_modules/bluebird/js/release/util.js:16:23)\n at Object.gotValue (/home/webadmin/restbase/node_modules/bluebird/js/release/reduce.js:155:18)\n at Object.gotAccum (/home/webadmin/restbase/node_modules/bluebird/js/release/reduce.js:144:25)\n at Object.tryCatcher (/home/webadmin/restbase/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:512:31)\n at Promise._settlePromise (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:569:18)\n at Promise._settlePromiseCtx (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:606:10)\n at Async._drainQueue (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:138:12)\n at Async._drainQueues (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:143:10)\n at Immediate.Async.drainQueues [as _onImmediate] (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:17:14)\n at processImmediate [as _immediateCallback] (timers.js:383:17)"},"stack":"TypeError: Cannot read property 'constructor' of undefined\n at stringifyObject (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:36:19)\n at stringifyObject (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:49:20)\n at Object.stringifyObject [as stringify] (/home/webadmin/restbase/node_modules/template-expression-compiler/index.js:49:20)\n at new Template (/home/webadmin/restbase/node_modules/swagger-router/lib/reqTemplate.js:397:62)\n at /home/webadmin/restbase/node_modules/hyperswitch/lib/router.js:531:41\n at tryCatcher (/home/webadmin/restbase/node_modules/bluebird/js/release/util.js:16:23)\n at Object.gotValue (/home/webadmin/restbase/node_modules/bluebird/js/release/reduce.js:155:18)\n at Object.gotAccum (/home/webadmin/restbase/node_modules/bluebird/js/release/reduce.js:144:25)\n at Object.tryCatcher (/home/webadmin/restbase/node_modules/bluebird/js/release/util.js:16:23)\n at Promise._settlePromiseFromHandler (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:512:31)\n at Promise._settlePromise (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:569:18)\n at Promise._settlePromiseCtx (/home/webadmin/restbase/node_modules/bluebird/js/release/promise.js:606:10)\n at Async._drainQueue (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:138:12)\n at Async._drainQueues (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:143:10)\n at Immediate.Async.drainQueues [as _onImmediate] (/home/webadmin/restbase/node_modules/bluebird/js/release/async.js:17:14)\n at processImmediate [as _immediateCallback] (timers.js:383:17)","levelPath":"fatal/startup","msg":"Message not supplied","time":"2017-11-08T08:18:29.428Z","v":0}

webadmin@khababash:~/restbase$ nodejs --version
v4.2.6

Event Timeline

Please provide some more details:

  • Which version are you using, is it master from GitHub?
  • Which config are you using?

Hi @Pchelolo

Thanks for the reply.

git describe --tags
v0.17.0-62-g5eba15d

I am not sure which config are you referring to?

I am not sure which config are you referring to?

In order to start rest base you need config.yaml file. There's a bunch of example configs in the repo, which one of them are you using?

Thank so so much for your patience. THis is my config file

# RESTBase config for small wiki installs
#
# - sqlite backend
# - parsoid at http://localhost:8142
# - wiki at http://localhost/w/api.php
#
# Quick setup:
# - npm install
#   If you see errors about sqlite, you might have to `apt-get install
#   libsqlite3-dev`.
# - cp config.example.yaml config.yaml
# - double-check and possibly modify lines marked with XXX, then start restbase with
#
#   node server
#
# - If all went well, http://localhost:7231/localhost/v1/page/html/Main_Page
# should show your wiki's [[Main Page]].

services:
  - name: restbase
    module: hyperswitch
    conf:
      port: 7231
      salt: secret
      default_page_size: 125
      user_agent: RESTBase
      ui_name: RESTBase
      ui_url: https://www.mediawiki.org/wiki/RESTBase
      ui_title: RESTBase docs
      spec:
        x-request-filters:
          - path: lib/security_response_header_filter.js
        x-sub-request-filters:
          - type: default
            name: http
            options:
            allow:
              - pattern: https://marefa.org/api.php
                forward_headers: true
              - pattern: http://127.0.01:8142
                forward_headers: true
             # - pattern: /^https?:\/\//
        paths:
          /{domain:marefa.org}:
            x-modules:
              - path: projects/example.yaml
                options:
                  action:
                    # XXX Check API URL!
                    apiUriTemplate: https://marefa.org/api.php
                    # XXX Check the base RESTBase URI
                    baseUriTemplate: "{{'http://{domain}:7231/{domain}/v1'}}"
                  parsoid:
                    # XXX Check Parsoid URL!
                    host: http://127.0.0.1:8142
                  table:
                    backend: sqlite
                    dbname: db.sqlite3
                    pool_idle_timeout: 20000
                    retry_delay: 250
                    retry_limit: 10
                    show_sql: false
                  citoid:
                    host: http://citoid-beta.wmflabs.org
                  mathoid:
                    host: http://mathoid-tester.wmflabs.org
                  mobileapps:
                    host: http://appservice.wmflabs.org
                  purged_cache_control: s-maxage=0, max-age=86400
                  purged_cache_control_client_cache: s-maxage=0, max-age=300

# Finally, a standard service-runner config.
info:
  name: restbase

logging:
  name: restbase
  level: info

Ok, I know what's happening. You're hitting a bug on our side that I will fix, however you're using the latest master from GitHub which we use for development, so it's unstable and will not work. I'd suggest only using released versions, the last release is https://github.com/wikimedia/restbase/releases/tag/v0.17.0 - that one works perfectly with your config.

mobrovac assigned this task to Pchelolo.
mobrovac added a project: Services (done).
mobrovac subscribed.

https://github.com/wikimedia/template-expression-compiler/pull/3 fixes the issue in master, so resolving. @Slushpuppeh23 feel free to reopen if the problem continues.