带有可视化编辑器的 RESTBase 给出类型错误:无法设置未定义的属性'etag'



在 FreeBSD 11 上全新安装 MediaWiki(实际上是 FreeNAS 11.2 监狱)。

我正在尝试让可视化编辑器工作,这意味着需要Parsoid和RESTbase。 Parsoid工作正常。 RESTbase 没有。

使用 MediaWiki 1.32 软件包和节点 11。

尽可能认真地遵循每个 https://www.mediawiki.org/wiki/Extension:VisualEditor#Linking_with_Parsoid 的安装指南。

首次使用可视化编辑器运行会得到以下结果(为了保护隐私,将域替换为"fake.example.net"):

{"name":"restbase","hostname":"bones","pid":51675,"level":40,"msg":"Client did not supply etag, fallback to mw:TimeUuid meta element","root_req":{"method":"post","uri":"/fake.example.net/v1/transform/html/to/wikitext/MediaWiki_Server/24","headers":{"content-length":"21866","content-type":"application/x-www-form-urlencoded","user-agent":"VisualEditor-MediaWiki/1.32.0","x-client-ip":"::1","x-forwarded-for":"::1","x-request-id":"7e754840-a45d-11e9-95db-4df3c493cdc6","x-request-class":"internal"}},"request_id":"7e754840-a45d-11e9-95db-4df3c493cdc6","api_path":"/fake.example.net/v1/transform/html/to/wikitext/{title}/{revision}","levelPath":"warn/parsoid/etag","time":"2019-07-12T04:28:27.598Z","v":0}
{"name":"restbase","hostname":"bones","pid":51675,"level":50,"message":"500: internal_error","res":{"name":"HTTPError","message":"500: internal_error","status":500,"body":{"type":"internal_error","description":"TypeError: Cannot read property 'body' of undefined"},"innerError":{"requestName":"get_from_backend"},"headers":{"access-control-allow-origin":"*","access-control-allow-methods":"GET,HEAD","access-control-allow-headers":"accept, content-type, content-length, cache-control, accept-language, api-user-agent, if-match, if-modified-since, if-none-match, dnt, accept-encoding","access-control-expose-headers":"etag","x-content-type-options":"nosniff","x-frame-options":"SAMEORIGIN","referrer-policy":"origin-when-cross-origin","x-xss-protection":"1; mode=block","content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-webkit-csp":"default-src 'none'; frame-ancestors 'none'","cache-control":"private, max-age=0, s-maxage=0, must-revalidate","x-request-id":"7e754840-a45d-11e9-95db-4df3c493cdc6","server":"bones"}},"stack":"TypeError: Cannot read property 'body' of undefined
at contentPromise.tap (/usr/home/wikiuser/restbase-1.0.0/sys/parsoid.js:585:47)
at PassThroughHandlerContext.finallyHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/finally.js:57:23)
at PassThroughHandlerContext.tryCatcher (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:517:31)
at Promise._settlePromise (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
at Promise._fulfill (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
at Promise._resolveCallback (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:437:57)
at Promise._settlePromiseFromHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:529:17)
at Promise._settlePromise (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
at Promise._fulfill (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
at Promise._resolveCallback (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:437:57)
at Promise._settlePromiseFromHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:529:17)","latency":404,"root_req":{"method":"post","uri":"/fake.example.net/v1/transform/html/to/wikitext/MediaWiki_Server/24","headers":{"content-length":"21866","content-type":"application/x-www-form-urlencoded","user-agent":"VisualEditor-MediaWiki/1.32.0","x-client-ip":"::1","x-forwarded-for":"::1","x-request-id":"7e754840-a45d-11e9-95db-4df3c493cdc6","x-request-class":"internal"}},"request_id":"7e754840-a45d-11e9-95db-4df3c493cdc6","levelPath":"error/request","msg":"500: internal_error","time":"2019-07-12T04:28:27.608Z","v":0}
{"name":"restbase","hostname":"bones","pid":51674,"level":50,"message":"500: internal_error","res":{"name":"HTTPError","message":"500: internal_error","status":500,"body":{"type":"internal_error","description":"TypeError: Cannot set property 'etag' of undefined"},"innerError":{"requestName":"get_from_backend"},"headers":{"access-control-allow-origin":"*","access-control-allow-methods":"GET,HEAD","access-control-allow-headers":"accept, content-type, content-length, cache-control, accept-language, api-user-agent, if-match, if-modified-since, if-none-match, dnt, accept-encoding","access-control-expose-headers":"etag","x-content-type-options":"nosniff","x-frame-options":"SAMEORIGIN","referrer-policy":"origin-when-cross-origin","x-xss-protection":"1; mode=block","content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-content-security-policy":"default-src 'none'; frame-ancestors 'none'","x-webkit-csp":"default-src 'none'; frame-ancestors 'none'","cache-control":"private, max-age=0, s-maxage=0, must-revalidate","x-request-id":"86f41e10-a45d-11e9-bc34-0b5288621277","server":"bones"}},"stack":"TypeError: Cannot set property 'etag' of undefined
at contentReq.then.then (/usr/home/wikiuser/restbase-1.0.0/sys/parsoid.js:511:30)
at tryCatcher (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:517:31)
at Promise._settlePromise (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
at Promise._fulfill (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
at Promise._resolveCallback (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:437:57)
at Promise._settlePromiseFromHandler (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:529:17)
at Promise._settlePromise (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)
at Promise._fulfill (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:643:18)
at Promise._settlePromise (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:587:21)
at Promise._settlePromise0 (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/usr/home/wikiuser/restbase-1.0.0/node_modules/bluebird/js/release/promise.js:699:18)","latency":8,"root_req":{"method":"get","uri":"/fake.example.net/v1/page/html/MediaWiki_Server/24?redirect=false","headers":{"user-agent":"VisualEditor-MediaWiki/1.32.0","x-client-ip":"::1","x-forwarded-for":"::1","x-request-id":"86f41e10-a45d-11e9-bc34-0b5288621277","x-request-class":"internal"}},"request_id":"86f41e10-a45d-11e9-bc34-0b5288621277","levelPath":"error/request","msg":"500: internal_error","time":"2019-07-12T04:28:41.465Z","v":0}

使用 curl 会导致类似的错误。我已经尝试过 RESTBase 1.0.0 和当前的 git 克隆。 无法获得任何工作,错误消息对我来说完全是希腊语。 我无法通过检查来源来理解这个问题。

这是由我自己的项目/example.yaml 中的错误以及由 https://phabricator.wikimedia.org/T227842 修复的问题引起的

相关内容

最新更新