追踪流星/节点光纤中的堆栈溢出

2023-12-25

我现在看到了这个崩溃,并且对节点光纤基础设施不够熟悉,不知道从哪里开始解释错误或检测代码......

Meteor server running on: http://localhost:3000/
W202407-10:06:05.740(-8)? (STDERR) /Users/dauser/.meteor/tools/0b2f28e18b/lib/node_modules/fibers/future.js:173
W202407-10:06:07.363(-8)? (STDERR)                      throw(ex);
W202407-10:06:07.363(-8)? (STDERR)                            ^
W202407-10:06:07.363(-8)? (STDERR) RangeError: Maximum call stack size exceeded
=> Exited with code: 8
=> Meteor server restarted

据我了解,某些事情重复得过于频繁,服务器堆栈崩溃了,然后崩溃了。不幸的是,我并不真正知道这个有问题的函数在哪里——我查看了我的 Deps.autorun 调用(目前只有一个),它似乎不是问题。我的代码都不是通过显式递归实现的,而且我没有任何理由怀疑正在传递大对象。显然,我不太确定。

我实际上只是在寻求有关如何检测代码的建议,以向我展示事情在哪里失控。由于 Meteor 在幕后做了很多工作,如果有人能给我一些关于在哪里查看的指示,那将非常有用。

刚刚回到这个话题,我仍然很迷茫,不知道该去哪里寻找。this https://stackoverflow.com/questions/7663957/debugging-maximum-call-stack-size-exceeded建议更新到节点 0.11.x 会给我更多信息,但这样做似乎并没有在崩溃时添加任何更多细节。

崩溃发生在任何页面交互之后——也就是说,服务器启动并且运行正常,但是如果我在浏览器中重新加载或与页面本身交互,BOOM!

应大众要求,服务器代码如下:

isAuthorized = () ->
    console.log "checking authorization"
    this.userId == Assets.getText('authorizedUsers')

Meteor.methods(
    isAuthorized : isAuthorized
    filePickerKey : () -> 
        # TODO: properly abstract this, rather than copy/paste...       
        if this.userId == Assets.getText('authorizedUsers')
            Assets.getText('fpKey')
        else
            Meteor.Error 403, 'Error 403: Forbidden')

取消future.js第172行的注释没有提供更多细节:

I2041-15:52:07.363(-8)? Resolve cb threw Maximum call stack size exceeded

而且,这是我在尝试使用节点检查器时遇到的麻烦。在过去的半个小时里我一直在玩这个,所以我可能只是犯了一些根本性的错误,但是: 我通过 npm 安装了 node-inspector (npm install -g node-inspector)。

然后,我尝试

$ node-inspector &
[1] 3408
$ Node Inspector v0.6.2
  info  - socket.io started
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

$ meteor &
[2] 3413
$ [[[[[ ~/Projects/indefinite-ways ]]]]]

=> Meteor server running on: http://localhost:3000/

$ kill -s USR1 3413
Hit SIGUSR1 - starting debugger agent.
debugger listening on port 5858

到目前为止,一切都很好。此时,客户端未在我的浏览器中打开(即没有指向 localhost:3000 的选项卡)。我打开一个指向 localhost:5858 的 Chrome 选项卡,然后查看 Meteor.js 的源代码 我在 Meteor.js 的第 6 行设置了一个断点

var Fiber = require('fibers');

然后打开流星客户端选项卡(localhost:3000),再次弹出上述堆栈溢出。调试器不会在第 6 行停止,或以任何其他方式表明它已注意到。如果我在第 3 行设置断点,情况也是如此。


Try 节点检查器 https://github.com/node-inspector/node-inspector,它允许检查调用堆栈。这是一个视频演示 http://strongloop.com/strongblog/announcing-a-new-and-improved-node-js-debugger/关于如何使用它,从视觉上看它看起来像 chrome 调试器(它是相同的基础源)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

追踪流星/节点光纤中的堆栈溢出 的相关文章

随机推荐

  • 简单的 DocumentDb 存储过程

    我正在尝试创建一个简单的 DocumentDb 存储过程以更好地理解其概念 在此示例中 我尝试返回所有 女性 用户 我是否需要关心返回单个匹配文档或多个文档 我的用户对象如下所示 id e85ee3d7 44a5 4250 a116 686
  • 如何仅在大括号之外搜索正则表达式

    我有这个正则表达式变量 var regexp new RegExp RegExp quote myExpression b g 它搜索后面有空格的表达式 RegExp quate 我从中得到如何在javascript中转义正则表达式 htt
  • 为什么使用 jQuery 返回 false 会停止传播,而使用 POJS 则不会?

    这是一个使用 POJS 的 jsfiddle 显示了return false 不会停止事件的传播 http jsfiddle net Ralt Lz2Pw http jsfiddle net Ralt Lz2Pw 这是另一个使用 jQuer
  • Rails PaperClip Attachments,知道是否有图像缩略图?

    我正在使用 Rails 3 回形针 并允许用户将附件上传到附件模型 如果文件是图像 应用程序会生成图像预览 如果文件不是 则仅上传文件 无图像预览 现在我想显示数据库中所有附件的列表 所以我使用attachment attachment l
  • ASP.NET MVC 中的 WebApi [FromUri] 等效项是什么?

    在 WebApi 中 我可以用以下方法装饰控制器操作上的参数 FromUri 如果愿意的话 将 URI 的组件 反序列化 到 POCO 模型中 又名模型绑定 尽管从 2 0 开始就使用 MVC 但我从未将它用于网站 我不知道为什么 在 AS
  • 如何根据 C# 和 .NET 中的周数获取月份

    我怎样才能得到month根据指定的周数 例如 如果获取周数2返回月份1 January 将周数乘以 7 例如 如果周数为 12 则将 12 乘以 7 这将表示已经过去的天数 四舍五入到最接近的周 将该数字除以 30 在示例中 我们计算得出的
  • 使用 mongoose 完成两个异步查询后进行回调

    使用猫鼬 我希望在两个不同的查询完成后进行回调 var team Team find name myteam var games Game find visitor myteam 那么假设我希望这些请求非阻塞并异步执行 如何在 Promis
  • 如何根据控制台输出中的文本使 GitLab 的 CI/CD 作业失败?

    我在用Lerna https github com lerna lerna管理多包存储库 在我的部署工作中 我使用 Lernapublish命令 对我来说 如果包中的代码发生更改 它应该始终向我们的 Artifactory 发布新版本 如果
  • Rails/ActiveRecord - 如何使其更简洁?

    在我看来 我有如下一行 看来我必须经常做这种事情 因为有些字段可以为空 有更好的方法来写这个吗 我可以在模型层处理它 但据我所知 这并不是真正的模型层功能 您可以使用delegate http api rubyonrails org cla
  • Android 的代码覆盖率 (calabash-android BDD)

    我正在使用测试我的 Android 应用程序葫芦安卓 https github com calabash calabash android它提供了它自己的 测试项目 以及一个重命名其包以反映测试下的应用程序的脚本 然后使用 Instrume
  • 您希望 Ruby 语言有哪些改进?

    您希望 Ruby 以及更广泛的 Ruby 社区 改进哪些方面 I read 某处 http blog hasmanythrough com 2008 6 20 recursive lambdaRuby 是 Smalltalk 和 LISP
  • 如何在不使用任何 html 标签的情况下向 html 文本添加换行符

    我想在网站上的个人资料文本中插入换行符 该网站只允许插入文本 因此我不能使用任何 html 标签 我想知道是否有任何方法可以像使用 ASCII 代码插入空格或制表符一样插入换行符 您可以设置white space to pre line 这
  • 在 Angular 2 材质的 md-grid-list 中使用 md-cards

    我是 Angular 2 材料设计的新手 我想要实现的是使用 angular2 材质创建一个网格列表并将 md cards 放入 md grid tile 中 虽然 md card 有position relative 但它们溢出了 md
  • C++ STL 向量保留

    我已经用下面的代码对 stl 矢量进行了测试 struct structA char charArray 256 structA a assign 256 characters to a charArray vector
  • 使用 MS Symbol Server 调试 .NET 代码 - VS 不显示变量值

    当我使用 NET 的 Microsoft 调试符号调试 ASP NET 网站代码时 当我调试 NET 框架代码 当然是由Microsoft Symbol Server 我告诉 VS2008 从中获取信息 Cannot obtain valu
  • ?android:attr/selectableItemBackground 在深色背景上不够明显

    在 Android Lollipop 上 我使用的是 android background android attr selectableItemBackground 当我单击按钮时获得材料动画反馈 当我有一个包含在白色 浅色布局中的按钮
  • Delphi Graphics32 相对鼠标位置(相对于图层)

    我有一个 ImgView32 它锚定到所有表单边距 表格被最大化 ImageView的位图不固定 可以是不同大小 我试图使用这个问题的代码在透明层上画一条线 在图层上画线 https stackoverflow com questions
  • Spring 3 拦截器顺序

    我有一个 Spring 3 Web 应用程序 它实现了两个拦截器 我使用一个带有 Configuration注释的配置类 代码如下 Override public void addInterceptors InterceptorRegist
  • 如何从另一个对象访问我的应用程序委托的窗口访问器方法?

    如前所述 我是 Objective C 的初级新手 但在阅读了 4 本有关该主题的实体书以及大量电子书和文档后 我仍然找不到我想要的东西 我有一个顶级内容视图控制器 想要从应用程序委托的窗口属性的物理尺寸配置其视图属性 这是几个人已经提出的
  • 追踪流星/节点光纤中的堆栈溢出

    我现在看到了这个崩溃 并且对节点光纤基础设施不够熟悉 不知道从哪里开始解释错误或检测代码 Meteor server running on http localhost 3000 W202407 10 06 05 740 8 STDERR