Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Memory exception - JavaScript heap out of memory #517

@dreic

Description

@dreic

Hello all,

I am running maildev 2.1.0 on rocky linux 9. I've setup multiple services for multiple environments and I store mails for each environment in their own directory. Today I was having issue with one of the environments..

There were ~1250 mails in the directory. When I opened web interface mails didn't want to load and I was getting error 500 on /email url if I remember correctly. There was enough free RAM and enough disk space.

The error in journalctl was

Feb 27 11:27:19 server.domain.com systemd[1]: maildev-staging.service: Consumed 27.436s CPU time.
Feb 27 11:27:19 server.domain.com systemd[1]: Started MailDev (staging environment).
Feb 27 11:27:20 server.domain.com maildev[23091]: MailDev using directory /var/maildev/staging
Feb 27 11:27:20 server.domain.com maildev[23091]: MailDev webapp running at http://0.0.0.0:8402/
Feb 27 11:27:20 server.domain.com maildev[23091]: MailDev SMTP Server running at 0.0.0.0:18402
Feb 27 11:27:40 server.domain.com maildev[23091]: <--- Last few GCs --->
Feb 27 11:27:40 server.domain.com maildev[23091]: [23091:0x55872cc7e250]    20327 ms: Mark-sweep (reduce) 1827.6 (1861.5) -> 1827.3 (1862.2) MB, 133.8 / 0.0 ms  (+ 234.7 ms in 46 steps since start of marking, biggest step 15.0 ms, wallt>
Feb 27 11:27:40 server.domain.com maildev[23091]: <--- JS stacktrace --->
Feb 27 11:27:40 server.domain.com maildev[23091]: FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
Feb 27 11:27:40 server.domain.com maildev[23091]:  1: 0x7f5d1a10e19c node::Abort() [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  2: 0x7f5d19e555d6 node::OOMErrorHandler(char const*, bool) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  3: 0x7f5d1a720964 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  4: 0x7f5d1a720c22 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  5: 0x7f5d1a8bb7f9  [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  6: 0x7f5d1a8d4d46 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]:  7: 0x7f5d1a8d6fda v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/lib64/lib>
Feb 27 11:27:40 server.domain.com maildev[23091]:  8: 0x7f5d1a8d705b v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/lib64/li>
Feb 27 11:27:40 server.domain.com maildev[23091]:  9: 0x7f5d1a89dad0 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]: 10: 0x7f5d1a897238 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [>
Feb 27 11:27:40 server.domain.com maildev[23091]: 11: 0x7f5d1a898f47 v8::internal::FactoryBase<v8::internal::Factory>::NewRawOneByteString(int, v8::internal::AllocationType) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]: 12: 0x7f5d1abe3c57 v8::internal::Runtime_StringBuilderConcat(int, unsigned long*, v8::internal::Isolate*) [/lib64/libnode.so.93]
Feb 27 11:27:40 server.domain.com maildev[23091]: 13: 0x7f5d1a378eb9  [/lib64/libnode.so.93]

And this is second type of error I found

Feb 27 11:27:40 server.domain.com systemd[1]: Started MailDev (staging environment).
Feb 27 11:27:41 server.domain.com maildev[23107]: MailDev using directory /var/maildev/staging
Feb 27 11:27:41 server.domain.com maildev[23107]: MailDev webapp running at http://0.0.0.0:8402/
Feb 27 11:27:41 server.domain.com maildev[23107]: MailDev SMTP Server running at 0.0.0.0:18402
Feb 27 11:29:10 server.domain.com maildev[23107]: RangeError: Invalid string length
Feb 27 11:29:10 server.domain.com maildev[23107]:     at JSON.stringify (<anonymous>)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at stringify (/usr/local/lib/node_modules/maildev/node_modules/express/lib/response.js:1160:12)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at ServerResponse.json (/usr/local/lib/node_modules/maildev/node_modules/express/lib/response.js:271:14)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at /usr/local/lib/node_modules/maildev/lib/routes.js:22:13
Feb 27 11:29:10 server.domain.com maildev[23107]:     at Object.mailServer.getAllEmail (/usr/local/lib/node_modules/maildev/lib/mailserver.js:419:3)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at /usr/local/lib/node_modules/maildev/lib/routes.js:18:16
Feb 27 11:29:10 server.domain.com maildev[23107]:     at Layer.handle [as handle_request] (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/layer.js:95:5)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at next (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/route.js:149:13)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at compression (/usr/local/lib/node_modules/maildev/node_modules/compression/index.js:215:5)
Feb 27 11:29:10 server.domain.com maildev[23107]:     at Layer.handle [as handle_request] (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/layer.js:95:5)
Feb 27 11:29:14 server.domain.com maildev[23107]: RangeError: Invalid string length
Feb 27 11:29:14 server.domain.com maildev[23107]:     at JSON.stringify (<anonymous>)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at stringify (/usr/local/lib/node_modules/maildev/node_modules/express/lib/response.js:1160:12)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at ServerResponse.json (/usr/local/lib/node_modules/maildev/node_modules/express/lib/response.js:271:14)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at /usr/local/lib/node_modules/maildev/lib/routes.js:22:13
Feb 27 11:29:14 server.domain.com maildev[23107]:     at Object.mailServer.getAllEmail (/usr/local/lib/node_modules/maildev/lib/mailserver.js:419:3)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at /usr/local/lib/node_modules/maildev/lib/routes.js:18:16
Feb 27 11:29:14 server.domain.com maildev[23107]:     at Layer.handle [as handle_request] (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/layer.js:95:5)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at next (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/route.js:149:13)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at compression (/usr/local/lib/node_modules/maildev/node_modules/compression/index.js:215:5)
Feb 27 11:29:14 server.domain.com maildev[23107]:     at Layer.handle [as handle_request] (/usr/local/lib/node_modules/maildev/node_modules/express/lib/router/layer.js:95:5)

Anyway I couldn't get it to work until I deleted all mails stored on the file system. Is this some kind of bug?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions