Misskey: [MFM] #๐™๐™ค๐™ ๐™ช๐™œ๐™–๐™ฌ๐™–_๐™๐™š๐™จ๐™ฉ๐™ž๐™ซ๐™–๐™ก_๐™ž๐™จ_๐™ž๐™จ_๐™จ๐™ค๐™ค๐™ค๐™ค๐™ค๐™ค_๐™˜๐™ช๐™ช๐™ช๐™ช๐™ช๐™ฉ๐™š parsed as a text

Created on 21 Sep 2019  ยท  11Comments  ยท  Source: syuilo/misskey

Summary

๐™๐™ค๐™ ๐™ช๐™œ๐™–๐™ฌ๐™–_๐™๐™š๐™จ๐™ฉ๐™ž๐™ซ๐™–๐™ก_๐™ž๐™จ_๐™ž๐™จ_๐™จ๐™ค๐™ค๐™ค๐™ค๐™ค๐™ค_๐™˜๐™ช๐™ช๐™ช๐™ช๐™ช๐™ฉ๐™š parsed as a text

Expected Behavior

[
  {
    node: {
      type: 'hashtag',
      props: {
        hashtag: '๐™๐™ค๐™ ๐™ช๐™œ๐™–๐™ฌ๐™–_๐™๐™š๐™จ๐™ฉ๐™ž๐™ซ๐™–๐™ก_๐™ž๐™จ_๐™ž๐™จ_๐™จ๐™ค๐™ค๐™ค๐™ค๐™ค๐™ค_๐™˜๐™ช๐™ช๐™ช๐™ช๐™ช๐™ฉ๐™š',
      },
    },
    children: [],
  }
]

Actual Behavior

[
  {
    node: {
      type: 'text',
      props: {
        text: '#๐™๐™ค๐™ ๐™ช๐™œ๐™–๐™ฌ๐™–_๐™๐™š๐™จ๐™ฉ๐™ž๐™ซ๐™–๐™ก_๐™ž๐™จ_๐™ž๐™จ_๐™จ๐™ค๐™ค๐™ค๐™ค๐™ค๐™ค_๐™˜๐™ช๐™ช๐™ช๐™ช๐™ช๐™ฉ๐™š',
      },
    },
    children: [],
  },
]

Remarks

FYI: https://akanechan.love/@akane/102829916397850143

๐Ÿ›Bug ๐Ÿ–MFM

Most helpful comment

ๅ€คใฏ128ใซ็ตฑไธ€ใงใ„ใ„ใจๆ€ใ„ใพใ™

๏ผ‹ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ขใ‚’2ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹โ†’ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ขใ‚’1ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹
ใซใชใ‚‹ใจๆ€ใ„ใพใ™

ๅˆๅญ—ใ‚’1ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹ใพใง่กŒใ†ใจDBใ‚นใ‚ญใƒผใƒžใฎ128ใ‚’่ถ…ใˆใ‚‹ๅฏ่ƒฝๆ€งใŒๅ‡บใฆใใฆใ—ใพใ†ใฎใง
ๅˆๅญ—ใฏใใ‚Œใฏใ‚„ใ‚‰ใชใ„ใปใ†ใŒใ„ใ„ใ‹ใชใจใ„ใ†ๆฐ—ใŒใ—ใพใ™ใ€‚

All 11 comments

ใƒŽใƒผใƒžใƒซ: 5ๆ–‡ๅญ—, length=5
ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ข: 35ๆ–‡ๅญ—, length=70
---------------------------------
ๅˆ่จˆ: length=75

ใงใŸใถใ‚“้•ทใ•ๅˆถ้™

ใ‚‚ใจใ‚‚ใจใ€ŒMongoDBใฎใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นๅฏพ่ฑกใฏ128ๆ–‡ๅญ—ไปฅไธŠใซใงใใชใ„ใ€ใ‚’ๆ นๆ‹ ใซใƒ•ใ‚ฃใƒซใ‚ฟใ—ใฆใ„ใ‚‹้ƒจๅˆ†
https://github.com/syuilo/misskey/blob/9f5a763c6971c2c37cf63e661918dcbbde7b4c08/src/services/note/create.ts#L168

ใใ‚‚ใใ‚‚ๅฏพ่ฑกใƒ‡ใƒผใ‚ฟใฎ้•ทใ•ใงใฏใชใใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นๅใฎ้•ทใ•ใจๆ€ใ‚ใ‚Œใ‚‹ใฎใงใ“ใฎๅˆถ้™ใฏ้–“้•ใˆใจๆ€ใ‚ใ‚Œใ‚‹
https://docs.mongodb.com/manual/reference/limits/#Index-Name-Length

MFMใฎ๏ผˆใŠใใ‚‰ใไป•ๆง˜ใจใ—ใฆ๏ผ‰50ๆ–‡ๅญ—ใงใƒ•ใ‚ฃใƒซใ‚ฟใ—ใฆใ„ใ‚‹้ƒจๅˆ†
https://github.com/syuilo/misskey/blob/9f5a763c6971c2c37cf63e661918dcbbde7b4c08/src/mfm/language.ts#L151

ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ขใจๅˆๅญ—ใ‚’่€ƒๆ…ฎใ—ใฆใชใ„ใจๆ€ใ‚ใ‚Œใ‚‹

misskey/src/services/note/create.ts ใฎๅˆถ้™ใฏAPใซ้ฉ็”จใ•ใ‚Œใ‚‹ใฎใงๅฟ…่ฆใงใฏใ‚ใ‚Šใใ†
ใงใ‚‚ๅ‰่€…ใจๅพŒ่€…ใฎๅˆถ้™ๅ€คใฏๅŒใ˜ใ˜ใ‚ƒใชใ„ใจใŠใ‹ใ—ใใ†

ไปŠใฏ
ใ€ŒAPใ‹ใ‚‰ๆฅใŸๅ ดๅˆ100ๆ–‡ๅญ—ใพใง็™ป้ŒฒใงใใฆAPIใ‹ใ‚‰100ๆ–‡ๅญ—ใพใง่ฟ”ใฃใฆใใ‚‹ใฎใซใ€
ใ‚ฏใƒฉใ‚คใƒณใƒˆใงใฏ50ๆ–‡ๅญ—ใพใง่ช่ญ˜ใ€ใซใชใฃใฆใใ†ใชใฎใง
misskey/src/mfm/language.ts ใฎๅˆถ้™ใฏ misskey/src/services/note/create.ts ใ‚ˆใ‚ŠๅŒใ˜ใ‹ๅคงใใ„ๅฟ…่ฆใŒใ‚ใ‚‹ใจๆ€ใ‚ใ‚Œใ‚‹

ใใ‚‚ใใ‚‚ๅฏพ่ฑกใƒ‡ใƒผใ‚ฟใฎ้•ทใ•ใงใฏใชใใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นๅใฎ้•ทใ•ใจๆ€ใ‚ใ‚Œใ‚‹ใฎใงใ“ใฎๅˆถ้™ใฏ้–“้•ใˆใจๆ€ใ‚ใ‚Œใ‚‹

้•ทใ„ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใŒๆฅใŸใจใใซMongoDBใฏใ‚จใƒฉใƒผๅ‡บใ—ใฆใŸใฎใงใ€ใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นๅใฎ้•ทใ•ใฃใฆๅฏพ่ฑกใƒ‡ใƒผใ‚ฟใฎ้•ทใ•ใฎใ“ใจใ˜ใ‚ƒใชใ„ใ‹ใ—ใ‚‰

https://docs.mongodb.com/manual/reference/limits/#Index-Name-Length
ใ‚’่ฆ‹ใ‚‹้™ใ‚Šmisskey.notes.$<ใƒ•ใ‚ฃใƒผใƒซใƒ‰ๅ + ใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใ‚ฟใ‚คใƒ—>ใฟใŸใ„ใชใ‚‚ใฎใฎ้•ทใ•ใซ่ฆ‹ใˆใพใ™
โ€ป 128ใฎๅˆถ้™ใฏ

ใพใŸใ€MongoDB 4.0 ใง 200ๆ–‡ๅญ—ใฎใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใฏๅ•้กŒใชใ„ใฟใŸใ„ใงใ™

For MongoDB 2.6 through MongoDB versions with fCV set to "4.0" or earlier, the total size of an index entry, which can include structural overhead depending on the BSON type, must be less than 1024 bytes.

MongoDB 4.0ใ‹ใ‚‰ใฏใใ†ใ„ใ†ๅˆถ้™ใชใใชใฃใŸใฃใฝใ„๏ผŸ

4.2ใ‹ใ‚‰ใงใ™ใญ

ใŠใใ‚‰ใใ‚จใƒณใƒˆใƒช้•ทๅˆถ้™ใฏ1024ใƒใ‚คใƒˆใ ใจๆ€ใ„ใพใ™

For MongoDB 2.6 through MongoDB versions with fCV set to "4.0" or earlier, the total size of an index entry, which can include structural overhead depending on the BSON type, must be less than 1024 bytes.

็ขบใ‹ใซใ‚จใƒฉใƒผใซใชใ‚Šใพใ—ใŸ
[MongoError]: WiredTigerIndex::insert: key too large to index, failing 1034

ใ‚“ใƒผใพใ‚ๅˆถ้™ใชใ‹ใฃใŸใจใ—ใฆใ‚‚ใ€ใ‚ใพใ‚Šใซ้•ทใ„ใ‚‚ใฎใฏใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใซๅฝฑ้Ÿฟใ‚’ๅŠใผใ—ใใ†ใชๆฐ—ใ‚‚ใ™ใ‚‹ใ—ใ‚คใƒณใƒ‡ใƒƒใ‚ฏใ‚นใ™ใ‚‹ๅฟ…่ฆๆ€งใ‚‚่–„ใ„ๅ ดๅˆใŒๅคšใ„ใจๆ€ใ†ใฎใงใ€ๅคšๅฐ‘ใƒใƒƒใ‚ทใƒฅใ‚ฟใ‚ฐใซใฏๆ–‡ๅญ—ๆ•ฐๅˆถ้™ใ‚ใฃใฆใ‚‚ใ„ใ„ใจๆ€ใ„ใพใ™
ใ‚ใ„ใ‚ใ„ใŒ่จ€ๅŠใ—ใŸใ‚ˆใ†ใซ src/services/note/create.ts ใจ src/mfm/language.ts ใ‚’ใฉใฃใกใ‚‚ 128 ใง็ตฑไธ€ใ™ใ‚‹ใฎใงใฉใ†ใงใ—ใ‚‡ใ†

ๅ€คใฏ128ใซ็ตฑไธ€ใงใ„ใ„ใจๆ€ใ„ใพใ™

๏ผ‹ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ขใ‚’2ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹โ†’ใ‚ตใƒญใ‚ฒใƒผใƒˆใƒšใ‚ขใ‚’1ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹
ใซใชใ‚‹ใจๆ€ใ„ใพใ™

ๅˆๅญ—ใ‚’1ๆ–‡ๅญ—ใจใ—ใฆๆ•ฐใˆใ‚‹ใพใง่กŒใ†ใจDBใ‚นใ‚ญใƒผใƒžใฎ128ใ‚’่ถ…ใˆใ‚‹ๅฏ่ƒฝๆ€งใŒๅ‡บใฆใใฆใ—ใพใ†ใฎใง
ๅˆๅญ—ใฏใใ‚Œใฏใ‚„ใ‚‰ใชใ„ใปใ†ใŒใ„ใ„ใ‹ใชใจใ„ใ†ๆฐ—ใŒใ—ใพใ™ใ€‚

Was this page helpful?
0 / 5 - 0 ratings