apiaryio / dredd

Language-agnostic HTTP API Testing Tool
https://dredd.org
MIT License
4.2k stars 280 forks source link

Problem: Segmentation fault #30

Closed eriknyk closed 10 years ago

eriknyk commented 10 years ago

Hi, I've executed:

dredd ./apiary.apib http://127.0.0.1:3000 Segmentation fault

I don't know what exactly is happening, but when I'm installing dredd, I'ge git some warnings like,...

npm WARN engine boom@0.3.8: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.21","npm":"1.3.11"}) npm WARN engine hoek@0.7.6: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.21","npm":"1.3.11"}) npm WARN engine sntp@0.1.4: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.21","npm":"1.3.11"}) npm WARN engine cryptiles@0.1.3: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.21","npm":"1.3.11"})

Please I hove you can help me.

Best Regards.

Almad commented 10 years ago

Hi Erik,

could you please post full log of npm install dredd and information about your node environment?

Thanks,

Lukas

ivan-koval commented 10 years ago

Hi,

I have the same problem. Here is my npm install log:

root@debian:/home/fake# npm install -g dredd npm http GET https://registry.npmjs.org/dredd npm http 304 https://registry.npmjs.org/dredd npm http GET https://registry.npmjs.org/gavel npm http GET https://registry.npmjs.org/protagonist npm http GET https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/winston npm http GET https://registry.npmjs.org/uri-template npm http GET https://registry.npmjs.org/async npm http GET https://registry.npmjs.org/cli npm http GET https://registry.npmjs.org/html npm http GET https://registry.npmjs.org/htmlencode npm http 304 https://registry.npmjs.org/commander npm http 304 https://registry.npmjs.org/gavel npm http 304 https://registry.npmjs.org/winston npm http 304 https://registry.npmjs.org/uri-template npm http 304 https://registry.npmjs.org/protagonist npm http 304 https://registry.npmjs.org/async npm http 304 https://registry.npmjs.org/html npm http 304 https://registry.npmjs.org/cli npm http 304 https://registry.npmjs.org/htmlencode npm http GET https://registry.npmjs.org/glob npm http GET https://registry.npmjs.org/pct-encode npm http GET https://registry.npmjs.org/colors npm http GET https://registry.npmjs.org/cycle npm http GET https://registry.npmjs.org/eyes npm http GET https://registry.npmjs.org/pkginfo npm http GET https://registry.npmjs.org/request npm http GET https://registry.npmjs.org/stack-trace npm http GET https://registry.npmjs.org/curl-trace-parser/0.0.7 npm http GET https://registry.npmjs.org/googlediff/0.1.0 npm http GET https://registry.npmjs.org/http-string-parser/0.0.4 npm http GET https://registry.npmjs.org/json-pointer/0.0.4 npm http GET https://registry.npmjs.org/async/0.2.9 npm http 304 https://registry.npmjs.org/pct-encode npm http 304 https://registry.npmjs.org/glob npm http GET https://registry.npmjs.org/minimatch npm http GET https://registry.npmjs.org/inherits npm http 304 https://registry.npmjs.org/colors npm http 304 https://registry.npmjs.org/cycle npm http 304 https://registry.npmjs.org/pkginfo npm http 304 https://registry.npmjs.org/request npm http 304 https://registry.npmjs.org/stack-trace

protagonist@0.5.7 install /usr/local/lib/node_modules/dredd/node_modules/protagonist node-gyp rebuild

make: Entering directory /usr/local/lib/node_modules/dredd/node_modules/protagonist/build' CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/HTTP.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/MarkdownBlock.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/MarkdownParser.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/Parser.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/ParserCore.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/Serialize.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/SerializeJSON.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/SerializeYAML.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/snowcrash.o CXX(target) Release/obj.target/libsnowcrash/snowcrash/src/posix/RegexMatch.o AR(target) Release/obj.target/snowcrash/snowcrash.a COPY Release/snowcrash.a CC(target) Release/obj.target/sundown/snowcrash/sundown/src/autolink.o CC(target) Release/obj.target/sundown/snowcrash/sundown/src/buffer.o CC(target) Release/obj.target/sundown/snowcrash/sundown/html/houdini_href_e.o CC(target) Release/obj.target/sundown/snowcrash/sundown/html/houdini_html_e.o CC(target) Release/obj.target/sundown/snowcrash/sundown/html/html.o CC(target) Release/obj.target/sundown/snowcrash/sundown/html/html_smartypants.o CC(target) Release/obj.target/sundown/snowcrash/sundown/src/markdown.o CC(target) Release/obj.target/sundown/snowcrash/sundown/src/stack.o CC(target) Release/obj.target/sundown/snowcrash/sundown/src/src_map.o AR(target) Release/obj.target/snowcrash/sundown.a COPY Release/sundown.a CXX(target) Release/obj.target/protagonist/src/annotation.o CXX(target) Release/obj.target/protagonist/src/blueprint.o CXX(target) Release/obj.target/protagonist/src/parse.o CXX(target) Release/obj.target/protagonist/src/protagonist.o CXX(target) Release/obj.target/protagonist/src/result.o SOLINK_MODULE(target) Release/obj.target/protagonist.node SOLINK_MODULE(target) Release/obj.target/protagonist.node: Finished COPY Release/protagonist.node make: Leaving directory/usr/local/lib/node_modules/dredd/node_modules/protagonist/build' npm http 304 https://registry.npmjs.org/curl-trace-parser/0.0.7 npm http 304 https://registry.npmjs.org/googlediff/0.1.0 npm http 304 https://registry.npmjs.org/http-string-parser/0.0.4 npm http 304 https://registry.npmjs.org/json-pointer/0.0.4 npm http 304 https://registry.npmjs.org/minimatch npm http 304 https://registry.npmjs.org/async/0.2.9 npm http 304 https://registry.npmjs.org/inherits npm http GET https://registry.npmjs.org/lru-cache npm http GET https://registry.npmjs.org/sigmund npm http 304 https://registry.npmjs.org/lru-cache npm http 304 https://registry.npmjs.org/sigmund npm http GET https://registry.npmjs.org/foreach npm http GET https://registry.npmjs.org/commander/1.2.0 npm http 304 https://registry.npmjs.org/eyes npm http GET https://registry.npmjs.org/form-data npm http GET https://registry.npmjs.org/node-uuid npm http GET https://registry.npmjs.org/mime npm http GET https://registry.npmjs.org/cookie-jar npm http GET https://registry.npmjs.org/hawk npm http GET https://registry.npmjs.org/aws-sign npm http 304 https://registry.npmjs.org/foreach npm http GET https://registry.npmjs.org/oauth-sign npm http GET https://registry.npmjs.org/forever-agent npm http GET https://registry.npmjs.org/tunnel-agent npm http GET https://registry.npmjs.org/json-stringify-safe npm http GET https://registry.npmjs.org/qs npm http 304 https://registry.npmjs.org/commander/1.2.0 npm http GET https://registry.npmjs.org/keypress npm http 304 https://registry.npmjs.org/cookie-jar npm http 304 https://registry.npmjs.org/hawk npm http 304 https://registry.npmjs.org/node-uuid npm http 304 https://registry.npmjs.org/mime npm http 304 https://registry.npmjs.org/aws-sign npm http 304 https://registry.npmjs.org/form-data npm http 304 https://registry.npmjs.org/oauth-sign npm http 304 https://registry.npmjs.org/json-stringify-safe npm http 304 https://registry.npmjs.org/tunnel-agent npm http 304 https://registry.npmjs.org/forever-agent npm http 304 https://registry.npmjs.org/qs npm WARN engine hawk@0.10.2: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.24","npm":"1.3.21"}) npm http 304 https://registry.npmjs.org/keypress npm http GET https://registry.npmjs.org/combined-stream npm http GET https://registry.npmjs.org/boom npm http GET https://registry.npmjs.org/cryptiles npm http GET https://registry.npmjs.org/hoek npm http GET https://registry.npmjs.org/sntp npm http 304 https://registry.npmjs.org/combined-stream npm http GET https://registry.npmjs.org/delayed-stream/0.0.5 npm http 304 https://registry.npmjs.org/cryptiles npm http 304 https://registry.npmjs.org/sntp npm http 304 https://registry.npmjs.org/boom npm http 304 https://registry.npmjs.org/hoek npm WARN engine cryptiles@0.1.3: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.24","npm":"1.3.21"}) npm WARN engine sntp@0.1.4: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.24","npm":"1.3.21"}) npm WARN engine boom@0.3.8: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.24","npm":"1.3.21"}) npm WARN engine hoek@0.7.6: wanted: {"node":"0.8.x"} (current: {"node":"v0.10.24","npm":"1.3.21"}) npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5 /usr/local/bin/dredd -> /usr/local/lib/node_modules/dredd/bin/dredd dredd@0.1.7 /usr/local/lib/node_modules/dredd ├── commander@2.0.0 ├── htmlencode@0.0.3 ├── async@0.2.10 ├── html@0.0.7 ├── uri-template@0.4.1 (pct-encode@1.0.1) ├── cli@0.4.5 (glob@3.2.8) ├── gavel@0.2.8 (async@0.2.9, http-string-parser@0.0.4, googlediff@0.1.0, amanda@0.4.8, json-pointer@0.0.4, curl-trace-parser@0.0.7) ├── winston@0.7.2 (cycle@1.0.3, stack-trace@0.0.8, eyes@0.1.8, colors@0.6.2, pkginfo@0.3.0, request@2.16.6) └── protagonist@0.5.7

alonisser commented 10 years ago

Getting this error also... any ideas?

zdne commented 10 years ago

@eriknyk @ivan-koval @alonisser

Guys can you run gcc -v for me?

ivan-koval commented 10 years ago

myself@debian:~$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.8.2-14' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.8.2 (Debian 4.8.2-14)

zdne commented 10 years ago

Thanks @ivan-koval ! This is what I have expected. There was an issue in upstream. Bumping Protagonist to v0.6.1 should fix it. Can you please verify (from the source, npm not published yet)?

ivan-koval commented 10 years ago

npm -g install protagonist npm http GET https://registry.npmjs.org/protagonist npm http 304 https://registry.npmjs.org/protagonist npm http GET https://registry.npmjs.org/protagonist/-/protagonist-0.6.1.tgz npm http 200 https://registry.npmjs.org/protagonist/-/protagonist-0.6.1.tgz

@zdne as you see there is npm protagonist. But I still have the same problem. Or this is not the version you wanted me to check?

zdne commented 10 years ago

@ivan-koval

The Protagonist version as used by Dredd has to be 0.6.1. I'd suggest not to install Protagonist globally.

Can you for the sake of the test remove Protagonist and Dredd from your system. Clone the actual Dredd repo from GitHub; cd into Dredd directory; run npm install and the try to reproduce the segfault from there?

ivan-koval commented 10 years ago

@zdne still have a problem. Now I see errors after npm install: npm ERR! protagonist@0.6.1 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the protagonist@0.6.1 install script. npm ERR! This is most likely a problem with the protagonist package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node-gyp rebuild npm ERR! You can get their info via: npm ERR! npm owner ls protagonist npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.12-1-amd64 npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" npm ERR! cwd /home/myself/fubo/dredd npm ERR! node -v v0.10.25 npm ERR! npm -v 1.3.24 npm ERR! code ELIFECYCLE ..... npm http 304 https://registry.npmjs.org/core-util-is npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/myself/fubo/dredd/npm-debug.log npm ERR! not ok code 0

zdne commented 10 years ago

@ivan-koval

Can you sudo npm cache clear and

$ npm install protagonist
...
$ cd node_modules/protagonist/
$ npm install
$ npm test

I have just tested in on three platforms and it works great for me on OS X Mavericks:

hiro:protagonist zdenek$ uname -a
Darwin hiro.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64
hiro:protagonist zdenek$ gcc -v 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
hiro:protagonist zdenek$ node -v
v0.8.25
hiro:protagonist zdenek$ npm -v
1.3.17

Ubuntu 13 with gcc 4.8

vagrant@packer-ubuntu-13:~/T/node_modules/protagonist$ uname -a
Linux packer-ubuntu-13 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
vagrant@packer-ubuntu-13:~/T/node_modules/protagonist$ gcc -v 
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.1-10ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) 
vagrant@packer-ubuntu-13:~/T/node_modules/protagonist$ node -v
v0.10.21
vagrant@packer-ubuntu-13:~/T/node_modules/protagonist$ npm -v 
1.3.11

Ubuntu Precise64 with GCC 4.7

vagrant@precise64:~/T/node_modules/protagonist$ uname -a
Linux precise64 3.2.0-29-virtual #46-Ubuntu SMP Fri Jul 27 17:23:50 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
vagrant@precise64:~/T/node_modules/protagonist$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
vagrant@precise64:~/T/node_modules/protagonist$ node -v
v0.10.21
vagrant@precise64:~/T/node_modules/protagonist$ npm -v
1.3.11

The output should be something like

> protagonist@0.6.1 test /home/vagrant/T/node_modules/protagonist
> mocha --ui tdd --reporter spec --compilers coffee:coffee-script test/test.coffee

  API Blueprint parser
    ✓ parses API name 
    ✓ parses API description 
    ✓ parses resource group 
    ✓ parses resource 
    ✓ fails to parse blueprint with tabs 
    ✓ parses blueprint with warnings 
    ✓ parses blueprint metadata 
    ✓ accepts options 
    ✓ parses resource parameters 
    ✓ parses action parameters 

  10 passing (22ms)

Can you verify on a Virtual dev environment using Vagrant?

ivan-koval commented 10 years ago

@zdne thanks for the answer. npm cache clear fixed the problem.