egg icon indicating copy to clipboard operation
egg copied to clipboard

egg服务出现 EIO 报错,导致服务停止运行

Open Rock-Legend opened this issue 3 years ago • 6 comments

ERROR 29171 nodejs.unhandledExceptionError: write EIO at afterWriteDispatched (internal/stream_base_commons.js:156:25) at writeGeneric (internal/stream_base_commons.js:147:3) at WriteStream.Socket._writeGeneric (net.js:785:11) at WriteStream.Socket._write (net.js:797:8) at writeOrBuffer (internal/streams/writable.js:358:12) at WriteStream.Writable.write (internal/streams/writable.js:303:10) at ConsoleTransport.log (/opt/app/bas-app-node-server/node_modules/egg-logger/lib/transports/console.js:46:22) at Map.log (/opt/app/bas-app-node-server/node_modules/egg-logger/lib/logger.js:79:19) at Map.Logger.<computed> [as info] (/opt/app/bas-app-node-server/node_modules/egg-logger/lib/logger.js:169:10) at process.<anonymous> (/opt/app/bas-app-node-server/node_modules/graceful-process/index.js:39:35) at Object.onceWrapper (events.js:422:26) at process.emit (events.js:315:20) errno: -5 code: "EIO" syscall: "write" name: "unhandledExceptionError" pid: 29171 egg运行了一段时间后,突然服务停止运行,查找opt/logs下的日志,在 common-error.log 中输出了以上内容,其他日志中没有找到异常日志的输出;

Rock-Legend avatar Jun 15 '22 15:06 Rock-Legend

https://github.com/eggjs/egg-logger/blob/master/lib/transports/console.js#L46

stdout write io 异常了。

fengmk2 avatar Jun 15 '22 15:06 fengmk2

@fengmk2 这个通常是什么情况下才报的呢,因为没有查到其他日志文件同时间的内容,没有定位出来。

Rock-Legend avatar Jun 16 '22 01:06 Rock-Legend

磁盘异常了,可能需要做一下容错处理。

fengmk2 avatar Jun 16 '22 01:06 fengmk2

@fengmk2 好的,谢谢提醒

Rock-Legend avatar Jun 16 '22 01:06 Rock-Legend

@fengmk2 好的,谢谢提醒

请问你这边有定位到具体原因吗?

shilucus avatar May 30 '23 10:05 shilucus

@shilucus 还没想好如何处理,最近遇到磁盘满了日志内存占用积压的问题 https://github.com/nodejs/node/pull/47949 ,也是打算直接重启进程。

如果你遇到了类似磁盘写入异常,看看服务器磁盘 io 情况,如果是日志太大,做一下日志大小切割 https://www.eggjs.org/zh-CN/core/logger#%E6%97%A5%E5%BF%97%E5%88%87%E5%89%B2

fengmk2 avatar May 30 '23 10:05 fengmk2