我有一台服务器,可能导致以下输出死亡:
events.js:38 EventEmitter.prototype.emit = function(type) { ^ RangeError: Maximum call stack size exceeded
但是,如果没有堆栈转储或跟踪,就无法确定这是无限递归还是只是链太大而已,更不用说问题函数在哪里了。
使用该--trace选项运行Node 不仅使我的测试运行缓慢(正如人们期望的那样),而且没有重现该问题。
--trace
有人有任何解决方案或提示来深入了解此问题吗?
看来目前的答案是:站稳脚步,等待Node.js更新到新的V8版本,或者使用此Chromium项目错误报告中的补丁构建自己的补丁。
来自v8-dev邮件列表的此归档线程显示了一个讨论,其中
请注意,Node.js v0.8使用的是V8 3.11;Node.js 0.10当前正在使用V8 3.14。因此,就Node而言,Chromium接受的针对此问题的补丁仍在“将来”。
(这个答案归功于@Coderoshi,因为这是我从他的答案中得到的线索,我才学到了这一切。)