claritylab / lucida

Speech and Vision Based Intelligent Personal Assistant
Other
4.81k stars 879 forks source link

Build fails on Ubuntu 14.04 Server #204

Open k0105 opened 7 years ago

k0105 commented 7 years ago

Hi,

just wanted to let you that Lucida again breaks on diae / Ubuntu 14.04 Server. I get this error:

MongoDB and C++ driver installed
make[1]: Entering directory `/x/lucida/lucida'
make -C commandcenter all || exit 1; make -C imagematching all || exit 1; make -C questionanswering all || exit 1; make -C calendar all || exit 1; make -C djinntonic all || exit 1; make -C weather all || exit 1; make -C botframework-interface all || exit 1; make -C musicservice all || exit 1;
make[2]: Entering directory `/x/lucida/lucida/commandcenter'
make[2]: Leaving directory `/x/lucida/lucida/commandcenter'
make[2]: Entering directory `/x/lucida/lucida/imagematching'
make -C opencv_imm all || exit 1;
make[3]: Entering directory `/x/lucida/lucida/imagematching/opencv_imm'
make -C server all || exit 1; make -C test all || exit 1;
make[4]: Entering directory `/x/lucida/lucida/imagematching/opencv_imm/server'
g++ -Wall -std=c++11 -fPIC  -O3 -c gen-cpp2/LucidaService_client.cpp -o gen-cpp2/LucidaService_client.o
In file included from /usr/local/include/thrift/lib/cpp2/async/SaslServer.h:23:0,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:24,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/RequestChannel.h: In member function ‘std::__exception_ptr::exception_ptr apache::thrift::ClientReceiveState::exception()’:
/usr/local/include/thrift/lib/cpp2/async/RequestChannel.h:80:20: error: ‘class folly::exception_wrapper’ has no member named ‘getExceptionPtr’
       exc_ = excw_.getExceptionPtr();
                    ^
In file included from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24:0,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h: In member function ‘virtual folly::Future<void> apache::thrift::TAsyncTransportHandler::write(folly::wangle::ChannelHandlerAdapter<folly::IOBufQueue&, std::unique_ptr<folly::IOBuf> >::Context*, std::unique_ptr<folly::IOBuf>)’:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:77:32: error: could not convert ‘folly::makeFuture()()’ from ‘folly::Future<folly::Unit>’ to ‘folly::Future<void>’
       return folly::makeFuture();
                                ^
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h: In member function ‘virtual folly::Future<void> apache::thrift::TAsyncTransportHandler::close(folly::wangle::ChannelHandlerAdapter<folly::IOBufQueue&, std::unique_ptr<folly::IOBuf> >::Context*)’:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:97:30: error: could not convert ‘folly::makeFuture()()’ from ‘folly::Future<folly::Unit>’ to ‘folly::Future<void>’
     return folly::makeFuture();
                              ^
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h: In member function ‘virtual void apache::thrift::TAsyncTransportHandler::WriteCallback::writeSuccess()’:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:134:25: error: no matching function for call to ‘folly::Promise<void>::setValue()’
       promise_.setValue();
                         ^
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:134:25: note: candidates are:
In file included from /usr/local/include/folly/futures/Future.h:29:0,
                 from /usr/local/include/folly/wangle/channel/ChannelHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/folly/futures/Promise.h:77:3: note: template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void]
   setValue() {
   ^
/usr/local/include/folly/futures/Promise.h:77:3: note:   template argument deduction/substitution failed:
/usr/local/include/folly/futures/Promise.h: In substitution of ‘template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void] [with B = void]’:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:134:25:   required from here
/usr/local/include/folly/futures/Promise.h:77:3: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
/usr/local/include/folly/futures/Promise.h:83:8: note: template<class M> void folly::Promise<T>::setValue(M&&) [with M = M; T = void]
   void setValue(M&& value);
        ^
/usr/local/include/folly/futures/Promise.h:83:8: note:   template argument deduction/substitution failed:
In file included from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24:0,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:134:25: note:   candidate expects 1 argument, 0 provided
       promise_.setValue();
                         ^
In file included from gen-cpp2/LucidaService.h:11:0,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h: In member function ‘virtual void apache::thrift::FutureCallback<void>::requestSent()’:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:83:27: error: no matching function for call to ‘folly::Promise<void>::setValue()’
         promise_.setValue();
                           ^
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:83:27: note: candidates are:
In file included from /usr/local/include/folly/futures/Future.h:29:0,
                 from /usr/local/include/folly/wangle/channel/ChannelHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/folly/futures/Promise.h:77:3: note: template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void]
   setValue() {
   ^
/usr/local/include/folly/futures/Promise.h:77:3: note:   template argument deduction/substitution failed:
/usr/local/include/folly/futures/Promise.h: In substitution of ‘template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void] [with B = void]’:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:83:27:   required from here
/usr/local/include/folly/futures/Promise.h:77:3: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
/usr/local/include/folly/futures/Promise.h:83:8: note: template<class M> void folly::Promise<T>::setValue(M&&) [with M = M; T = void]
   void setValue(M&& value);
        ^
/usr/local/include/folly/futures/Promise.h:83:8: note:   template argument deduction/substitution failed:
In file included from gen-cpp2/LucidaService.h:11:0,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:83:27: note:   candidate expects 1 argument, 0 provided
         promise_.setValue();
                           ^
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h: In member function ‘virtual void apache::thrift::FutureCallback<void>::replyReceived(apache::thrift::ClientReceiveState&&)’:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:91:25: error: no matching function for call to ‘folly::Promise<void>::setValue()’
       promise_.setValue();
                         ^
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:91:25: note: candidates are:
In file included from /usr/local/include/folly/futures/Future.h:29:0,
                 from /usr/local/include/folly/wangle/channel/ChannelHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/folly/futures/Promise.h:77:3: note: template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void]
   setValue() {
   ^
/usr/local/include/folly/futures/Promise.h:77:3: note:   template argument deduction/substitution failed:
/usr/local/include/folly/futures/Promise.h: In substitution of ‘template<class B> typename std::enable_if<std::is_same<folly::Unit, T2>::value, void>::type folly::Promise<T>::setValue() [with B = B; T = void] [with B = void]’:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:91:25:   required from here
/usr/local/include/folly/futures/Promise.h:77:3: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
/usr/local/include/folly/futures/Promise.h:83:8: note: template<class M> void folly::Promise<T>::setValue(M&&) [with M = M; T = void]
   void setValue(M&& value);
        ^
/usr/local/include/folly/futures/Promise.h:83:8: note:   template argument deduction/substitution failed:
In file included from gen-cpp2/LucidaService.h:11:0,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/thrift/lib/cpp2/async/FutureRequest.h:91:25: note:   candidate expects 1 argument, 0 provided
       promise_.setValue();
                         ^
In file included from /usr/local/include/folly/futures/Promise-inl.h:23:0,
                 from /usr/local/include/folly/futures/Promise.h:116,
                 from /usr/local/include/folly/futures/Future.h:29,
                 from /usr/local/include/folly/wangle/channel/ChannelHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:19,
                 from /usr/local/include/thrift/lib/cpp2/async/Cpp2Channel.h:24,
                 from /usr/local/include/thrift/lib/cpp2/async/HeaderClientChannel.h:25,
                 from /usr/local/include/thrift/lib/cpp2/server/Cpp2ConnContext.h:25,
                 from /usr/local/include/thrift/lib/cpp2/async/AsyncProcessor.h:29,
                 from /usr/local/include/thrift/lib/cpp2/ServiceIncludes.h:8,
                 from gen-cpp2/LucidaService.h:9,
                 from gen-cpp2/LucidaService_client.cpp:7:
/usr/local/include/folly/futures/detail/Core.h: In instantiation of ‘class folly::detail::Core<void>’:
/usr/local/include/folly/futures/Promise-inl.h:28:71:   required from ‘folly::Promise<T>::Promise() [with T = void]’
/usr/local/include/thrift/lib/cpp2/async/TAsyncTransportHandler.h:132:9:   required from here
/usr/local/include/folly/futures/detail/Core.h:78:3: error: static assertion failed: void futures are not supported. Use Unit instead.
   static_assert(!std::is_void<T>::value,
   ^
make[4]: *** [gen-cpp2/LucidaService_client.o] Error 1
make[4]: Leaving directory `/x/lucida/lucida/imagematching/opencv_imm/server'
make[3]: *** [all-sub] Error 1
make[3]: Leaving directory `/x/lucida/lucida/imagematching/opencv_imm'
make[2]: *** [all-sub] Error 1
make[2]: Leaving directory `/x/lucida/lucida/imagematching'
make[1]: *** [all-sub] Error 1
make[1]: Leaving directory `/x/lucida/lucida'
make: *** [local] Error 2

Also, I'm confused about Mason's graphical tool. The pull request was apparently declined. The last word I heard was to use the pull request (even though both master and the pull request version don't fully compile).

Bottom line: Could you please make sure Lucida compiles on diae / 14.04 Server again and tell me what to do about the service registry? If we use Mason's tool, it needs to be in master, if we don't I need to know how to use the underlying interface.

Thank you in advance.

Best wishes, k0105

zhexuanc commented 7 years ago

Hi k0105,

First, for the compile issue, I checkout the error message and it seems that the dependencies are installed perfectly but there is an error during compiling the microservices. So the best way to figure it out is to checkout this wiki to install each microservice independently and then check which service is broken. https://github.com/claritylab/lucida/wiki/Installing-Local-Lucida Sorry for the inconvenience because recently we are working on Lucida infrastructure updates. I think I will clear up all the install issues by the end of next week.

Second, for the GUI tool. With the most recent update, Lucida serves as a platform that accepts different service to register in and connects them together to build workflows to answer queries. The GUI is used to register service and draw workflows. For more detail you can checkout the branch 'conv' under my Github repo. It is still in progress, because the building system is not updated yet. We will put a detailed documents for this updates later.

Also, there are some demos about GUI and service registry that I can share with you with email. Probably you will get more information from that. If you still have any question, feel free to contact with me or leave comments below. My email is czx5049@gmail.com.

Best wishes, zhexuanc

KamalGalrani commented 7 years ago

The log shows error in opencv_imm microservice. But I don't think the bug is in that service. Try uninstalling fbthrift, folly, wangle and thrift and install those dependencies again. Or do a clean install on a fresh server.

The installation script doesn't perform a full check on installed dependencies. Maybe they aren't installed properly.

@k0105 Can you reply with log which includes the installation of dependencies (after cleaning the above dependencies)