Windows 7 becomes unusable after atom update dependencies command


#1

Hi,

A very strange thing happens when I try to update dependencies for my package. I start the command and its window just stays at the top, nothing happens. But after this all my browsers IE11 and Firefox become unusable - they just can’t load/change any page and become unresponsive, atom itself behaves similarly too. Windows 7 becomes damaged - I can’t start Task Manager or use Ctr-Alt-Del, explorer tends to crash and not work at all. Reboot doesn’t help. It seems the package deps update messes with the windows internals though I can’t imagine how.

This happened (and happens) only for 1 package - node/vue. Somehow the package deps update could download and add this package to my project (and it seems to work fine) and then the things described above started to happen on each deps update including vue update. I removed vue from deps (but not from the project) and everything seems to be normal again - I could add a new dependency and update successfully added it in node_modules.

The question is what could be the problem? How can I trace update to see where exactly it fails to at least understand the source of this problem?

Atom version is 1.0.7.


#2

How did you update the dependencies?


#3

By typing Ctr-Shift-P, select Update package dependencies.


#4

Try just running apm install from the root of your package directory.


#5

I tried
apm update --verbose minimap
It did some work and then stopped to print anything. The end of the log looks like:

REQUEST onRequestResponse https://registry.npmjs.org/es5-ext 304 { date: 'Sun, 23 Aug 2015 18:32:05 GMT',
  via: '1.1 varnish',
  'cache-control': 'max-age=60',
  etag: '"CXF8M5X8HKQ0AHC7EZ2R94WVX"',
  age: '0',
  connection: 'keep-alive',
  'x-served-by': 'cache-fra1246-FRA',
  'x-cache': 'HIT',
  'x-cache-hits': '1',
  'x-timer': 'S1440354725.842710,VS0,VE702',
  vary: 'Accept' }
REQUEST finish init function https://registry.npmjs.org/es5-ext
REQUEST response end https://registry.npmjs.org/es5-ext 304 { date: 'Sun, 23 Aug 2015 18:32:05 GMT',
  via: '1.1 varnish',
  'cache-control': 'max-age=60',
  etag: '"CXF8M5X8HKQ0AHC7EZ2R94WVX"',
  age: '0',
  connection: 'keep-alive',
  'x-served-by': 'cache-fra1246-FRA',
  'x-cache': 'HIT',
  'x-cache-hits': '1',
  'x-timer': 'S1440354725.842710,VS0,VE702',
  vary: 'Accept' }
REQUEST end event https://registry.npmjs.org/es5-ext
REQUEST emitting complete https://registry.npmjs.org/es5-ext
REQUEST onRequestResponse https://registry.npmjs.org/d 304 { date: 'Sun, 23 Aug 2015 18:32:05 GMT',
  via: '1.1 varnish',
  'cache-control': 'max-age=60',
  etag: '"5WN889VUHFNNR4OEANKORJNV7"',
  age: '0',
  connection: 'keep-alive',
  'x-served-by': 'cache-fra1227-FRA',
  'x-cache': 'HIT',
  'x-cache-hits': '1',
  'x-timer': 'S1440354725.814503,VS0,VE775',
  vary: 'Accept' }
REQUEST finish init function https://registry.npmjs.org/d
REQUEST response end https://registry.npmjs.org/d 304 { date: 'Sun, 23 Aug 2015 18:32:05 GMT',
  via: '1.1 varnish',
  'cache-control': 'max-age=60',
  etag: '"5WN889VUHFNNR4OEANKORJNV7"',
  age: '0',
  connection: 'keep-alive',
  'x-served-by': 'cache-fra1227-FRA',
  'x-cache': 'HIT',
  'x-cache-hits': '1',
  'x-timer': 'S1440354725.814503,VS0,VE775',
  vary: 'Accept' }
REQUEST end event https://registry.npmjs.org/d
REQUEST emitting complete https://registry.npmjs.org/d

#6

apm update and the Update Package Dependencies command have nothing to do with each other. If you’re not writing your own package (or assisting in the development of someone else’s), then you never need to use the Update Package Dependencies command.

Also, the output you show for apm update --verbose minimap is referring to https://registry.npmjs.org rather than https://atom.io. Can you give more exact repro steps?


#7

Yes, I know the difference. I just noticed that ‘update’ leads to the same problem and it doesn’t work so it is the same issue but easier to investigate.
Minimap is a big package so I rerun update for ‘monokai’ - it doesn’t finish too, the script hangs:

Package Updates Available (1)
└── monokai 0.15.0 -> 0.18.0

Would you like to install these updates? (yes) yes

Installing monokai@0.18.0 to C:\Users\Andrew\.atom\packages REQUEST { method: 'GET',
  url: 'https://atom.io/api/packages/monokai',
  json: true,
  retries: 4,
  proxy: null,
  strictSSL: true,
  headers: { 'User-Agent': 'npm/2.5.1 node/v0.10.35 win32 ia32' },
  uri: null,
  callback: [Function] }
REQUEST make request https://atom.io/api/packages/monokai
REQUEST onRequestResponse https://atom.io/api/packages/monokai 200 { server: 'Cowboy',
  connection: 'close',
  date: 'Sun, 23 Aug 2015 18:43:29 GMT',
  status: '200 OK',
  'strict-transport-security': 'max-age=631152000',
  'x-frame-options': 'DENY',
  'x-xss-protection': '1; mode=block',
  'x-content-type-options': 'nosniff',
  'content-security-policy': 'default-src \'self\'; connect-src \'self\'; font-src \'self\'; frame-src \'self\
' https://www.youtube.com; img-src https://* \'self\' data:; media-src \'none\'; object-src \'self\'; script-s
rc \'self\' \'unsafe-inline\' https://ssl.google-analytics.com https://www.google-analytics.com https://platfo
rm.twitter.com; style-src \'self\' \'unsafe-inline\';',
  'content-type': 'application/json; charset=utf-8',
  etag: 'W/"f50e47537088c588ecdfdb1d1943b465"',
  'cache-control': 'max-age=0, private, must-revalidate',
  'x-request-id': '4bee1ceb-9a52-4de5-9c16-0cbf11e0a552',
  'x-runtime': '0.024165',
  'x-rack-cache': 'miss',
  via: '1.1 vegur' }
REQUEST finish init function https://atom.io/api/packages/monokai
REQUEST response end https://atom.io/api/packages/monokai 200 { server: 'Cowboy',
  connection: 'close',
  date: 'Sun, 23 Aug 2015 18:43:29 GMT',
  status: '200 OK',
  'strict-transport-security': 'max-age=631152000',
  'x-frame-options': 'DENY',
  'x-xss-protection': '1; mode=block',
  'x-content-type-options': 'nosniff',
  'content-security-policy': 'default-src \'self\'; connect-src \'self\'; font-src \'self\'; frame-src \'self\
' https://www.youtube.com; img-src https://* \'self\' data:; media-src \'none\'; object-src \'self\'; script-s
rc \'self\' \'unsafe-inline\' https://ssl.google-analytics.com https://www.google-analytics.com https://platfo
rm.twitter.com; style-src \'self\' \'unsafe-inline\';',
  'content-type': 'application/json; charset=utf-8',
  etag: 'W/"f50e47537088c588ecdfdb1d1943b465"',
  'cache-control': 'max-age=0, private, must-revalidate',
  'x-request-id': '4bee1ceb-9a52-4de5-9c16-0cbf11e0a552',
  'x-runtime': '0.024165',
  'x-rack-cache': 'miss',
  via: '1.1 vegur' }
REQUEST end event https://atom.io/api/packages/monokai
REQUEST has body https://atom.io/api/packages/monokai 6178
REQUEST emitting complete https://atom.io/api/packages/monokai
REQUEST { method: 'GET',
  url: 'https://www.atom.io/api/packages/monokai/versions/0.18.0/tarball',
  proxy: null,
  strictSSL: true,
  headers: { 'User-Agent': 'npm/2.5.1 node/v0.10.35 win32 ia32' },
  uri: null,
  callback: undefined }
REQUEST make request https://www.atom.io/api/packages/monokai/versions/0.18.0/tarball
REQUEST onRequestResponse https://www.atom.io/api/packages/monokai/versions/0.18.0/tarball 302 { server: 'Cowb
oy',
  connection: 'close',
  date: 'Sun, 23 Aug 2015 18:43:29 GMT',
  status: '302 Found',
  'strict-transport-security': 'max-age=631152000',
  'x-frame-options': 'DENY',
  'x-xss-protection': '1; mode=block',
  'x-content-type-options': 'nosniff',
  'content-security-policy': 'default-src \'self\'; connect-src \'self\'; font-src \'self\'; frame-src \'self\
' https://www.youtube.com; img-src https://* \'self\' data:; media-src \'none\'; object-src \'self\'; script-s
rc \'self\' \'unsafe-inline\' https://ssl.google-analytics.com https://www.google-analytics.com https://platfo
rm.twitter.com; style-src \'self\' \'unsafe-inline\';',
  location: 'https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0',
  'content-type': 'text/html; charset=utf-8',
  'cache-control': 'no-cache',
  'x-request-id': 'ead428d1-6fec-4bac-997c-b8484ef79f4d',
  'x-runtime': '0.230836',
  'x-rack-cache': 'miss',
  via: '1.1 vegur' }
REQUEST redirect https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0
REQUEST redirect to https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0
REQUEST {}
REQUEST make request https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0
REQUEST response end https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0 302 { server: 'Cow
boy',
  connection: 'close',
  date: 'Sun, 23 Aug 2015 18:43:29 GMT',
  status: '302 Found',
  'strict-transport-security': 'max-age=631152000',
  'x-frame-options': 'DENY',
  'x-xss-protection': '1; mode=block',
  'x-content-type-options': 'nosniff',
  'content-security-policy': 'default-src \'self\'; connect-src \'self\'; font-src \'self\'; frame-src \'self\
' https://www.youtube.com; img-src https://* \'self\' data:; media-src \'none\'; object-src \'self\'; script-s
rc \'self\' \'unsafe-inline\' https://ssl.google-analytics.com https://www.google-analytics.com https://platfo
rm.twitter.com; style-src \'self\' \'unsafe-inline\';',
  location: 'https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0',
  'content-type': 'text/html; charset=utf-8',
  'cache-control': 'no-cache',
  'x-request-id': 'ead428d1-6fec-4bac-997c-b8484ef79f4d',
  'x-runtime': '0.230836',
  'x-rack-cache': 'miss',
  via: '1.1 vegur' }
REQUEST onRequestResponse https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0 200 { 'conten
t-length': '2080',
  'access-control-allow-origin': 'https://render.githubusercontent.com',
  'content-security-policy': 'default-src \'none\'',
  'x-xss-protection': '1; mode=block',
  'x-frame-options': 'deny',
  'x-content-type-options': 'nosniff',
  'strict-transport-security': 'max-age=31536000',
  vary: 'Authorization,Accept-Encoding',
  etag: '"5067b6b52e25dc5b08b1ee67f988ea417e129b16"',
  'content-type': 'application/x-gzip',
  'content-disposition': 'attachment; filename=kevinsawicki-monokai-v0.18.0-0-g5067b6b.tar.gz',
  date: 'Sun, 23 Aug 2015 18:43:30 GMT' }
REQUEST finish init function https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0
REQUEST response end https://codeload.github.com/kevinsawicki/monokai/legacy.tar.gz/v0.18.0 200 { 'content-len
gth': '2080',
  'access-control-allow-origin': 'https://render.githubusercontent.com',
  'content-security-policy': 'default-src \'none\'',
  'x-xss-protection': '1; mode=block',
  'x-frame-options': 'deny',
  'x-content-type-options': 'nosniff',
  'strict-transport-security': 'max-age=31536000',
  vary: 'Authorization,Accept-Encoding',
  etag: '"5067b6b52e25dc5b08b1ee67f988ea417e129b16"',
  'content-type': 'application/x-gzip',
  'content-disposition': 'attachment; filename=kevinsawicki-monokai-v0.18.0-0-g5067b6b.tar.gz',
  date: 'Sun, 23 Aug 2015 18:43:30 GMT' }
gyp info it worked if it ends with ok
0.22.0
gyp verb cli [ 'C:\\Users\\Andrew\\AppData\\Local\\atom\\app-1.0.7\\resources\\app\\apm\\bin\\\\node.exe',
gyp verb cli   'C:\\Users\\Andrew\\AppData\\Local\\atom\\app-1.0.7\\resources\\app\\apm\\node_modules\\npm\\no
de_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'install',
gyp verb cli   '--target=0.22.0',
gyp verb cli   '--dist-url=https://atom.io/download/atom-shell',
gyp verb cli   '--arch=ia32',
gyp verb cli   '--ensure',
gyp verb cli   '--verbose' ]
gyp info using node-gyp@1.0.2
gyp info using node@0.10.35 | win32 | ia32
gyp verb command install []
gyp verb install input version string "0.22.0"
gyp verb install installing version: 0.22.0
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp info ok

This is where it stops.


#8

If enough time passes after this my computer becomes unresponsive as though gyp does some kind of DoS attack on IPC/FS - every file operation becomes extremely slow.

After reboot I was able with great difficulty update minimap - it hang two times for a long time (after gyp while loading package dependencies and at the end when it should have printed ‘done’). The second time it was too long and I rebooted the machine again. What can gyp do that can cause such unexplainable delays and slowdown of all IO… Nothing else produces anything even remotely similar.