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


#1

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?

PEM


#2

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?


#3

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


#4

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


#5

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.


#6

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.


#7

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?


#8

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


#9

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?


#10

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.


#11

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)

#12

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.


#13

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.


#14

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