[CLOSED] Weird stack trace when the Meteor-Helper package is activated


Hi gals and guys,

Things started when Atom-0.138.0 landed. When the Meteor-Helper package is activated, if you select a tab, Atom crashes displaying this stack trace:


This behavior happens from time to time with a lesser reproduction rate even when I remove the Meteor-Helper package.

It is like if my Meteor-Helper package was increasing the reproduction rate of this issue.

For the moment, I’m stuck and don’t see what I could do to remove this behavior.

Could you please give me a hand on this?



So it is 100% reproducible when you select any tab at all? Or do you have a set of steps to reproduce it 100% of the time?


Not 100% but easily a 60% rate. If you switch from 2 tabs, 2 or 3 times, you surely reproduce the issue.


I’ll see if I can fiddle with it later today. I’m not familiar with Meteor though.


Even without installing Meteor, as soon as the status pane is fired, the error is reproducible. This should avoid you from installing the whole thing.


Thanks! I can also repro this fairly consistently (60% sounds right?) — I’m not familiar with the guts of Atom but happy to help if I can.


So I poked around a little bit and found this code:

Coupled with you saying that you had an issue starting with v0.138.0 … which is when this happened:

Could it be that your Velocity hack is running afoul of the new Module loading code?


Interesting enough, I see this changing from a js file to html file.


It could be the case. The module cache breaks the isolation though it had to be done for performance reason that I absolutely agree on.

I will try to remove Velocity and see if it works better without animations.

I also use q-io. Do you know if others had issue with promises on I/O?


I did a better import of Velocity. This time, I respect isolation. Still, the error remains.

# before the module.export
velocity = require 'velocity-animate/velocity'
# in the initialize method
@velocity = velocity.bind @

@serkandurusoy, what did you see? I didn’t get what you are referring to.


I’ve managed to remove completely Velocity. Still, the error occurs. It seems related to Pane.js and q:

TypeError: undefined is not a function
  at ViewRegistry.module.exports.ViewRegistry.createView (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/view-registry.js:53:21)
  at ViewRegistry.module.exports.ViewRegistry.getView (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/view-registry.js:33:21)
  at PaneContainer.module.exports.PaneContainer.getView (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/pane-container.js:108:32)
  at Pane.module.exports.Pane.getView (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/pane.js:82:29)
  at atom-pane.PaneElement.activeItemChanged (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/pane-element.js:185:29)
  at Emitter.module.exports.Emitter.emit (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:71:11)
  at Pane.module.exports.Pane.setActiveItem (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/pane.js:254:22)
  at Pane.module.exports.Pane.activateItem (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/pane.js:300:21)
  at /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/workspace.js:481:16
  at _fulfilled (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/q/q.js:787:54)
  at self.promiseDispatch.done (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/q/q.js:816:30)
  at Promise.promise.promiseDispatch (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/q/q.js:749:13)
  at /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/q/q.js:557:44
  at flush (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/q/q.js:108:17)
  at process._tickCallback (node.js:378:11)


OK, nailed it. The release Atom-0.138.0 prevents you from using q-io. Promises are ‘head over shoulders’.

I’ve removed q-io in favor of synchronized I/O. It works equally well. Thank you guys for the help you provided me (@leedohm, @serkandurusoy and @shilman80).

PS: @leedohm. How do you manage to catch up with all PR integrated into Atom? You are amazing.


Thanks. I basically read everything here, Watch the atom/atom repository and read pretty much every notification that comes through that. The new Atom Roadmap is also a pretty good way of keeping up with the official Atom team’s activities.

Since this is resolved, I’m going to close it in 24 hours unless there’s more.

closed #14

This topic was automatically closed after 24 hours. New replies are no longer allowed.