This is the problem I could find when testing. I have no idea if it is fatal with an TSX CPU.
% valgrind --tool=helgrind nodejs /usr/bin/mocha --reporter spec ==18808== Helgrind, a thread error detector ==18808== Copyright (C) 2007-2015, and GNU GPL'd, by OpenWorks LLP et al. ==18808== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info ==18808== Command: nodejs /usr/bin/mocha --reporter spec ==18808== ✓ version ✓ logging ✓ open fails for bogus file ✓ open file and read metadata ✓ update metadata ✓ create empty playlist ✓ create empty player (41ms) ✓ playlist item ids ✓ create, attach, detach player ✓ create, attach, detach loudness detector ✓ create, attach, detach encoder ✓ create, attach, detach fingerprinter 12 passing (91ms) ==18808== ---Thread-Announcement------------------------------------------ ==18808== ==18808== Thread #1 is the program's root thread ==18808== ==18808== ---------------------------------------------------------------- ==18808== ==18808== Thread #1: Exiting thread still holds 1 lock ==18808== at 0x8D7E4D8: _Exit (_exit.c:31) ==18808== by 0x8CFB8D2: __run_exit_handlers (exit.c:98) ==18808== by 0x8CFB979: exit (exit.c:105) ==18808== by 0xAE131A: node::Exit(v8::FunctionCallbackInfo<v8::Value> const&) (in /usr/bin/nodejs) ==18808== by 0x676189: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) (in /usr/bin/nodejs) ==18808== by 0x69D7CF: ??? (in /usr/bin/nodejs) ==18808== by 0x69DCEC: ??? (in /usr/bin/nodejs) ==18808== by 0x1DCA7500963A: ??? ==18808== by 0x1DCA7515BF20: ??? ==18808== by 0x1DCA7515BCA9: ??? ==18808== by 0x1DCA75009FF6: ??? ==18808== by 0x1DCA7515B94E: ??? ==18808== ==18808== ==18808== For counts of detected and suppressed errors, rerun with: -v ==18808== Use --history-level=approx or =none to gain increased speed, at ==18808== the cost of reduced accuracy of conflicting-access information ==18808== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 25 from 7) -- Happy hacking Petter Reinholdtsen