Mongoose: 4.7.1 => 4.7.2 : MongoError ์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ

์— ๋งŒ๋“  2016๋…„ 12์›” 09์ผ  ยท  44์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Automattic/mongoose

[email protected] / [email protected] ๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

MongoError: XXXXXX์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ 2๊ฐ€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Function.MongoError.create์—์„œ (/node_modules/mongodb-core/lib/error.js:29:11)
์†Œ์ผ“์—์„œ.(/node_modules/mongodb-core/lib/connection/connection.js:186:20)
Socket.g์—์„œ (events.js:286:16)
emitNone์—์„œ (events.js:86:13)
Socket.emit์—์„œ(events.js:185:7)
Socket._onTimeout์—์„œ (net.js:333:8)
tryOnTimeout์—์„œ (timers.js:224:11)
at Timer.listOnTimeout (timers.js:198:5)' } 'XXXXXX์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ 2๊ฐ€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ [email protected] / [email protected]์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€:

  • ์ฟผ๋ฆฌ: allowDiskUse(true).read('secondaryPreferred').cursor()๋กœ ์ง‘๊ณ„
  • ํƒ€์ด๋ฐ: ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ธ ํ›„ ์•ฝ 35์ดˆ ํ›„์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(์ฒซ ๋ฒˆ์งธ ๊ฒฐ๊ณผ๊ฐ€ ์ˆ˜์‹ ๋˜๊ธฐ ์ „).
  • ๋…ธ๋“œ ๋ฒ„์ „: v6.3.0
  • npm ๋ฒ„์ „: 3.10.9
  • ์—ฐ๊ฒฐ ์˜ต์…˜:
{
 "socketOptions": {
    "socketTimeoutMS": 240000,
    "keepAlive": 10000,
    "connectTimeoutMS" : 30000
} 
  • ์งˆ๋ฌธ:
[
    { $match: {
            _id: { $lt: oid },
            signature: { $exists: true }
        }
    },
    { $group: { 
            _id: { myid: '$myid', signature: '$signature' },
            count: { $sum:  1 },
            myid: { $first: '$myid' },
            docs: { $push: { _id: '$_id', name: '$name' } }
        }
    },
    { $match: {
            count: { $gt : 1 }
        }
    }
]

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋Š” ์–ผ๋งˆ ๋™์•ˆ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์–ธ์  ๊ฐ€๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์„ ๋•Œ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  44 ๋Œ“๊ธ€

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. [email protected] , [email protected]

  • socketTimeoutMS๋ฅผ ๋” ๋†’์€ ๊ฐ’ ๋˜๋Š” 0์œผ๋กœ ์„ค์ •ํ•ด๋„ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • connectTimeoutMS๋ฅผ ๋” ๋†’์€ ๊ฐ’ ๋˜๋Š” 0์œผ๋กœ ์„ค์ •ํ•ด๋„ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • "๋‹ซ๊ธฐ" ๋˜๋Š” "๋‹ค์‹œ ์—ฐ๊ฒฐ๋จ" ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  "์‹œ๊ฐ„ ์ดˆ๊ณผ"๋งŒ ๋ฐœ์ƒํ•˜์—ฌ ์ฝœ๋ฐฑ์—์„œ ๋ชฝ๊ตฌ์Šค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

[email protected] / [email protected] ๋กœ ๋กค๋ฐฑํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

[email protected] ์—์„œ 2.2.12๋กœ ํƒ€์ž„์•„์›ƒ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ "ํ•œ๋ฒˆ"์—์„œ "์ผœ๊ธฐ"๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์„๊นŒ์š”?

์•„๋‹ˆ๋ฉด ์ด๊ฒƒ์„ mongodb ๊ธฐ๋ณธ ๋“œ๋ผ์ด๋ฒ„์˜ ๋ฌธ์ œ๋กœ ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@silentjohnny [email protected] ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ

๋‚˜๋Š” mongodb ๋„ค์ดํ‹ฐ๋ธŒ ๋“œ๋ผ์ด๋ฒ„์— ๋ฌธ์ œ๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. mongoose๋Š” ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ๋ฐฉ์‹์œผ๋กœ ๋งŽ์€ ์ผ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ์ด ํ•œ. ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ [email protected] ์„ ์‚ฌ์šฉํ•˜๋Š” [email protected] ์ด์ƒ์—์„œ
[email protected] ๋ฐ [email protected] ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! .
๋‚ด ์ง‘๊ณ„ ์ฟผ๋ฆฌ์—๋Š” ์˜ต์…˜์ด ์—†์œผ๋ฏ€๋กœ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์ด ๋‚˜์™€ ์›๋ž˜ ๋ฌธ์ œ @dcolens ์˜ ์ฐจ์ด์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค์ดํ‹ฐ๋ธŒ ๋“œ๋ผ์ด๋ฒ„์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋„๋ก...
์ง€๊ธˆ์€ [email protected] ์— ๋จธ๋ฌผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

[email protected] ์ด [email protected] ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ž‘์—… ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ž‘์—… @1284917 ์‹คํ–‰ ์‹œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๊ณง Mongoose๊ฐ€ [email protected] ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฏ€๋กœ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜๋Š” ์žฅ๊ธฐ ์‹คํ–‰ ์ง‘๊ณ„์ธ์ง€, ์•„๋‹ˆ๋ฉด ๋ฌด์ž‘์œ„์ด๊ณ  ์‹ค์ œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์ „ํ˜€ ์•„๋‹Œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋•Œ๋Š” ๊ฑฐ์˜ ์ฆ‰์‹œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์–ด๋–ค ๋•Œ๋Š” 30์ดˆ ์ •๋„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์—๋Š” ํ•œ ๋ฒˆ์— 4๊ฐœ์˜ ์ง‘๊ณ„.execs๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

[email protected] ๋ฐ [email protected] ๋กœ ๋˜๋Œ๋ฆฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๋ฏ€๋กœ ์ง€๊ธˆ์€ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

mongoose 4.7.7์ด [email protected]๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“ , ์ด๊ฒƒ์€ @vkarpov15 ๊ฐ€ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ๋ชฝ๊ตฌ์Šค ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ mongodb์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋‹ซ์œผ๋ ค ํ•˜์ง€๋งŒ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด mongodb ์ชฝ์—์„œ ํ‹ฐ์ผ“์ด๋‚˜ PR์„ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์—๋Š” ๋ˆˆ์— ๋ณด์ด๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒƒ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋Ÿฌํ•œ ์ง‘๊ณ„ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์™„์ „ํžˆ ์ค‘์ง€ํ•˜๋ ค๋ฉด 4.4.20์œผ๋กœ ๋˜๋Œ๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. 4.7.x์™€ 4.6.x๋Š” ๋ชจ๋‘ ์—ฌ๋Ÿฌ ๋™์‹œ ์‹คํ–‰์˜ ์ผ๋ถ€ ์ƒํ™ฉ์—์„œ ๋งค์šฐ ๋น ๋ฅธ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” 4.5๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ”„๋กœ๋•์…˜์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์•Œ๋ ค์ง„ ์–‘ํ˜ธํ•œ ๋ฒ„์ „(4.4.20)์œผ๋กœ ๋ฐ”๋กœ ๋Œ์•„๊ฐ€์„œ ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ TBH ์—ฌ์ „ํžˆ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์–ด๋ฆฌ๋‘ฅ์ ˆํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค๋งŒ mongoose๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ mongodb ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์—๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ž‘์—…์— ๊ธฐ์—ฌํ•˜๋Š” ์š”์†Œ๊ฐ€ ๋‘˜ ์ด์ƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. .

[email protected] ๋ฐ [email protected]์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์ž„์•„์›ƒ์€ ์ •๋ง ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ์งง๊ณ (์•ฝ 5์ดˆ) ๋งค์šฐ ์žฌํ˜„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋Š” 5์ดˆ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ  ์‹œ๊ฐ„ ์ดˆ๊ณผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์ข…์ข… ๊ฐ€์งœ๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณด๊ณ  ์žˆ๋˜ ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์•ฝ 30์ดˆ๊ฐ€ ์†Œ์š”๋˜๋Š” 4๊ฐœ์˜ ๋™์‹œ ์ง‘๊ณ„.exec ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” 8์ดˆ ๋งŒ์— ํƒ€์ž„์•„์›ƒ๋˜์—ˆ๊ณ , ํ•˜๋‚˜๋Š” 20์ดˆ ๋งŒ์— ํƒ€์ž„์•„์›ƒ๋˜์—ˆ์ง€๋งŒ, ๋‚˜๋จธ์ง€ 2๊ฐœ๋Š” 30์ดˆ ์•ˆ์— ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณตํ•˜๋ฉด ๋‹ค๋ฅธ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์ˆœ์„œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ํ•ญ์ƒ ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์ž˜๋ชป๋œ ์—ฐ๊ฒฐ์—์„œ ์ž˜๋ชป ์„ค์ •๋˜์—ˆ๊ฑฐ๋‚˜ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ ์ œ๊ฑฐ๋˜์ง€ ์•Š์•„ ํ›„์† ์‹คํ–‰์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๊ทธ๋Ÿฐ ๊ฒƒ. ๋ถˆํ–‰ํžˆ๋„ ์ง€๊ธˆ์€ ๊ทธ๊ฒƒ์„ ์ถ”๊ตฌํ•  ์‹œ๊ฐ„์ด ์—†์Šต๋‹ˆ๋‹ค.

[email protected] ์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. @steve-p-com์ด ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ 4.7.2์˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ์‹ค์ œ๋กœ ๊ฐ€์งœ์˜€์œผ๋ฉฐ ์ž˜๋ชป๋œ ์—ฐ๊ฒฐ์—์„œ ์˜ค๋ฅ˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ [email protected] ์— ์˜ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ [email protected] ์€ ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฒ„์ „์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์…จ์Šต๋‹ˆ๊นŒ?

์•„์ง 4.7.9 ๋˜๋Š” 4.8.0์„ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ [email protected] ๊ฐ€ ํšŒ๊ท€๋ฅผ ๋„์ž…ํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” @flosky ๊ฐ€ ๊ฒช๊ณ  ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” [email protected]์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ?

์˜ค๋Š˜ 4.8.1๋กœ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ชจ๋“  npm ์บ์‹œ์™€ ์–€ ์บ์‹œ๋ฅผ ์ œ๊ฑฐํ•œ ๋‹ค์Œ node_modules๋ฅผ zappedํ•œ ๋‹ค์Œ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌํƒœ๊นŒ์ง€๋Š” ๊ทธ๋Ÿฐ๋Œ€๋กœ ์ž˜๋๋‹ค.

4.8.1์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” Mongoose์™€ MongoDB์—์„œ ์—ฌ๋Ÿฌ ๋ฒ„์ „์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ํ•ญ์ƒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

@thenitai ๋” ๋งŽ์€ ์ปจํ…์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ / mongoDB ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@varunjayaraman ๋„๋ฉ”์ธ ์˜ค๋ฅ˜ ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ํฌ์ฐฉํ•˜์—ฌ ์•ฑ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์„ค์ •์—์„œ ๋ฌด์—‡์„ ํ™•์ธํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์˜ต์…˜์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var dbOptions = {
            db: { native_parser: true },
            server: {
                auto_reconnect: true,
                socketOptions: {
                    keepAlive: 1, 
                    connectTimeoutMS: 300000,
                    socketTimeoutMS: 300000
                }
            }
        };

์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „ v4.8.4์—์„œ๋„

๋ฐฉ๊ธˆ ๋ฌธ์ œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋„ˆ๋ฌด ๋†’์•„์„œ(ํ•ญ์ƒ 95%~99%) ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Š˜๋ฆฐ ํ›„ ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Mongoose 4.7.7 , MongoDB 3.4.1 ๋ฐ Node 4.7.2 ๊ฐ€ ์žˆ๋Š” ๋‚ด ์„œ๋ฒ„์—์„œ๋„ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์„œ๋ฒ„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋†’์œผ๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋ฌด์ž‘์œ„๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

CosWebsite-27 MongoError: connection 42 to 127.0.0.1:27017 timed out
CosWebsite-27     at Function.MongoError.create (/home/cos/cos/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:29:11)
CosWebsite-27     at Socket.<anonymous> (/home/cos/cos/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:186:20)
CosWebsite-27     at Socket.g (events.js:260:16)
CosWebsite-27     at emitNone (events.js:67:13)
CosWebsite-27     at Socket.emit (events.js:166:7)
CosWebsite-27     at Socket.wrapped (/home/cos/cos/node_modules/newrelic/lib/transaction/tracer/index.js:183:28)
CosWebsite-27     at Socket.wrappedEmit [as emit] (/home/cos/cos/node_modules/newrelic/lib/transaction/tracer/index.js:220:46)
CosWebsite-27     at Socket._onTimeout (net.js:333:8)
CosWebsite-27     at _runOnTimeout (timers.js:537:11)
CosWebsite-27     at _makeTimerTimeout (timers.js:528:3)
CosWebsite-27     at Timer.unrefTimeout (timers.js:597:5)
... times 6
CosWebsite-27 GET /clans/compas-c-r-98QP9J2G/members 500 10569.300 ms - 9893
CosWebsite-27 GET /players/1000-99JQVQ9VU 500 12388.484 ms - 9849
CosWebsite-27 GET /players/R0YUPPRR/profile 500 8204.622 ms - 9857
CosWebsite-27 GET /players/UG8YJUJY/profile 500 4622.819 ms - 9857
CosWebsite-27 GET /clans/next-state-P8RYGQYV 500 11526.859 ms - 9861
CosWebsite-27 GET /clans/YY2CCUVV 500 6755.380 ms - 9817

๋ณด์‹œ๋‹ค์‹œํ”ผ ์š”์ฒญ์€ 12์ดˆ ์ด์ƒ ์ง€์†๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชฝ๊ตฌ์Šค ์ปค๋„ฅํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

const mongoDB = {
    uri: "mongodb://127.0.0.1:27017/XXX",
    options: {
        host: '127.0.0.1',
        port: '27017',
        database: "XXX",
        compression: false,
        server: {
            poolSize: 5,
            auto_reconnect: true,
            socketOptions: {
                socketTimeoutMS: 0,
                connectTimeoutMS: 0
            }
        },
        promiseLibrary: Promise
    }
};

๋ฌด์—‡์ด ์ž˜๋ชป๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์–ด๋–ค ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@adrianbaron ์ €๋„์š”!!!
๋ˆ„๊ตฐ๊ฐ€ ์ €๋ฅผ ๋„์™€์ฃผ์„ธ์š”.

๋ˆ„๊ตฐ๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ mongo ๋“œ๋ผ์ด๋ฒ„์˜ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๊ฐ€ 4.9.1์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ, ๋ฌธ์ œ๋Š” 4.9.1์— ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค....

๋ชฝ๊ตฌ์Šค@4.9.1
[email protected]
[email protected]

์ตœ์‹  mongoose ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์˜ค๋Š˜ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. 4.7.1๋กœ ๋‹ค์‹œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋Š” ์–ผ๋งˆ ๋™์•ˆ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์–ธ์  ๊ฐ€๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์„ ๋•Œ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ฝ ํ•œ ๋‹ฌ ์ „์— Mongoose๋ฅผ 4.4.17์—์„œ 4.7.9๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ดํ›„๋กœ ๋งค์ผ cronjob์— ์˜ค๋ฅ˜๊ฐ€ ์„ธ ๋ฒˆ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ํ•ญ์ƒ mongo ์—ฐ๊ฒฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Mongoose 4.7.1๋กœ ์ „ํ™˜ํ•˜๊ณ  ์ด๊ฒƒ์ด ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€

2017-04-19 03:09:23: You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
MongoError: connection 261 to localhost:27017 timed out
    at Function.MongoError.create (/var/www/someproject/node_modules/mongodb-core/lib/error.js:29:11)
    at Socket.<anonymous> (/var/www/someproject/node_modules/mongodb-core/lib/connection/connection.js:186:20)
    at Socket.g (events.js:286:16)
    at emitNone (events.js:86:13)
    at Socket.emit (events.js:185:7)
    at Socket._onTimeout (net.js:333:8)
    at tryOnTimeout (timers.js:224:11)
    at Timer.listOnTimeout (timers.js:198:5)

@centigrade-thomas-becker ํ”„๋กœ๋•์…˜์—์„œ ํ•œ ๋‹ฌ ์ด์ƒ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์–ด์ œ 4.7.1๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ @ 4.7.7์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Mongo 4.7.1์—์„œ๋Š” 4.7.9๋ณด๋‹ค ๋ฌธ์ œ๊ฐ€ ์ ์ง€๋งŒ MongoDB์— ์ €์žฅํ•  ๋•Œ ๊ฐ€๋” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

2017-04-30 03:09:32: Error: connection timeout
    at .<anonymous> (/var/www/someproject/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:168:17)
    at emitTwo (events.js:106:13)
    at emit (events.js:191:7)
    at listener (/var/www/someproject/node_modules/mongodb/lib/db.js:1791:14)
    at emitOne (events.js:96:13)
    at emit (events.js:188:7)
    at .<anonymous> (/var/www/someproject/node_modules/mongodb/lib/server.js:270:14)
    at g (events.js:286:16)
    at emitOne (events.js:96:13)
    at emit (events.js:188:7)
    at .<anonymous> (/var/www/someproject/node_modules/mongodb-core/lib/topologies/server.js:322:12)
    at emitOne (events.js:96:13)
    at emit (events.js:188:7)
    at .<anonymous> (/var/www/someproject/node_modules/mongodb-core/lib/connection/pool.js:271:12)
    at g (events.js:286:16)
    at emitTwo (events.js:106:13)
    at emit (events.js:191:7)
    at Socket.<anonymous> (/var/www/someproject/node_modules/mongodb-core/lib/connection/connection.js:175:10)
    at Socket.g (events.js:286:16)
    at emitNone (events.js:86:13)
    at Socket.emit (events.js:185:7)
    at Socket._onTimeout (net.js:333:8)
    at tryOnTimeout (timers.js:224:11)
    at Timer.listOnTimeout (timers.js:198:5)

Ubuntu 15.04๋ฅผ ์‹คํ–‰ํ•˜๋Š” Linux VM์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๋™์ผ:

โ”œโ”€โ”ฌ [email protected]
โ”‚ โ”œโ”€โ”ฌ [email protected]
โ”‚ โ”‚ โ”œโ”€โ”€ [email protected]

๋ชฝ๊ณ  ๋ฒ„์ „ @ 3.2.11

AWS EC2์—์„œ.

์—…๋ฐ์ดํŠธ/ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? keepAlive: true ์ด(๊ฐ€) ๊ธ์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น ๊นŒ์š”?

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ options.server ๋ฅผ ํ†ตํ•ด ํƒ€์ž„์•„์›ƒ ๋งค๊ฐœ๋ณ€์ˆ˜( socketTimeoutMS ๋“ฑ)๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ _ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค_! ์šฐ๋ฆฌ๋Š” ๋ณต์ œ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹ค์ œ๋กœ ๋ณต์ œ๋ณธ ๋˜๋Š” ์ผ๋ฐ˜ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

const serverOptions = {
  poolSize: 100,
  socketOptions: {
    socketTimeoutMS: 60000
  }
};

mongoose.createConnection(dbpath, {
  server: serverOptions,
  replset: serverOptions
});

๊ทธ๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด mlab์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Mongo DB ์—ฐ๊ฒฐ ์˜ค๋ฅ˜: {[MongoError: ds155841.mlab์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ 0. com:xxxxx ์‹œ๊ฐ„ ์ดˆ๊ณผ'}

@RemeAjayi ์ด๊ฑด ์ด ํ‹ฐ์ผ“๊ณผ ๊ด€๋ จ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์š”.
๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์นœ ํ›„ ๋‹ค๋ฅธ ๊ฒƒ์„ ์‹œ๋„/์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@ht2 ๋‹น์‹ ์ด ๋‚ด ํ•˜๋ฃจ๋ฅผ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค โค๏ธ

์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ๊ฒฝ์šฐ 2๊ฐœ์˜ ์ž”์ธํ•œ find() ์ฟผ๋ฆฌ(Promise ํŒจํ„ด ์‚ฌ์šฉ)๋ฅผ ๋ณ‘๋ ฌํ™”ํ•  ๋•Œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ ํšŒ

Promise.all([
  col1.find({longQuery: true}),
  col2.find({longQuery: true})
])
.spread(function(result1, result2) {
  //stuff
});

์ˆœ์ฐจ์  ์ ‘๊ทผ์œผ๋กœ

col1.find({longQuery: true})
.then(function(result1) {
  return Promise.all([
    result1,
    col2.find({longQuery: true})
  ]);
})
.spread(function(result1, result2) {
  //stuff
});

์ž‘๋™์‹œ์ผฐ๋‹ค

@cyrilchapon ์€ ๊ทธ๊ฒƒ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ˆœ์ฐจ์  ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค./

๊ฐ„ํ—์ ์ž…๋‹ˆ๋‹ค..๋•Œ๋กœ๋Š” ์ž‘๋™ํ•˜๊ณ ,๋•Œ๋กœ๋Š” ํƒ€์ž„์•„์›ƒ..

์™œ ์ด๋ ‡๊ฒŒ ์กฐ์šฉํžˆ ๋‹ซ์Šต๋‹ˆ๊นŒ?

๋‚ด ์ด์ „ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜ https://github.com/Automattic/mongoose/issues/4789#issuecomment -298849907

๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์ƒˆ๋กœ์šด Linux, nodeJS ๋ฐ mongoDB๊ฐ€ ์žˆ๋Š” ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ํ•˜๋ฃจ ์ข…์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ž๋ฅด๊ณ  ๋‹ค์‹œ ์ฑ„์šฐ๋Š” ๊ฒƒ ์™ธ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š” ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 6000๋ฒˆ์˜ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ค‘ ์•ฝ 1๋ฒˆ์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚˜์˜ ๋งˆ์ง€๋ง‰ ์ฝ”๋ฉ˜ํŠธ ์ดํ›„์— ๊ฐ™์€ ๊ฒฝํ—˜์„ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋…ธ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  dep์™€ ํ•จ๊ป˜ ์ตœ์‹  ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ถ„๋ช…ํžˆ ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์œ„์˜ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ๋ ˆ๊ฑฐ์‹œ ์˜ค๋ฅ˜์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

mongo 3.6.2 ๋ฐ mongoose 4.9.2 ์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€ ์—ฐ๊ฒฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

MONGO_URI=mongodb://user:[email protected]:27017/dbname?keepAlive=true&poolSize=30&autoReconnect=true&socketTimeoutMS=360000&connectTimeoutMS=360000

@mzahidriaz ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@MinhNguyen41092 ํ˜„์žฌ ์œ ์ผํ•œ ๋ฌธ์„œ๋Š” MongoDB ๋“œ๋ผ์ด๋ฒ„ ๋ฌธ์„œ http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#connect ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ http://mongoosejs.com/docs/connections.html ์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ„ํ—์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ํŠน์ • ํ™˜๊ฒฝ์—์„œ mongodb-2.2.35 mongodb-core-2.1.19์™€ ํ•จ๊ป˜ mongoose-4.13.11์—๋„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ์˜ ๋‹ค๋ฅธ ์ง€์ ์—์„œ ๋‹ค์–‘ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ๋” ๋ฌด๊ฑฐ์šด ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ๋ณ‘๋ ฌ IIRC์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•ฑ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ๋ชจ๋‘ ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋Š” ์‹คํ–‰ํ•˜๋Š” ๋ฐ 15์ดˆ๋„ ๊ฑธ๋ฆฌ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ 30์ดˆ ์ œํ•œ ์‹œ๊ฐ„์— ๋„๋‹ฌํ–ˆ์–ด์•ผ ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

     MongoError: connection 0 to localhost:27017 timed out
      at Function.MongoError.create (node_modules/mongoose/node_modules/mongodb-core/lib/error.js:29:11)
      at Socket.<anonymous> (node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:200:20)
      at Socket._onTimeout (net.js:448:8)

์ด๊ฒƒ์€ CI ํ…Œ์ŠคํŠธ ๋นŒ๋“œ ์„œ๋ฒ„์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๊ฐœ๋ฐœ ์ปดํ“จํ„ฐ์—์„œ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

(๋‚ด ์‹œ์Šคํ…œ(๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ, ์ด๊ฒƒ์€ ๋‹ค์‹œ ํŒŒํ—ค์ณ์•ผ ํ•  ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ๋‚ด ์ฐธ์กฐ์šฉ์ž„)์—์„œ ์ด ์˜ค๋ฅ˜๋Š” ์ ์–ด๋„ ๋นŒ๋“œ ๋ฒˆํ˜ธ๊ฐ€ 358, 356, 355, 352์ธ ๊ฒฝ์šฐ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

useMongoClient: true ๋ฅผ ์ผœ๊ณ  ๋‚˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€์˜ CI ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ํ†ต๊ณผํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ๊ทธ ๋ณ€๊ฒฝ์œผ๋กœ 3๋ฒˆ์˜ ์„ฑ๊ณต์ ์ธ ์‹คํ–‰์„ ๊ฐ€์กŒ์ง€๋งŒ ๋งŽ์€ ์ด์ „์˜ ์ˆœ์ฐจ ์‹คํ–‰์€ ์ด์ƒํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

@thenitai @steve-p-com @adrienbaron ๋„ ์ด์ƒํ•œ ๊ฐ€์งœ ํƒ€์ž„์•„์›ƒ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”. useMongoClient: true ๋ฅผ ์˜ต์…˜์œผ๋กœ ๊ฐ€์ ธ์˜จ 4.11์ด ๋‚˜์˜ค๊ธฐ ์ „์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์›Œํฌ๋กœ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์ณค๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[email protected]
[email protected]
๋ชฝ๊ตฌ์Šค@4.9.10
๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กค ๋ฐ”์—์„œ ๋ฉฐ์น  ๋™์•ˆ 150๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๋ฌด์—‡์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?
screen shot 2019-02-25 at 2 53 37 pm
screen shot 2019-02-25 at 2 54 01 pm
screen shot 2019-02-25 at 2 55 27 pm

@SergeyVatz ๋Š” #5376์—์„œ ๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰