MongoDB? What's that, some kind of fruit? Give me a real database!
-
mysql workbench is reasonably good
-
@fbmac shame mysql is shit.
-
@Weng far better than mongo it is
-
@blakeyrat said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Sure you can use ANY DB system to simulate a key/value store, that's not difficult. But it's also using pretty much EVERY DB system other than Redis and its competitors in a broken inefficient way, and throwing the last 30 years of database theory in the trash.
Paging @topmind ...
-
Visual Studio installed (god why does it take so long!), SQL installer is doing its unending SQL Installer dance now.
So at some point, I'm going to need to load test this. And when I say 'load test' I actually mean it.
I'm envisioning doing a massive database prepopulate and then simulating 40-50 simultaneous, actual running, Javascript-chugging logged in users performing synthetic but realistic post/read/reply/chat/etc. operations continuously, plus the activity of a couple of really big crawlerbots.
Problem is, I have no idea how to do that. My web app load testing skills stop at "spam HTTP actions at it" and don't cover things like "You have cookies and you should do the things the Javascript tells you to do!" headless browser kind of stuff, and I don't really know what modern crawlers actually bother to do. Just load static content? Do everything in the Javascript onload? Actually interact with on-page Javascript? In my normal line of work, if a crawler can see it, ITSec has failed at life.
So, uh, anybody know anything about that? @Yamikuronue ?
-
@Weng For the last 24 hours:
So mostly just accessing random topics would reproduce the load. Anything prefixed with
/api
is the same as without that prefix, but accessed after the initial page load. There are a few socket.io requests that are interesting, like notifications.get, too.
-
@Weng JMeter. I don't think it can do on-page JS, but it can record the AJAX requests that were sent as you interacted with the site in a browser and then play them back by the hundredfold. Which is all the server really sees anyway.
-
@Yamikuronue hm. Not as optimal as my fantasy version, but looks like a useful surrogate and probably more reproducible anyway.
-
@Weng I mean, you can also use webdriver to load the page in a real browser, but that's piss for generating load, they usually suggest doing a load in the background and having webdriver just figure out what the degraded experience looks like.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
I am a masochist and love torturing myself in public
@DoctorJones may claim this about me as well.
Unfortunately, I don't as yet have too much time to devote on personal projects (maybe in May?).Best of luck!
-
@ScholRLEA Variable domains really aren't all that hard in SQL. WtfFramework does it all day every day. Putting an OOP ORM on top of it is Fucking Hard, though, unless you build classes at runtime and why the fuck would you want to do that?
So here's the minimum viable product plan:
The MSSQL-Mango Hybrid Engine (henceforth MMHE) and MSSQL Connector will both likely depend on or together constitute a lightweight object model, where each object consists mostly of a generator for some highly-optimized laser-focused SQL.
Once we get to that point for the basic objects, I'll start in on the dynamic schema, self-indexing and self-learning, eventually excising the Mongo fallback.
-
Currently fighting the "Get the damn thing to build in Visual Studio" clown.
npm is broken again. $10 it's because it somehow thinks it's looking for in C:\Program Files\nodejs\node.exe and can't deal with that empty path node. Where it got that path I cannot tell you.
====Executing command 'npm install'==== npm WARN `git config --get remote.origin.url` returned wrong result (git://github.com/wzrdtales/simple-recaptcha) npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha npm ERR! Error: spawn ENOENT npm ERR! at errnoException (child_process.js:1011:11) npm ERR! at Process.ChildProcess._handle.onexit (child_process.js:802:34) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <STOP ONEBOXING YOU POS> npm ERR! System Windows_NT 6.1.7601 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" npm ERR! cwd C:\Users\Weng\Documents\GitHub\WTDWTF\NodeBB-SQL npm ERR! node -v v0.10.35 npm ERR! npm -v 1.4.28 npm ERR! syscall spawn npm ERR! code ENOENT npm ERR! errno ENOENT ====npm command completed with exit code 1====
-
Awesome. Even attempting to reproduce the manual build/start process I did yesterday fails now.
-
Well, looks like if I avoid the spam-be-gone plugin, things will be fine.
Edit: Except that it's not.
Le sigh.
Edit 2: There we go. Had to reuse the DB from yesterday, it doesn't seem to want to autopopulate with the baseline if it warns on a missing plugin.
Edit 3: Except that's totally not even close to when the population code is supposed to run. WTF.
Edit 4: Running setup again and it behaves differently. And then hung partway through populating the database.
Excuse me. Computer. I like it better when you behave deterministically.
-
Oh, that's a really charming thing the node debugger does. It decided I didn't want to keep stepping through that code after all.
Very helpful, that.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
The MSSQL-Mango Hybrid Engine (henceforth MMHE) and MSSQL Connector will both likely depend on or together constitute a lightweight object model, where each object consists mostly of a generator for some highly-optimized laser-focused SQL.
Doesn't mssql have some document handling too? or is that only for xml?
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
"C:\Program Files\nodejs\\node.exe"
a slash too many there
-
@swayde IIRC, WIndows normally collapses multiple
\
s into a single
-
@RaceProUK that must depend on context, I've been bitten by double slashing before
-
@swayde said in MongoDB? What's that, some kind of fruit? Give me a real database!:
I've been bitten by double slashing before
-
@swayde said in MongoDB? What's that, some kind of fruit? Give me a real database!:
that must depend on context, I've been bitten by double slashing before
Unix will always collapse multiple slashes.
Windows assigns a specific meaning to a leading double slash: the name is interpreted as a UNC name, and the component following the double slash is taken to be the name of a server.
If there's a double slash immediately following a drivespec, like
X:\\vboxsvr\root
, the drivespec is ignored and the rest is interpreted as a UNC name.Other multiple slashes are collapsed the same way Unix does.
The Unix rationale for this behavior is that the way to make a full pathname out of the pathname for a directory and the name of a file is by joining the two with a slash; multiple slash collapsing lets this work properly even if the directory pathname ends with a slash. Since the most common reason for a directory pathname to end with a slash is that the directory concerned is the root directory, the most common place you find double slashes in Unix pathnames is right at the beginning. Microsoft's convention stomps this. In this respect it's consistent with Microsoft's approach to everything Unix: they have always grabbed Unix ideas and features and bolted them onto their shitty operating systems without ever actually grokking them, and the result is that MS operating systems can do everything that Unix does but it's always just that little bit fiddlier.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Where it got that path I cannot tell you.
There's a stupid thing in NPM where it tries to grab the user's default version of node. So instead of path-sniffing from where NPM's executable is to the nearest Node executable, or asking for the node executable location, it uses whatever's on the user's path, which breaks multi-version environments like my build server.
I bet you on Windows it's trying to do something similar, only it's probably using some non-path environment variable like NODE_PATH or something to boot.
-
@Yamikuronue said in MongoDB? What's that, some kind of fruit? Give me a real database!:
I bet you on Windows it's trying to do something similar, only it's probably using some non-path environment variable like NODE_PATH or something to boot.
I'd be checking to make sure that my PATH variable didn't include any components with
C:\Program Files
as a prefix, and if it did, replacing those withC:\PROGRA~1
. On 64-bit I'd dodir /x C:\
first to find out which way around theC:\Program Files
andC:\Program Files (x86)
toC:\PROGRA~1
andC:\PROGRA~2
mapping had ended up.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Oh, that's a really charming thing the node debugger does. It decided I didn't want to keep stepping through that code after all.
Very helpful, that.Yeah it does that sometimes. PHP debugger too.
Only C# debugger fucking works every time, no matter the call stack, no matter the code format.
Best advice I can give you, if you have to step too far, set up a break point.
-
@flabdablet said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Microsoft's convention stomps this. In this respect it's consistent with Microsoft's approach to everything Unix: they have always grabbed Unix ideas and features and bolted them onto their shitty operating systems without ever actually grokking them, and the result is that MS operating systems can do everything that Unix does but it's always just that little bit fiddlier.
That's utter tripe.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Also, would "Error: No Entry Permissions for C:\Users\Weng\Appdata\Roaming\npm" have been too fucking hard? ENOENT? Really?
Unix devs, what would you expect? They never give you human-readable errors when they can give you terse ones.
-
@FrostCat ENOENT is the same as FILE_NOT_FOUND, nothing to do with permissions.
-
@swayde 2016 has it.I mean, I guess this could go Bleeding Edge.
-
@ben_lubar said in MongoDB? What's that, some kind of fruit? Give me a real database!:
@FrostCat ENOENT is the same as FILE_NOT_FOUND, nothing to do with permissions.
I didn't mention permissions, @weng did.
-
@swayde Looks like the Node installer added node to %PATH% as C:\Program Files\nodejs
The trailing \ is unnecessary and dumb.This, however, did not actually fix the issue (or change npm's behavior).
-
@ben_lubar Would "Error: File not Found for C:\Users\Weng\Appdata\Roaming\npm" have been too fucking hard? ENOENT? Really?
:)
Of course, I am now wrangling with ENOENT that doesn't even bother telling you WHAT FILE.
-
@Weng it's not like there's a standard library function that gives you a useful error message in the user's language or anything.
-
@Weng I'll bet you a dollar that the file it's not finding is
C:\Program
. Somewhere in a shitty build script, a shitty build script developer will have failed to quote a pathname.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
@swayde Looks like the Node installer added node to %PATH% as C:\Program Files\nodejs
The trailing \ is unnecessary and dumb.Um...
And it didn't make it into the quote either.
-
Alright, so looking at this again:
npm WARN `git config --get remote.origin.url` returned wrong result (git://github.com/wzrdtales/simple-recaptcha) npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha npm ERR! Error: spawn ENOENT npm ERR! at errnoException (child_process.js:1011:11) npm ERR! at Process.ChildProcess._handle.onexit (child_process.js:802:34) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! FUCK YOU STOP ONEBOXING IN THE MIDDLE OF CODE TAGS npm ERR! System Windows_NT 6.1.7601 npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "update" "nodebb-plugin-spam-be-gone" "--save" npm ERR! cwd C:\Users\Weng\Documents\GitHub\NodeBB-SQL npm ERR! node -v v0.10.35 npm ERR! npm -v 1.4.28 npm ERR! syscall spawn npm ERR! code ENOENT npm ERR! errno ENOENT npm
It warns It successfully runs git config.
It then errors running git clone with some kind of file not found.What files could it not find?
git? It just ran git config, so that's out.
The current working directory where it's going to write the clone to? If I go run that git clone in that directory, it works.Node? Upon further examination of node.cmd, npm cannot be running if it hasn't successfully hit that node.exe path with the janky empty filenode in it and the space in the path. If npm weren't running, we wouldn't see this at all.
Conclusion: It's having kittens about some file it's not telling us about.
-
Nice.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
Nice.
Nodecistent behaviour? ;)
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
What files could it not find?
That first line is interesting: npm's package of simple-recaptcha comes from https://github.com/zeMirco/simple-recaptcha , but your git clone was from https://github.com/wzrdtales/simple-recaptcha
I wonder if that's part of the issue?
Nope. Apparently not, some googling gave me:
For those on Windows: you need to have Git in the PATH
IS Git in your path?
-
-
-
@Yamikuronue Well, I added it and no behavior changed. So presumably whatever dark magicks the OS was doing before worked.
-
Okay. So. Two possibilities:
- There isn't a node_modules\nodebb-plugin-spam-be-gone for it to build (though it might clean that up when it fails)
- When trying to build nodebb-plugin-spam-be-gone it vomits because it's pulling the wrong simple-recaptcha.
C:\Users\Weng\Documents\GitHub\NodeBB-SQL>npm install nodebb-plugin-spam-be-gone
--loglevel verbose
npm info it worked if it ends with ok
npm verb cli [ 'C:\Program Files\nodejs\\node.exe',
npm verb cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
npm verb cli 'install',
npm verb cli 'nodebb-plugin-spam-be-gone',
npm verb cli '--loglevel',
npm verb cli 'verbose' ]
npm info using npm@1.4.28
npm info using node@v0.10.35
npm verb node symlink C:\Program Files\nodejs\node.exe
npm WARN package.json nodebb-plugin-soundpack-default@0.1.6 No README data
npm WARN package.json passport@0.3.2 No README data
npm verb readDependencies using package.json deps
npm verb cache add [ 'nodebb-plugin-spam-be-gone@0.4.6', null ]
npm verb cache add name=undefined spec="nodebb-plugin-spam-be-gone@0.4.6" args=[
"nodebb-plugin-spam-be-gone@0.4.6",null]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: 'nodebb-plugin-spam-be-gone@0.4.6',
npm verb parsed url path: 'nodebb-plugin-spam-be-gone@0.4.6',
npm verb parsed url href: 'nodebb-plugin-spam-be-gone@0.4.6' }
npm verb cache add name="nodebb-plugin-spam-be-gone" spec="0.4.6" args=["nodebb-
plugin-spam-be-gone","0.4.6"]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: '0.4.6',
npm verb parsed url path: '0.4.6',
npm verb parsed url href: '0.4.6' }
npm verb addNamed [ 'nodebb-plugin-spam-be-gone', '0.4.6' ]
npm verb addNamed [ '0.4.6', '0.4.6' ]
npm verb lock nodebb-plugin-spam-be-gone@0.4.6 C:\Users\Weng\AppData\Roaming\npm
-cache\ccb15ffd-nodebb-plugin-spam-be-gone-0-4-6.lock
npm verb request where is /nodebb-plugin-spam-be-gone
npm verb request registry https://registry.npmjs.org/
npm verb request id 67729f9b9343e1cf
npm verb url raw /nodebb-plugin-spam-be-gone
npm verb url resolving [ 'https://registry.npmjs.org/',
npm verb url resolving './nodebb-plugin-spam-be-gone' ]
npm verb url resolved https://registry.npmjs.org/nodebb-plugin-spam-be-gone
npm verb request where is https://registry.npmjs.org/nodebb-plugin-spam-be-gone
npm info trying registry request attempt 1 at 12:14:40
npm verb etag "6DHTRKHXN1DV0I29W54G4OHOR"
npm http GET https://registry.npmjs.org/nodebb-plugin-spam-be-gone
npm http 304 https://registry.npmjs.org/nodebb-plugin-spam-be-gone
npm verb etag https://registry.npmjs.org/nodebb-plugin-spam-be-gone from cache
npm info install nodebb-plugin-spam-be-gone@0.4.6 into C:\Users\Weng\Documents\G
itHub\NodeBB-SQL
npm info installOne nodebb-plugin-spam-be-gone@0.4.6
npm verb node_modules\nodebb-plugin-spam-be-gone unbuild
npm verb tar unpack C:\Users\Weng\AppData\Roaming\npm-cache\nodebb-plugin-spam-b
e-gone\0.4.6\package.tgz
npm verb lock tar://C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules\nodeb
b-plugin-spam-be-gone C:\Users\Weng\AppData\Roaming\npm-cache\3b006e79-dules-nod
ebb-plugin-spam-be-gone.lock
npm verb lock tar://C:\Users\Weng\AppData\Roaming\npm-cache\nodebb-plugin-spam-b
e-gone\0.4.6\package.tgz C:\Users\Weng\AppData\Roaming\npm-cache\57f84d64-n-spam
-be-gone-0-4-6-package-tgz.lock
npm info preinstall nodebb-plugin-spam-be-gone@0.4.6
npm verb readDependencies using package.json deps
npm verb readDependencies using package.json deps
npm verb cache add [ 'akismet@^1.0.0', null ]
npm verb cache add name=undefined spec="akismet@^1.0.0" args=["akismet@^1.0.0",n
ull]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: 'akismet@^1.0.0',
npm verb parsed url path: 'akismet@^1.0.0',
npm verb parsed url href: 'akismet@^1.0.0' }
npm verb cache add [ 'project-honeypot@~0.0.0', null ]
npm verb cache add name=undefined spec="project-honeypot@~0.0.0" args=["project-
honeypot@~0.0.0",null]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: 'project-honeypot@~0.0.0',
npm verb parsed url path: 'project-honeypot@~0.0.0',
npm verb parsed url href: 'project-honeypot@~0.0.0' }
npm verb cache add [ 'simple-recaptcha@git://github.com/wzrdtales/simple-recaptc
ha#v1.0.0',
npm verb cache add null ]
npm verb cache add name=undefined spec="simple-recaptcha@git://github.com/wzrdta
les/simple-recaptcha#v1.0.0" args=["simple-recaptcha@git://github.com/wzrdtales/
simple-recaptcha#v1.0.0",null]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: '#v1.0.0',
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: 'simple-recaptcha@git://github.com/wzrdtales/sim
ple-recaptcha',
npm verb parsed url path: 'simple-recaptcha@git://github.com/wzrdtales/simple-
recaptcha',
npm verb parsed url href: 'simple-recaptcha@git://github.com/wzrdtales/simple-
recaptcha#v1.0.0' }
npm verb cache add name="akismet" spec="^1.0.0" args=["akismet","^1.0.0"]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: '^1.0.0',
npm verb parsed url path: '^1.0.0',
npm verb parsed url href: '^1.0.0' }
npm verb addNamed [ 'akismet', '^1.0.0' ]
npm verb addNamed [ null, '>=1.0.0-0 <2.0.0-0' ]
npm verb lock akismet@^1.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\8640e9ec-ak
ismet-1-0-0.lock
npm verb cache add name="project-honeypot" spec="~0.0.0" args=["project-honeypot
","~0.0.0"]
npm verb parsed url { protocol: null,
npm verb parsed url slashes: null,
npm verb parsed url auth: null,
npm verb parsed url host: null,
npm verb parsed url port: null,
npm verb parsed url hostname: null,
npm verb parsed url hash: null,
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: '~0.0.0',
npm verb parsed url path: '~0.0.0',
npm verb parsed url href: '~0.0.0' }
npm verb addNamed [ 'project-honeypot', '~0.0.0' ]
npm verb addNamed [ null, '>=0.0.0-0 <0.1.0-0' ]
npm verb lock project-honeypot@~0.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\46
8e0682-project-honeypot-0-0-0.lock
npm verb cache add name="simple-recaptcha" spec="git://github.com/wzrdtales/simp
le-recaptcha#v1.0.0" args=["simple-recaptcha","git://github.com/wzrdtales/simple
-recaptcha#v1.0.0"]
npm verb parsed url { protocol: 'git:',
npm verb parsed url slashes: true,
npm verb parsed url auth: null,
npm verb parsed url host: 'github.com',
npm verb parsed url port: null,
npm verb parsed url hostname: 'github.com',
npm verb parsed url hash: '#v1.0.0',
npm verb parsed url search: null,
npm verb parsed url query: null,
npm verb parsed url pathname: '/wzrdtales/simple-recaptcha',
npm verb parsed url path: '/wzrdtales/simple-recaptcha',
npm verb parsed url href: 'git://github.com/wzrdtales/simple-recaptcha#v1.0.0'
}
npm verb lock git://github.com/wzrdtales/simple-recaptcha C:\Users\Weng\AppData
Roaming\npm-cache\d666f563-b-com-wzrdtales-simple-recaptcha.lock
npm verb addRemoteGit [ 'git://github.com/wzrdtales/simple-recaptcha', 'v1.0.0'
]
npm verb request where is /akismet
npm verb request registry https://registry.npmjs.org/
npm verb url raw /akismet
npm verb url resolving [ 'https://registry.npmjs.org/', './akismet' ]
npm verb url resolved https://registry.npmjs.org/akismet
npm verb request where is https://registry.npmjs.org/akismet
npm info trying registry request attempt 1 at 12:14:40
npm verb etag "940FJC1SHMOM2ZB2MZT92Z7YJ"
npm http GET https://registry.npmjs.org/akismet
npm verb request where is /project-honeypot
npm verb request registry https://registry.npmjs.org/
npm verb url raw /project-honeypot
npm verb url resolving [ 'https://registry.npmjs.org/', './project-honeypot' ]
npm verb url resolved https://registry.npmjs.org/project-honeypot
npm verb request where is https://registry.npmjs.org/project-honeypot
npm info trying registry request attempt 1 at 12:14:40
npm verb etag "9J2YUAIJIJDTD9A0HTBYNWD9E"
npm http GET https://registry.npmjs.org/project-honeypot
npm WARNgit config --get remote.origin.url
returned wrong result (git://githu
b.com/wzrdtales/simple-recaptcha)
npm ERR! git clone git://github.com/wzrdtales/simple-recaptcha
npm http 304 https://registry.npmjs.org/akismet
npm verb etag https://registry.npmjs.org/akismet from cache
npm verb addNamed [ 'akismet', '1.0.0' ]
npm verb addNamed [ '1.0.0', '1.0.0' ]
npm verb lock akismet@1.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\2e368150-aki
smet-1-0-0.lock
npm http 304 https://registry.npmjs.org/project-honeypot
npm verb etag https://registry.npmjs.org/project-honeypot from cache
npm verb addNamed [ 'project-honeypot', '0.0.0' ]
npm verb addNamed [ '0.0.0', '0.0.0' ]
npm verb lock project-honeypot@0.0.0 C:\Users\Weng\AppData\Roaming\npm-cache\445
97801-project-honeypot-0-0-0.lock
npm verb about to build C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules\n
odebb-plugin-spam-be-gone
npm ERR! Error: spawn ENOENT
npm ERR! at errnoException (child_process.js:1011:11)
npm ERR! at Process.ChildProcess._handle.onexit (child_process.js:802:34)
npm ERR! If you need help, you may report this entire log,
npm ERR! including the npm and node versions, at:
npm ERR! STOP ONEBOXINGnpm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nod
ejs\node_modules\npm\bin\npm-cli.js" "install" "nodebb-plugin-spam-be-gone"
"--loglevel" "verbose"
npm ERR! cwd C:\Users\Weng\Documents\GitHub\NodeBB-SQL
npm ERR! node -v v0.10.35
npm ERR! npm -v 1.4.28
npm ERR! syscall spawn
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm verb exit [ 1, true ]
npm verb node_modules\nodebb-plugin-spam-be-gone unbuild
npm info preuninstall nodebb-plugin-spam-be-gone@0.4.6
npm info uninstall nodebb-plugin-spam-be-gone@0.4.6
npm verb true,C:\Users\Weng\Documents\GitHub\NodeBB-SQL\node_modules,C:\Users\To
ny\Documents\GitHub\NodeBB-SQL\node_modules unbuild nodebb-plugin-spam-be-gone@0
.4.6
npm info postuninstall nodebb-plugin-spam-be-gone@0.4.6
npm ERR! not ok code 0C:\Users\Weng\Documents\GitHub\NodeBB-SQL>
-
@Weng Out of curiosity, I did nodebb install on Windows. No problems so far.
Can you reiterate what exactly did you do, so I can try to reproduce the problem?
$ which node /c/Program Files (x86)/nodejs/node $ node --version v0.12.2 $ which npm /c/Program Files (x86)/nodejs/npm $ npm --version 2.7.4 $ npm install nodebb-plugin-spam-be-gone npm WARN package.json nodebb-plugin-soundpack-default@0.1.6 No README data npm WARN package.json passport@0.3.2 No README data nodebb-plugin-spam-be-gone@0.4.6 node_modules\nodebb-plugin-spam-be-gone ├── project-honeypot@0.0.0 ├── akismet@1.0.0 └── simple-recaptcha@1.0.0
All on Windows 10 x64, Msys2 shell.
-
@cartman82 point of breakage was somewhere after installing Visual Studio 2015 and the Node.js tools for VS.
-
@Weng said in MongoDB? What's that, some kind of fruit? Give me a real database!:
@cartman82 point of breakage was somewhere after installing Visual Studio 2015 and the Node.js tools for VS.
Probably clashing with your initial node installation.
I went through my env variables. This is node-related paths I have in PATH.
For System:
C:\Program Files (x86)\nodejs\ C:\Users\Cartman\AppData\Roaming\npm
For my current user:
C:\Users\Cartman\AppData\Roaming\npm
I don't have any special node-related variables.
-
@Weng If there's nothing suspicious in PATH, my next step would be to try and step into the npm, see what's going on.
The error is produced here:
c:\Program Files (x86)\nodejs\node_modules\npm\lib\install.js
function installManyAndBuild (deps, targetFolder, context, cb) { installMany(deps, targetFolder, context, function (er, d) { log.verbose("about to build", targetFolder) if (er) return cb(er) npm.commands.build( [targetFolder] , npm.config.get("global") , true , function (er) { return cb(er, d) }) }) }
Run npm like this:
node --debug-brk /c/Program\ Files\ \(x86\)/nodejs/node_modules/npm/lib/npm.js
Attach a debugger (eg. node inspector), and pause it at the point where it breaks.
I'd rather not try to break my own node setup to try this, unless you're really stuck.
-
@cartman82 PATH setup matches (except my Node is x64 because FFS it's 2016 - it's been 13 years since the introduction of x64, and fiddling around with x64/x86 hybrid systems is the domain of WtfCorp)
My Node is older (v0.10.35)
My NPM is older (2.7.4)Those versions are the ones NodeBB's install guide explicitly pointed to, but let me try updating because why not.
node 5.10.0 (Christ, do they use Chrome's version numbering system?)
npm 3.8.3.Hey, we're gtting somewhere. The output is shoutier!
C:\Users\Weng\Documents\GitHub\NodeBB-SQL>npm install nodebb-plugin-spam-be-gone
npm WARN addRemoteGit Error: spawn git ENOENT
npm WARN addRemoteGit at exports._errnoException (util.js:890:11)
npm WARN addRemoteGit at Process.ChildProcess._handle.onexit (internal/child
_process.js:182:32)
npm WARN addRemoteGit at onErrorNT (internal/child_process.js:348:16)
npm WARN addRemoteGit at _combinedTickCallback (internal/process/next_tick.j
s:74:11)
npm WARN addRemoteGit at process._tickCallback (internal/process/next_tick.j
s:98:9)
npm WARN addRemoteGit git://github.com/wzrdtales/simple-recaptcha.git#v1.0.0 re
setting remote C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-c
om-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab because of error: { [Error: sp
awn git ENOENT]
npm WARN addRemoteGit code: 'ENOENT',
npm WARN addRemoteGit errno: 'ENOENT',
npm WARN addRemoteGit syscall: 'spawn git',
npm WARN addRemoteGit path: 'git',
npm WARN addRemoteGit spawnargs:
npm WARN addRemoteGit [ '-c',
npm WARN addRemoteGit 'core.longpaths=true',
npm WARN addRemoteGit 'config',
npm WARN addRemoteGit '--get',
npm WARN addRemoteGit 'remote.origin.url' ],
npm WARN addRemoteGit cmd: 'git -c core.longpaths=true config --get remote.ori
gin.url' }
npm ERR! git clone --template=C:\Users\Weng\AppData\Roaming\npm-cache_git-remot
es_templates --mirror git://github.com/wzrdtales/simple-recaptcha.git C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-com-wzrdtales-simple-reca
ptcha-git-v1-0-0-ce1caeab:
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\
node_modules\npm\bin\npm-cli.js" "install" "nodebb-plugin-spam-be-gone"
npm ERR! node v5.10.0
npm ERR! npm v3.8.3
npm ERR! path git
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm ERR! syscall spawn gitnpm ERR! enoent spawn git ENOENT
npm ERR! enoent spawn git ENOENT
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! Please include the following file with any support request:
npm ERR! C:\Users\Weng\Documents\GitHub\NodeBB-SQL\npm-debug.log
So.
C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes_templates exists and is empty
C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git-github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab exists and is empty.Doing this works fine:
C:\Users\Weng\Documents\GitHub\NodeBB-SQL>git clone --template=C:\Users\Weng\App
Data\Roaming\npm-cache_git-remotes_templates --mirror git://github.com/wzrdtal
es/simple-recaptcha.git C:\Users\Weng\AppData\Roaming\npm-cache_git-remotes\git
-github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab
Cloning into bare repository C:\Users\Weng\AppData\Roaming\npm-cache_git-remote
s\git-github-com-wzrdtales-simple-recaptcha-git-v1-0-0-ce1caeab...
remote: Counting objects: 64, done.
remote: Total 64 (delta 0), reused 0 (delta 0), pack-reused 64
Receiving objects: 100% (64/64), 8.11 KiB, done.
Resolving deltas: 100% (32/32), done.
-
@Weng So now you know what's breaking
npm WARN addRemoteGit Error: spawn git ENOENT
I remember having this problem before at some point, but I forgot most of the details :/
As far as I remember, your current shell has all the paths correctly configured, but node spawns some subprocess that doesn't have correct PATH for git, which is why it can't find it.Check PATH-s for git? Restart Windows?
I have msys2 git, not the official install. If you have git for windows, maybe try running this from bash shell?
-
@cartman82 Don't have a working Bash setup, but I dropped into posh-git (basically a Git shell that lives in powershell) and ran npm install.
And it worked.
This whole toolchain is from outer fucking space. And that is not a compliment.
-
The best part is that I'll get to do this whole part again next weekend, when I build my new workstation. With added Windows 10 for excitement.