CharlieHess / slack-poker-bot

A bot that deals Texas Hold'em games in Slack
MIT License
1.66k stars 208 forks source link

Heroku builds failing, apparently because of lwip failure #51

Closed PatchworkGuilt closed 8 years ago

PatchworkGuilt commented 8 years ago

I tried to deploy the poker bot to heroku (using both the one-click and then the manual CLI options) and both deploys failed with the following error:

       > lwip@0.0.7 install /tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/node_modules/lwip
       > node-gyp rebuild

       make: Entering directory `/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/node_modules/lwip/build'
         CXX(target) Release/obj.target/lwip_decoder/src/decoder/init.o
       In file included from ../src/decoder/decoder.h:13:0,
                        from ../src/decoder/init.cpp:1:
       ../node_modules/nan/nan.h:324:27: error: redefinition of ‘template<class T> v8::Local<T> Nan::imp::NanEnsureHandleOrPersistent(const v8::Local<T>&)’
          NAN_INLINE v8::Local<T> NanEnsureHandleOrPersistent(const v8::Local<T> &val) {
                                  ^
       ../node_modules/nan/nan.h:319:17: error: ‘template<class T> v8::Handle<T> Nan::imp::NanEnsureHandleOrPersistent(v8::Handle<T>&)’ previously declared here
          v8::Handle<T> NanEnsureHandleOrPersistent(const v8::Handle<T> &val) {
                        ^
       ../node_modules/nan/nan.h:344:27: error: redefinition of ‘template<class T> v8::Local<T> Nan::imp::NanEnsureLocal(v8::Handle<T>&)’
          NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Handle<T> &val) {
                                  ^
       ../node_modules/nan/nan.h:334:27: error: ‘template<class T> v8::Local<T> Nan::imp::NanEnsureLocal(const v8::Local<T>&)’ previously declared here
          NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Local<T> &val) {
                                  ^
       ../node_modules/nan/nan.h:757:13: error: ‘node::smalloc’ has not been declared
            , node::smalloc::FreeCallback callback
                    ^
       ../node_modules/nan/nan.h:757:35: error: expected ‘,’ or ‘...’ before ‘callback’
            , node::smalloc::FreeCallback callback
                                          ^
       ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
       ../node_modules/nan/nan.h:761:50: error: ‘callback’ was not declared in this scope
                v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                         ^
       ../node_modules/nan/nan.h:761:60: error: ‘hint’ was not declared in this scope
                v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                                   ^
       ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
       ../node_modules/nan/nan.h:768:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
            return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                          ^
       ../node_modules/nan/nan.h:768:67: note: candidates are:
       In file included from ../src/decoder/decoder.h:12:0,
                        from ../src/decoder/init.cpp:1:
       /app/.node-gyp/4.1.1/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
        NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                               ^
       /app/.node-gyp/4.1.1/include/node/node_buffer.h:31:40: note:   no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
       /app/.node-gyp/4.1.1/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
        NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                               ^
       /app/.node-gyp/4.1.1/include/node/node_buffer.h:43:40: note:   no known conversion for argument 2 from ‘const char*’ to ‘char*’
       In file included from ../src/decoder/decoder.h:13:0,
                        from ../src/decoder/init.cpp:1:
       ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
       ../node_modules/nan/nan.h:772:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
            return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                                                                    ^
       ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
       ../node_modules/nan/nan.h:779:12: error: ‘Use’ is not a member of ‘node::Buffer’
            return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
                   ^
       make: *** [Release/obj.target/lwip_decoder/src/decoder/init.o] Error 1
       make: Leaving directory `/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/node_modules/lwip/build'
       gyp ERR! build error 
       gyp ERR! stack Error: `make` failed with exit code: 2
       gyp ERR! stack     at ChildProcess.onExit (/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
       gyp ERR! stack     at emitTwo (events.js:87:13)
       gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
       gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
       gyp ERR! System Linux 3.13.0-61-generic
       gyp ERR! command "/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.heroku/node/bin/node" "/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
       gyp ERR! cwd /tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/node_modules/lwip
       gyp ERR! node -v v4.1.1
       gyp ERR! node-gyp -v v3.0.3
       gyp ERR! not ok 
       npm ERR! Linux 3.13.0-61-generic
       npm ERR! argv "/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.heroku/node/bin/node" "/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.heroku/node/bin/npm" "install" "--unsafe-perm" "--userconfig" "/tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/.npmrc"
       npm ERR! node v4.1.1
       npm ERR! npm  v2.14.4
       npm ERR! code ELIFECYCLE

       npm ERR! lwip@0.0.7 install: `node-gyp rebuild`
       npm ERR! Exit status 1
       npm ERR! 
       npm ERR! Failed at the lwip@0.0.7 install script 'node-gyp rebuild'.
       npm ERR! This is most likely a problem with the lwip 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 lwip
       npm ERR! There is likely additional logging output above.

       npm ERR! Please include the following file with any support request:
       npm ERR!     /tmp/build_d8e912fc9dc4649b59fea3b9f9e7edf6/CharlieHess-slack-poker-bot-1d80836/npm-debug.log
-----> Build failed

After some digging, I believe it is caused by the following lwip issue: https://github.com/EyalAr/lwip/issues/169

Not sure if this is something you want to attempt to address (not sure if there would be a solution beyond migrating off of lwip or fixing their issue for them), but wanted to let you know that it seems like currently slack-poker-bot isn't deployable :cry:

IgniteMark commented 8 years ago

+1 to this. Same error for me on Heroku today.

cheolhom commented 8 years ago

Was unable to build master branch for same reasons.

node v4.1.1

cheolhom commented 8 years ago

@IgniteMark & @PatchworkGuilt submitted PR to fix heroku deployment here

https://github.com/CharlieHess/slack-poker-bot/pull/52

CharlieHess commented 8 years ago

Fixed with #52.

SevereOverfl0w commented 8 years ago

A better fix would be to upgrade lwip to 0.0.8 which has support for newer node engines.