Я вижу этот сбой сейчас и не достаточно знаком с инфраструктурой волокна узла, чтобы узнать, с чего начать интерпретировать ошибку или инструмент кода ...
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
Насколько я понимаю, что -то повторяется слишком с энтузиазмом, стек сервера взорвался, и он сбои. К сожалению, у меня нет никакого реального представления о том, где эта оскорбляющая функция-я посмотрел на звонок My Deps.autorun (только один на данный момент), и это не кажется проблемой. Ни один из моего кода не реализован с явной рекурсией, и у меня нет никаких оснований подозревать, что крупные объекты передаются вокруг. Очевидно, я не совсем уверен, конечно.
Я действительно просто ищу совета о том, как придумать код, чтобы показать мне, где все выходит из -под контроля. Поскольку Meteor много делает за кулисами, было бы очень полезно, если бы кто -то мог дать мне несколько указателей относительно того, куда искать.
Просто возвращаюсь к этому, и я все еще довольно потерян в отношении того, где искать. это Предлагаемое обновление узла 0.11.x дало бы мне больше информации, но, похоже, не добавило больше подробностей при сбое.
Сбой происходит после любого взаимодействия страницы, то есть сервер запускается и работает нормально, но если я перезагружаю браузер или взаимодействую с самой страницей, бум!
По популярному спросу, вот код сервера:
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')
Некомментирующая линия 172 Future.js не предоставила более подробной информации:
I2041-15:52:07.363(-8)? Resolve cb threw Maximum call stack size exceeded
И вот проблема, с которыми я сталкиваюсь, пытаясь использовать Node-Incepport. Я играл с этим в течение последних полчаса, поэтому я, вероятно, просто допускаю некоторые фундаментальную ошибку, но: я установил инспектора узла через NPM (NPM Install -G Node-Incepper).
Тогда я пытаюсь
$ 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). Я открываю вкладку Chrome, указывающую на Localhost: 5858, и вижу источник Meteor.js Я установил точку останова в строке 6 Meteor.js
var Fiber = require('fibers');
а затем откройте вкладку Meteor Client (Localhost: 3000), и вышеупомянутый переполнение стека снова появляется. Отладчик не останавливается на линии 6 или каким -либо другим способом указывает на то, что он заметил. То же самое верно, если я установил точку останова в строке 3.