Misskey: オブジェクトストレージの通信不具合

Created on 31 Jul 2019  ·  12Comments  ·  Source: syuilo/misskey

💡 Summary

11.27.0を適用してからオブジェクトストレージの不具合が発生している。

🙂 Expected Behavior

image

↑の設定でいままで動作していた

☹️ Actual Behavior

ログはこちら:

ERR  2  [api]   NetworkingError [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames: Host: y-mks.resonator.yuzulia.xyz. is not in the cert's altnames: DNS:*.yuzulia.xyz, DNS:yuzulia.xyz
WARN 2  [api]   SLOW API CALL DETECTED: drive/files/create (6581.484359025955ms)
INFO 2  [server]          --> POST /api/drive/files/create 500 6,641ms 173b
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'Object'
    --- property 'issuerCertificate' closes the circle
    at JSON.stringify (<anonymous>)
    at PostgresDriver.preparePersistentValue (/home/misskey/misskey/node_modules/typeorm/driver/postgres/PostgresDriver.js:428:25)
    at /home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:354:53
    at Array.forEach (<anonymous>)
    at /home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:340:25
    at Array.forEach (<anonymous>)
    at InsertQueryBuilder.createValuesExpression (/home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:339:23)
    at InsertQueryBuilder.createInsertExpression (/home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:231:37)
    at InsertQueryBuilder.getQuery (/home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:34:24)
    at InsertQueryBuilder.QueryBuilder.getQueryAndParameters (/home/misskey/misskey/node_modules/typeorm/query-builder/QueryBuilder.js:224:26)
    at InsertQueryBuilder.<anonymous> (/home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:75:50)
    at step (/home/misskey/misskey/node_modules/tslib/tslib.js:136:27)
    at Object.next (/home/misskey/misskey/node_modules/tslib/tslib.js:117:57)
    at /home/misskey/misskey/node_modules/tslib/tslib.js:110:75
    at new Promise (<anonymous>)
    at Object.__awaiter (/home/misskey/misskey/node_modules/tslib/tslib.js:106:16)
    at InsertQueryBuilder.execute (/home/misskey/misskey/node_modules/typeorm/query-builder/InsertQueryBuilder.js:41:24)
    at EntityManager.<anonymous> (/home/misskey/misskey/node_modules/typeorm/entity-manager/EntityManager.js:265:30)
    at step (/home/misskey/misskey/node_modules/tslib/tslib.js:136:27)
    at Object.next (/home/misskey/misskey/node_modules/tslib/tslib.js:117:57)
    at /home/misskey/misskey/node_modules/tslib/tslib.js:110:75
    at new Promise (<anonymous>)
    at Object.__awaiter (/home/misskey/misskey/node_modules/tslib/tslib.js:106:16)
    at EntityManager.insert (/home/misskey/misskey/node_modules/typeorm/entity-manager/EntityManager.js:250:24)
    at Repository.insert (/home/misskey/misskey/node_modules/typeorm/repository/Repository.js:93:29)
    at Logger.log (/home/misskey/misskey/built/services/logger.js:55:18)
    at Logger.error (/home/misskey/misskey/built/services/logger.js:71:18)
    at /home/misskey/misskey/built/server/api/endpoints/drive/files/create.js:94:28
    at processTicksAndRejections (internal/process/task_queues.js:85:5)

ホスト名が期待しているものと違う

※マイグレーションコマンドは実施済み

📌 Environment

  • Misskey: 11.27.0
  • minio (Object Storage):
    Version: 2017-08-05T00:00:53Z
    Release-Tag: RELEASE.2017-08-05T00-00-53Z
    Commit-ID: aeafe668d8b6d25caac671d59e2b0f0473ce35d0
  • Node.js: 12.7.0
⚙️Server 🐛Bug

All 12 comments

Related to #5226?

ライブラリがエンドポイントをvirtual hosted–styleに変えちゃってる?
https://dev.classmethod.jp/cloud/aws/s3-no-longer-support-path-style-requests/

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#constructor-property
s3ForcePathStyleでなおるかも

(遅れたー)

どうやってテストしようか考えてるわ

対応は本当に s3ForcePathStyle でいいんですかね……?

いいとは思う

というと、また一年後改修するということですか?

パス生成方式で1年後ダメになるのはDL URLの生成部分だけではと思ってて
URL生成方法はUIで指定できるようになってるのでそっちを弄るようにすればいいのではと

ふーむ

なにがわからない?

いえ、大丈夫です。失礼しました。

https://dev.classmethod.jp/cloud/aws/s3-no-longer-support-path-style-requests/

これ結局対応しなければならなそう

https://github.com/syuilo/misskey/blob/db01fa0eefe22e21abc5ddbe727e99b796155077/src/services/drive/s3.ts#L15
を空文字列だったらundefinedにするようにして

S3の場合はendpointを空のままにしておくという指示にすればよさそう

Was this page helpful?
0 / 5 - 0 ratings