Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker環境でのセンシティブなメディアの検出でエラーが出る #9415

Closed
ikuradon opened this issue Dec 26, 2022 · 6 comments · Fixed by #9563
Closed

Docker環境でのセンシティブなメディアの検出でエラーが出る #9415

ikuradon opened this issue Dec 26, 2022 · 6 comments · Fixed by #9563
Labels
⚠️bug? This might be a bug

Comments

@ikuradon
Copy link
Contributor

💡 Summary

"センシティブなメディアの検出"が有効になっていると画像がアップロードされるたびに@tensorflow/tfjs-core関連のエラーが出る
モジュールが入っていない?

🤬 Actual Behavior

Error: Cannot find module '@tensorflow/tfjs-core'
Require stack:
- /misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/kernels/FlipLeftRight.js
- /misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/register_all_kernels.js
- /misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
    at Module._load (node:internal/modules/cjs/loader:841:27)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/kernels/FlipLeftRight.js:20:19)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/register_all_kernels.js:80:23)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/index.js:46:1)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:169:29)
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:530:24)
    at async AiService.detectSensitive (file:///misskey/packages/backend/built/core/AiService.js:39:24)
    at async FileInfoService.detectSensitivity (file:///misskey/packages/backend/built/core/FileInfoService.js:144:28)
    at async FileInfoService.getFileInfo (file:///misskey/packages/backend/built/core/FileInfoService.js:104:13)
    at async DriveService.addFile (file:///misskey/packages/backend/built/core/DriveService.js:338:22)
    at async DriveService.uploadFromUrl (file:///misskey/packages/backend/built/core/DriveService.js:585:31)
    at async ApImageService.createImage (file:///misskey/packages/backend/built/core/activitypub/models/ApImageService.js:46:20)
    at async ApImageService.resolveImage (file:///misskey/packages/backend/built/core/activitypub/models/ApImageService.js:76:16)
    at async Promise.all (index 0)
    at async ApPersonService.updatePerson (file:///misskey/packages/backend/built/core/activitypub/models/ApPersonService.js:311:34)
    at async ApInboxService.update (file:///misskey/packages/backend/built/core/activitypub/ApInboxService.js:621:13)
    at async ApInboxService.performOneActivity (file:///misskey/packages/backend/built/core/activitypub/ApInboxService.js:112:13)
    at async ApInboxService.performActivity (file:///misskey/packages/backend/built/core/activitypub/ApInboxService.js:91:13)
    at async InboxProcessorService.process (file:///misskey/packages/backend/built/queue/processors/InboxProcessorService.js:161:9)
    at async /misskey/node_modules/.store/bull-npm-4.10.2-6a1172ef56/node_modules/bull/lib/p-timeout.js:69:17 {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/kernels/FlipLeftRight.js',
    '/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/register_all_kernels.js',
    '/misskey/node_modules/.store/@tensorflow-tfjs-node-npm-4.1.0-8900cfd080/node_modules/@tensorflow/tfjs-node/dist/index.js'
  ]
}

📝 Steps to Reproduce

  1. misskey/misskey:develop@sha256:a37d55100cba6401b09d3d374df5ab648afa3ef9a366236bab9822ca9b13c390のDockerイメージを使ってサーバーを起こす
  2. センシティブなメディアの検出を有効化する
  3. 画像をアップロードしてログを見る
@ikuradon ikuradon added the ⚠️bug? This might be a bug label Dec 26, 2022
@ikuradon
Copy link
Contributor Author

ikuradon commented Jan 14, 2023

packages/backend/node_modules/@tensorflowにtfjs-coreがいないっぽい

root@4946df599d95:/misskey# ls packages/backend/node_modules/\@tensorflow/
tfjs  tfjs-node

@ikuradon
Copy link
Contributor Author

.yarnrc.ymlのnodeLinker: pnpmnodeLinker: node-modulesにすると直りそうな気がするけどなんもわからん

node:18で実験した結果

それぞれフォルダを作ってyarn init -2したあと.yarnrc.ymlにnodeLinkerを追記し、yarn add -O @tensorflow/tfjs@^4.1.0した

nodeLinker: pnpm

root@11e33ee7fb0e:/app# cat .yarnrc.yml ;echo
yarnPath: .yarn/releases/yarn-3.3.1.cjs
nodeLinker: pnpm
root@11e33ee7fb0e:/app# ls node_modules/\@tensorflow/
tfjs

nodeLinker: node-modules

root@11e33ee7fb0e:/app2# cat .yarnrc.yml ;echo
yarnPath: .yarn/releases/yarn-3.3.1.cjs
nodeLinker: node-modules
root@11e33ee7fb0e:/app2# ls node_modules/\@tensorflow/
tfjs              tfjs-backend-webgl  tfjs-core  tfjs-layers
tfjs-backend-cpu  tfjs-converter      tfjs-data

@tamaina
Copy link
Contributor

tamaina commented Jan 14, 2023

#9186 とは違うのか

@ikuradon
Copy link
Contributor Author

それでたことない…

@ikuradon
Copy link
Contributor Author

nodeLinker: pnpmでも明示的にインストール(yarn add -O @tensorflow/tfjs-core@^4.1.0)すればOKだけどそうじゃないんだろうなあ

@ikuradon
Copy link
Contributor Author

これ、@tensorflow/tfjs-*がhoistingで"雑"に読み込めていただけでpnpmやyarn berryのstrictモードだとそれぞれインポートしないといけないのでは

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚠️bug? This might be a bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants