Connection reset by peer ์—๋Ÿฌ์— ์˜ํ•ด ์†Œ์ผ“์ด ๋Š๊ธธ ๋•Œ

5,611 views
Skip to first unread message

Sunghyuk Gong

unread,
Jan 11, 2018, 8:08:47โ€ฏAM1/11/18
to Netty Korean User Group
์•ˆ๋…•ํ•˜์„ธ์š”? vertx์˜ sockjs๋ฅผ ์ด์šฉํ•ด ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋Š” ๋„์ค‘ ๊ถ๊ธˆ์ฆ์ด ์žˆ์–ด ์งˆ๋ฌธ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฆ„์•„๋‹ˆ๋ผ ์ŠคํŠธ๋ฆผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฝค ๋งŽ์€ ์ƒํ™ฉ์—์„œ connection reset by peer ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด vertx์˜ NetSocketImpl์—์„œ๋Š” ํ์— ์Œ“์ธ ๊ฒƒ๋“ค์„ ์ฐจ๋ก€๋กœ write, flush ํ•˜๊ณ  ํ›„์†์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์ด ๊ฒฝ์šฐ ์ด๋ฏธ ๋Š๊ธด ์†Œ์ผ“์„ ํ–ฅํ•ด flush ํ•˜๋А๋ผ ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๊ฐ€ ์ˆ˜๋งŒ์—์„œ ์ˆ˜์‹ญ๋งŒ๊ฐœ ์ •๋„๊ฐ€ ๋–จ์–ด์ง€๋Š”๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์•„๋งˆ ํ์— ์Œ“์ธ ๋ฉ”์„ธ์ง€ ๊ฐœ์ˆ˜ ํ˜น์€ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค).
์•„๋ž˜ stack trace๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ณด๋ฉด NioEventLoop์œผ๋กœ ์ „๋‹ฌ๋œ flush ๋ช…๋ น์˜ ์ž‘๋™๊ณผ์ •์ธ๊ฒƒ ๊ฐ™์€๋ฐ.. vertx๋กœ wrapping๋œ ์†Œ์ผ“๋‹จ์—์„œ๋Š” ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์—†์–ด๋ณด์˜€์Šต๋‹ˆ๋‹ค.
ํ˜น์‹œ ์ œ๊ฐ€ ์ƒํ™ฉ ํŒŒ์•…์„ ์ œ๋Œ€๋กœ ํ•œ ๊ฒƒ์ด ๋งž์„๊นŒ์š”? ๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์ด๊ฒŒ ์–ด๋–ค ์ƒํ™ฉ์ธ๊ฒƒ์ธ์ง€.. ํ˜น ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ์žˆ์„์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

2018-01-11 09:10:25.865 ERROR 19082 --- [vert.x-eventloop-thread-3] io.vertx.core.net.impl.ConnectionBaseย  ย  : java.io.IOException: ์—ฐ๊ฒฐ์ด ์ƒ๋Œ€ํŽธ์— ์˜ํ•ด ๋Š์–ด์ง
2018-01-11 09:10:25.865 ERROR 19082 --- [vert.x-eventloop-thread-3] c.d.s.r.publisher.front.VerticleImplย  ย  : SockJsSocket(172.51.2.195:57369) ExceptionHandler : ์—ฐ๊ฒฐ์ด ์ƒ๋Œ€ํŽธ์— ์˜ํ•ด ๋Š์–ด์ง

java.io.IOException: ์—ฐ๊ฒฐ์ด ์ƒ๋Œ€ํŽธ์— ์˜ํ•ด ๋Š์–ด์ง
ย  ย  ย  ย  at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
ย  ย  ย  ย  at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
ย  ย  ย  ย  at sun.nio.ch.IOUtil.write(IOUtil.java:148)
ย  ย  ย  ย  at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
ย  ย  ย  ย  at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:433)
ย  ย  ย  ย  at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:875)
ย  ย  ย  ย  at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.forceFlush(AbstractNioChannel.java:368)
ย  ย  ย  ย  at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:639)
ย  ย  ย  ย  at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
ย  ย  ย  ย  at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
ย  ย  ย  ย  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
ย  ย  ย  ย  at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
ย  ย  ย  ย  at java.lang.Thread.run(Thread.java:748)


์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

Trustin Lee (trustin)

unread,
Jan 11, 2018, 8:18:42โ€ฏAM1/11/18
to nett...@googlegroups.com, Netty Korean User Group
> ๋‹ค๋ฆ„์•„๋‹ˆ๋ผ ์ŠคํŠธ๋ฆผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฝค ๋งŽ์€ ์ƒํ™ฉ์—์„œ connection reset by peer ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด vertx์˜ NetSocketImpl์—์„œ๋Š” ํ์— ์Œ“์ธ ๊ฒƒ๋“ค์„ ์ฐจ๋ก€๋กœ write, flush ํ•˜๊ณ  ํ›„์†์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.ย ๊ทธ๋Ÿฐ๋ฐ ์ด ๊ฒฝ์šฐ ์ด๋ฏธ ๋Š๊ธด ์†Œ์ผ“์„ ํ–ฅํ•ด flush ํ•˜๋А๋ผ ๋Œ€๋žต ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๊ฐ€ ์ˆ˜๋งŒ์—์„œ ์ˆ˜์‹ญ๋งŒ๊ฐœ ์ •๋„๊ฐ€ ๋–จ์–ด์ง€๋Š”๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์•„๋งˆ ํ์— ์Œ“์ธ ๋ฉ”์„ธ์ง€ ๊ฐœ์ˆ˜ ํ˜น์€ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค).
์•„๋ž˜ stack trace๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ณด๋ฉด NioEventLoop์œผ๋กœ ์ „๋‹ฌ๋œ flush ๋ช…๋ น์˜ ์ž‘๋™๊ณผ์ •์ธ๊ฒƒ ๊ฐ™์€๋ฐ.. vertx๋กœ wrapping๋œ ์†Œ์ผ“๋‹จ์—์„œ๋Š” ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์—†์–ด๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ, vert.x์—์„œ๋Š” ํ์— ์Œ“์ธ ๊ฒƒ๋“ค์„ ๋„คํ‹ฐ ์ฑ„๋„์— write ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ”๋กœ ์‹คํŒจ์‹œ์ผœ์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹๋Ÿฐ์ง€์š”?

๋ฌผ๋ก  ๋„คํ‹ฐ์—์„œ๋„ ์†Œ์ผ“์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋งˆ์ง€๋ง‰์— ๋ฐœ์ƒํ–ˆ๋˜ ์˜ˆ์™ธ ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•œ๋‹ค๊ฑฐ๋‚˜๋‚˜ย ํ•˜์—ฌ ์ฆ‰์‹œ ์‹คํŒจ์‹œํ‚จ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์‹์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ์‹œ์Šคํ…œ ์ฝœ์ด๋‚˜ IOException์˜ instantiation์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒย ๊ทธ๋Ÿฌํ•œ ์ตœ์ ํ™”๋Š” vert.x ๋‚˜ Armeria ๋“ฑ์˜ ์ข€ ๋” ๋†’์€ ์ถ”์ƒ ๋ ˆ๋ฒจ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ์ชฝ์ด ์ข‹์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (๋กœ์šฐ ๋ ˆ๋ฒจ์— ๊ฐ€๊นŒ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ ์ถ”์ƒํ™”์˜ ๊ตฌ๋ฉ์ด ์ ์€ ์ชฝ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ)

์œ ์ € ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ๋ผ๋ฉด ์ŠคํŠธ๋ฆผํ•  ๋•Œ ๋ฒ„ํผ์— ์Œ“์•„ ๋‘๋Š” write์˜ ์ˆ˜๋ฅผ ์ค„์ด๊ณ , ๊ฐ write์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆฐ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์‹์œผ๋กœ ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ˆ: 16๋ฐ”์ดํŠธ์”ฉ 1๋งŒ๋ฒˆ ์“ฐ๋˜ ๊ฒƒ์€ 1๋งŒ ๋ฐ”์ดํŠธ์”ฉ 16๋ฒˆ ์จ์„œ ์˜ˆ์™ธ๊ฐ€ 1๋งŒ๋ฒˆ ๋ฐœ์ƒํ•˜๋˜ ๊ฒƒ์„ 16๋ฒˆ์œผ๋กœ ์ค„์ด๊ธฐ

์ดํฌ์Šน ๋“œ๋ฆผ
--
์ด ๋ฉ”์ผ์€ Google ๊ทธ๋ฃน์Šค 'Netty Korean User Group' ๊ทธ๋ฃน์— ๊ฐ€์ž…ํ•œ ๋ถ„๋“ค์—๊ฒŒ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜๊ณ  ๋” ์ด์ƒ ์ด๋ฉ”์ผ์„ ๋ฐ›์ง€ ์•Š์œผ๋ ค๋ฉด netty-ko+u...@googlegroups.com์— ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/netty-ko/46c57130-52d4-44c5-82b8-416ea16a2dfe%40googlegroups.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
๋” ๋งŽ์€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/optout์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

Sunghyuk Gong

unread,
Jan 11, 2018, 8:31:16โ€ฏPM1/11/18
to Netty Korean User Group
๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋„ vert.x์—์„œ ์ œ์–ดํ•˜๋Š” ์ชฝ์ด ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•ด vert.x์˜ google groups์— ์งˆ๋ฌธ์„ ์˜ฌ๋ ค๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์˜๋„๋œ ๋™์ž‘์ด๋ผ๋ฉด ์ œ๊ฐ€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒƒ์ด๊ฒ ์ง€์š”..
๋ง์”€ํ•ด์ฃผ์‹  ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‹œ๋„ํ•ด๋ณด์•„์•ผ๊ฒ ๋„ค์š”.ย 
์กฐ์–ธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

2018๋…„ 1์›” 11์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 10์‹œ 18๋ถ„ 42์ดˆ UTC+9, ์ดํฌ์Šน (Trustin Lee) ๋‹˜์˜ ๋ง:
Reply all
Reply to author
Forward
0 new messages