Skip to content
This repository has been archived by the owner on Jul 24, 2024. It is now read-only.

Debugging Windows Node 6 CI failures #1510

Closed
wants to merge 4 commits into from

Conversation

xzyfer
Copy link
Contributor

@xzyfer xzyfer commented Apr 30, 2016

Debugging Windows Node 6 CI failures from #1486.

@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch 4 times, most recently from 5da5d8a to 50df767 Compare April 30, 2016 09:23
@Keeo
Copy link

Keeo commented Apr 30, 2016

You can do it @xzyfer!

@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch 12 times, most recently from 770f8cc to 63689bf Compare April 30, 2016 15:15
@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch from 63689bf to 3e79afb Compare April 30, 2016 15:19
@xzyfer
Copy link
Contributor Author

xzyfer commented Apr 30, 2016

@saper I have managed to create a reduced test case. I feel like it related to nodejs/node#6160 or some other regressions around requires cache introduced in 6.0.0.

So far I have been able to assert the issue only affects Windows (both 32 and 64 bit). See identical builds on Linux, OSX, and Windows.

I suspect the require cache because my reduced test case requires our native modules twice.

  • on Windows w/ Node 6 it's loaded at two different paths
  • on Windows w/ Node 5 it's loaded twice at the same path
  • on Linux w/ Node 6 it's loaded twice at the same path
  • on OSX w/ Node 6 it's loaded twice at the same path

The error only happens in the first scenario.

@xzyfer
Copy link
Contributor Author

xzyfer commented Apr 30, 2016

It looks like I was correct about the require cache. Removing the subset in AppVeyor resolved the issue. This is because both the native modules requires are now both

C:\projects\node_modules\node-sass\vendor\win32-ia32-48\binding.nod

Where as with the subset the native module was required first from

C:\projects\node_modules\node-sass\vendor\win32-ia32-48\binding.nod

then secondly from

s:\node_modules\node-sass\vendor\win32-ia32-48\binding.nod

@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch 8 times, most recently from aff2059 to 1c4b7f8 Compare April 30, 2016 17:11
@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch 10 times, most recently from 6cc9f1f to c737034 Compare April 30, 2016 17:59
@xzyfer xzyfer force-pushed the trash/node-6-win-failure branch from c737034 to 063b954 Compare April 30, 2016 18:04
@xzyfer
Copy link
Contributor Author

xzyfer commented Apr 30, 2016

Ok I've narrowed this down a bug with require and subst.

mkdir \temp1
cd \temp1
npm install node-sass
subst s: \temp1
node
>require('\temp1\node-sass\vendor\win32-ia32-48\binding.node');
>require('s:\vendor\win32-ia32-48\binding.node');

@saper when you're online can you please confirm this?

@xzyfer xzyfer closed this Apr 30, 2016
xzyfer added a commit to xzyfer/node-sass that referenced this pull request Apr 30, 2016
After lots of investigation in sass#1510 I've determine the Node 6
failure we're seeing are due to the native extension being required
on different paths.
@xzyfer
Copy link
Contributor Author

xzyfer commented Apr 30, 2016

Confirmed removing the subst get the tests passing in #1512

@xzyfer
Copy link
Contributor Author

xzyfer commented Apr 30, 2016

I'm tempted to release v3.7.0 with MSVC PDB files and retroactively compile them once this is fixed in Node.

@xzyfer xzyfer changed the title [trash] Debugging Windows Node 6 CI failures Apr 30, 2016
jiongle1 pushed a commit to scantist-ossops-m2/node-sass that referenced this pull request Apr 7, 2024
Fix source-map bug introduces with some recent commit
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants