Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Valgrind warnings (node::StreamWrap::WriteUtf8String) #8843

Closed
MichalStaruch opened this issue Dec 9, 2014 · 3 comments
Closed

Valgrind warnings (node::StreamWrap::WriteUtf8String) #8843

MichalStaruch opened this issue Dec 9, 2014 · 3 comments

Comments

@MichalStaruch
Copy link

Time to time I am getting FATAL ERROR: Evacuation Allocation failed - process out of memory.
I've started analysis with checking heapdumps, but didn't found any leaks, there (GC pretty busy, but new and deleted counters stay on the same level, slightly floating up and down between snapshots ).

Next step was checking whole thing with valgrind (valgrind --leak-check=full node some-code.js) - and I've noticed some warning with call stack starting in node::StreamWrap::WriteUtf8String, like this:

==1462== 460,739 bytes in 1,647 blocks are possibly lost in loss record 1,325 of 1,333
==1462==    at 0x4C298A0: operator new[](unsigned long) (vg_replace_malloc.c:389)
==1462==    by 0x95899A: v8::Handle<v8::Value> node::StreamWrap::WriteStringImpl<(node::encoding)1>(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x9582C8: node::StreamWrap::WriteUtf8String(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x6F299C: ??? (in /usr/bin/nodejs)
==1462==    by 0x2621A6C06361: ???
==1462==    by 0x2621A6E274C1: ???
==1462==    by 0x2621A6E2ABAC: ???
==1462==    by 0x2621A6E264AE: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A6E248EF: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A6CFB44A: ???
==1462==
==1462== 5,474,062 bytes in 19,539 blocks are possibly lost in loss record 1,331 of 1,333
==1462==    at 0x4C298A0: operator new[](unsigned long) (vg_replace_malloc.c:389)
==1462==    by 0x95899A: v8::Handle<v8::Value> node::StreamWrap::WriteStringImpl<(node::encoding)1>(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x9582C8: node::StreamWrap::WriteUtf8String(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x6F299C: ??? (in /usr/bin/nodejs)
==1462==    by 0x2621A6C06361: ???
==1462==    by 0x2621A70285E1: ???
==1462==    by 0x2621A702A4AC: ???
==1462==    by 0x2621A7027B6E: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A70268AF: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A70172A6: ???
==1462==
==1462== 9,575,508 bytes in 33,987 blocks are possibly lost in loss record 1,332 of 1,333
==1462==    at 0x4C298A0: operator new[](unsigned long) (vg_replace_malloc.c:389)
==1462==    by 0x95899A: v8::Handle<v8::Value> node::StreamWrap::WriteStringImpl<(node::encoding)1>(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x9582C8: node::StreamWrap::WriteUtf8String(v8::Arguments const&) (in /usr/bin/nodejs)
==1462==    by 0x6F299C: ??? (in /usr/bin/nodejs)
==1462==    by 0x2621A6C06361: ???
==1462==    by 0x2621A6E274C1: ???
==1462==    by 0x2621A6E2ABAC: ???
==1462==    by 0x2621A6E264AE: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A6E248EF: ???
==1462==    by 0x2621A6C0CCCD: ???
==1462==    by 0x2621A6E34DE6: ???

Could you take a look on this, please?

Environment:
Debian 8.0 "Jessie" (64-bit, fully updated), node.js v0.10.33 (from https://github.com/nodesource/distributions).

@brendanashworth
Copy link

@MichalStaruch is this still an issue / have you updated to a newer node version?

@MichalStaruch
Copy link
Author

@brendanashworth I moved to different projects long time ago, so I cannot help you much on this. All I can say is that was application processing thousands of strings per second, most of it simple operations like concatenation, JSON.parse() and JSON.stringify() calls. Single processed JSON size was up to 100 kB.

If stack traces doesn't point to any obvious flaws, and valgrind launched on your own test cases for streams doesn't catch anything then feel free to close this issue as cannot-reproduce.

@brendanashworth
Copy link

@MichalStaruch okay. I'd need a good reproduceable test case to take this further, and many memory leaks have been fixed in core since 0.10, so I'm going to go ahead and close this on the assumption that its fixed. Thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants