cocaine / cocaine-core Goto Github PK
View Code? Open in Web Editor NEWAn open platform to build your own PaaS clouds.
License: GNU Lesser General Public License v3.0
An open platform to build your own PaaS clouds.
License: GNU Lesser General Public License v3.0
host, port = endpoint
instead of
host, port = endpoint.split(":")
fixes it
canning dependencies of target cocaine-core
[ 11%] Building CXX object CMakeFiles/cocaine-core.dir/src/actor.cpp.o
[ 14%] Building CXX object CMakeFiles/cocaine-core.dir/src/api.cpp.o
[ 17%] Building CXX object CMakeFiles/cocaine-core.dir/src/app.cpp.o
[ 20%] Building CXX object CMakeFiles/cocaine-core.dir/src/archive.cpp.o
[ 22%] Building CXX object CMakeFiles/cocaine-core.dir/src/context.cpp.o
/storm/cocaine-core-0.11/src/context.cpp: In constructor ‘cocaine::config_t::config_t(const std::string&)’:
/storm/cocaine-core-0.11/src/context.cpp:161: error: ambiguous overload for ‘operator=’ in ‘((cocaine::config_t_)this)->cocaine::config_t::network.cocaine::config_t::::gateway = {Json::Value::asString() const(), ((Json::Value_)((Json::Value_)root.Json::Value::operator[](%28%28const char*%29"network"%29))->Json::Value::operator[](%28%28const char*%29"gateway"%29))->Json::Value::operator[](%28%28const char*%29"args"%29)}’
/boost/boost_1_58_0/boost/optional/optional.hpp:940: note: candidates are: boost::optional& boost::optional::operator=(typename boost::optional_detail::optional_base::argument_type) [with T = cocaine::config_t::component_t]
/boost/boost_1_58_0/boost/optional/optional.hpp:948: note: boost::optional& boost::optional::operator=(typename boost::optional_detail::optional_base::rval_reference_type) [with T = cocaine::config_t::component_t]
/boost/boost_1_58_0/boost/optional/optional.hpp:959: note: boost::optional& boost::optional::operator=(boost::none_t) [with T = cocaine::config_t::component_t]
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/unique_ptr.h:41,
from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/memory:67,
from /storm/cocaine-core-0.11/include/cocaine/common.hpp:32,
from /storm/cocaine-core-0.11/include/cocaine/context.hpp:24,
from /storm/cocaine-core-0.11/src/context.cpp:21:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple: In constructor ‘std::_Head_base<_Idx, _Head, false>::_Head_base(_UHead&&) [with _UHead = std::_Head_base<0ul, unsigned int, false>, long unsigned int _Idx = 0ul, _Head = short unsigned int]’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:179: instantiated from ‘std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(std::_Tuple_impl<_Idx, _UElements ...>&&) [with _UElements = unsigned int, unsigned int, long unsigned int _Idx = 0ul, _Head = short unsigned int, _Tail = short unsigned int]’
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:338: instantiated from ‘std::tuple<_T1, _T2>::tuple(std::tuple<_U1, _U2>&&) [with _U1 = unsigned int, _U2 = unsigned int, T1 = short unsigned int, T2 = short unsigned int]’
/boost/boost_1_58_0/boost/optional/optional.hpp:619: instantiated from ‘void boost::optional_detail::optional_base::assign_expr_to_initialized(Expr&&, const void) [with Expr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/boost/boost_1_58_0/boost/optional/optional.hpp:442: instantiated from ‘void boost::optional_detail::optional_base::assign_expr(Expr&&, const ExprPtr) [with Expr = std::tuple<unsigned int, unsigned int>, ExprPtr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/boost/boost_1_58_0/boost/optional/optional.hpp:883: instantiated from ‘typename boost::disable_if_c<(boost::is_base_of::value || boost::is_same::value), boost::optional&>::type boost::optional::operator=(Expr&&) [with Expr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/storm/cocaine-core-0.11/src/context.cpp:147: instantiated from here
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:94: error: cannot convert ‘std::_Head_base<0ul, unsigned int, false>’ to ‘short unsigned int’ in initialization
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple: In constructor ‘std::_Head_base<_Idx, _Head, false>::_Head_base(_UHead&&) [with _UHead = std::_Head_base<1ul, unsigned int, false>, long unsigned int _Idx = 1ul, _Head = short unsigned int]’:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:179: instantiated from ‘std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(std::_Tuple_impl<_Idx, _UElements ...>&&) [with _UElements = unsigned int, long unsigned int _Idx = 1ul, _Head = short unsigned int, _Tail = ]’
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:179: instantiated from ‘std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(std::_Tuple_impl<_Idx, _UElements ...>&&) [with _UElements = unsigned int, unsigned int, long unsigned int _Idx = 0ul, _Head = short unsigned int, _Tail = short unsigned int]’
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:338: instantiated from ‘std::tuple<_T1, _T2>::tuple(std::tuple<_U1, _U2>&&) [with _U1 = unsigned int, _U2 = unsigned int, T1 = short unsigned int, T2 = short unsigned int]’
/boost/boost_1_58_0/boost/optional/optional.hpp:619: instantiated from ‘void boost::optional_detail::optional_base::assign_expr_to_initialized(Expr&&, const void) [with Expr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/boost/boost_1_58_0/boost/optional/optional.hpp:442: instantiated from ‘void boost::optional_detail::optional_base::assign_expr(Expr&&, const ExprPtr) [with Expr = std::tuple<unsigned int, unsigned int>, ExprPtr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/boost/boost_1_58_0/boost/optional/optional.hpp:883: instantiated from ‘typename boost::disable_if_c<(boost::is_base_of::value || boost::is_same::value), boost::optional&>::type boost::optional::operator=(Expr&&) [with Expr = std::tuple<unsigned int, unsigned int>, T = std::tuple<short unsigned int, short unsigned int>]’
/storm/cocaine-core-0.11/src/context.cpp:147: instantiated from here
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:94: error: cannot convert ‘std::Head_base<1ul, unsigned int, false>’ to ‘short unsigned int’ in initialization
cc1plus: warnings being treated as errors
/boost/boost_1_58_0/boost/system/error_code.hpp: At global scope:
/boost/boost_1_58_0/boost/system/error_code.hpp:221: error: ‘boost::system::posix_category’ defined but not used
/boost/boost_1_58_0/boost/system/error_code.hpp:222: error: ‘boost::system::errno_ecat’ defined but not used
/boost/boost_1_58_0/boost/system/error_code.hpp:223: error: ‘boost::system::native_ecat’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:258: error: ‘boost::asio::error::system_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:260: error: ‘boost::asio::error::netdb_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:262: error: ‘boost::asio::error::addrinfo_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:264: error: ‘boost::asio::error::misc_category’ defined but not used
make[2]: ** [CMakeFiles/cocaine-core.dir/src/context.cpp.o] Error 1
make[1]: *** [CMakeFiles/cocaine-core.dir/all] Error 2
make: *** [all] Error 2
See any operating system documentation about shared libraries for
test -z "/usr/local/include" || /bin/mkdir -p "/usr/local/include"
/bin/mkdir -p '/usr/local/include/msgpack/type'
/usr/bin/install -c -m 644 msgpack/type/bool.hpp msgpack/type/deque.hpp msgpack/type/float.hpp msgpack/type/fixint.hpp msgpack/type/int.hpp msgpack/type/list.hpp msgpack/type/map.hpp msgpack/type/nil.hpp msgpack/type/pair.hpp msgpack/type/raw.hpp msgpack/type/set.hpp msgpack/type/string.hpp msgpack/type/vector.hpp msgpack/type/tuple.hpp msgpack/type/define.hpp '/usr/local/include/msgpack/type'
/bin/mkdir -p '/usr/local/include/msgpack'
/usr/bin/install -c -m 644 msgpack/pack_define.h msgpack/pack_template.h msgpack/unpack_define.h msgpack/unpack_template.h msgpack/sysdep.h msgpack/sbuffer.h msgpack/version.h msgpack/vrefbuffer.h msgpack/zbuffer.h msgpack/pack.h msgpack/unpack.h msgpack/object.h msgpack/zone.h msgpack/sbuffer.hpp msgpack/vrefbuffer.hpp msgpack/zbuffer.hpp msgpack/pack.hpp msgpack/unpack.hpp msgpack/object.hpp msgpack/zone.hpp msgpack/type.hpp '/usr/local/include/msgpack'
/bin/mkdir -p '/usr/local/include/msgpack/type/tr1'
/usr/bin/install -c -m 644 msgpack/type/tr1/unordered_map.hpp msgpack/type/tr1/unordered_set.hpp '/usr/local/include/msgpack/type/tr1'
/usr/bin/install -c -m 644 msgpack.h msgpack.hpp '/usr/local/include/.'
make[2]: Leaving directory /storm/msgpack-c-cpp-0.5.4/cpp/src' make[1]: Leaving directory
/storm/msgpack-c-cpp-0.5.4/cpp/src'
Making install in test
make[1]: Entering directory /storm/msgpack-c-cpp-0.5.4/cpp/test' make[2]: Entering directory
/storm/msgpack-c-cpp-0.5.4/cpp/test'
make[2]: Nothing to be done for install-exec-am'. make[2]: Nothing to be done for
install-data-am'.
make[2]: Leaving directory /storm/msgpack-c-cpp-0.5.4/cpp/test' make[1]: Leaving directory
/storm/msgpack-c-cpp-0.5.4/cpp/test'
make[1]: Entering directory /storm/msgpack-c-cpp-0.5.4/cpp' make[2]: Entering directory
/storm/msgpack-c-cpp-0.5.4/cpp'
make[2]: Nothing to be done for install-exec-am'. make[2]: Nothing to be done for
install-data-am'.
make[2]: Leaving directory /storm/msgpack-c-cpp-0.5.4/cpp' make[1]: Leaving directory
/storm/msgpack-c-cpp-0.5.4/cpp'
[root@iZ947yjsmw8Z cpp]# cd ..
As I wrote in previous issue I've some sort of problems with building overall cocaine projects tree from sources, especially plugins. Now I want to share my experience that can help others to make custom builds of cocaine.
The main idea is to use docker.io as building system to produce debian packages for OS that differs from host system (it's my case) and to avoid building on server machine.
I've prepared Dockerfile, so overall building process accomplished by:
mkdir /tmp/cocaine-builder
cd /tmp/cocaine-builder
curl https://gist.githubusercontent.com/cybernetlab/82cf6f296b22ad78999e/raw/a17e56b6d942c0c9334139c67da06e3da6376fb2/cocaine-builder-dockerfile > Dockerfile
sudo docker.io build -t cocaine-builder .
This will build new docker image and cocaine packages inside it. To retrieve builded packages:
sudo docker.io run -v /tmp:/out cocaine-builder cp /packages/cocaine-0.11.2.tgz /out
Before building you can customize Dockerfile and save it elsewere for future use. As docker.io caches every RUN results, and if something goes wrong, this pattern allows you to make step-by-step building until overall progress will be successfull
Hi, guys! I'm going to code auth plugin. But I can't find any information about cocaine internals or anything that can help to start. So, for beginning I've inspect sources and wrote down my understanding of it. All texts in russian ;) And it's not finished yet, but I want to show it to somebody to avoid unwanted work. So, can somebody review it. Is it reasonable to continue this work? If it does, I think that it might be in your repo for better sharing.
Regards!
Building with gcc 4.8.2 gives:
In file included from /home/art/Development/cocaine-core/include/cocaine/detail/services/logging.hpp:28:0,
from /home/art/Development/cocaine-core/src/services/logging.cpp:21:
/home/art/Development/cocaine-core/include/cocaine/rpc/dispatch.hpp: In member function ‘typename Visitor::result_type cocaine::dispatch< <template-parameter-1-1> >::invoke(int, const Visitor&) const [with Visitor = cocaine::aux::invocation_visitor_t; Tag = cocaine::io::log_tag; typename Visitor::result_type = std::shared_ptr<cocaine::io::basic_dispatch_t>]’:
/home/art/Development/cocaine-core/include/cocaine/rpc/dispatch.hpp:201:17: error: ‘*((void*)(& slot)+8).std::__shared_ptr<cocaine::io::basic_slot<cocaine::io::log::emit>, (__gnu_cxx::_Lock_policy)2u>::_M_ptr’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
return (*slot)(std::move(args), typename io::basic_slot<Event>::upstream_type(upstream));
^
/home/art/Development/cocaine-core/include/cocaine/rpc/dispatch.hpp:247:38: note: ‘*((void*)(& slot)+8).std::__shared_ptr<cocaine::io::basic_slot<cocaine::io::log::emit>, (__gnu_cxx::_Lock_policy)2u>::_M_ptr’ was declared here
typename slot_map_t::mapped_type slot = lb->second;
^
cc1plus: all warnings being treated as errors
Hi!
I've tried to use PAM authentication as a cocaine worker.
See example project - https://github.com/mwf/cocaine_pam_auth
Here what I've got.
I've tested it on both Mac OS X 10.9 and Ubuntu 12.04.
Both have cocaine-core 0.11.2.2 installed.
On Ubuntu PAM auth always fails - wether you provide good credentials or really bad.
(PAM works well from python interpreter)
On Mac OS X it's OK - user can be authenticated normally.
BTW, there is some problem with cocaine-tool script. It always returns Timeout
when 1-2 seconds pass from start. You can test it with some worker, calling sleep and returning the result after that...
So to test this issue - just have a look in cocaine logs =)
some docs on installation would be good - managed to get boost installed, but I have no idea how to tell CMake where msgpack is.
Hi, guys!
I've some troubles with compile plugins on clean machine with installed libcocaine-dev
. My make example:
$ make
[ 50%] Building CXX object debugger/CMakeFiles/debugger.dir/src/debugger.cpp.o
In file included from /usr/include/cocaine/rpc/slots/blocking.hpp:24:0,
from /usr/include/cocaine/rpc/dispatch.hpp:30,
from /projects/cocaine-plugins/debugger/include/cocaine/service/debugger.hpp:9,
from /projects/cocaine-plugins/debugger/src/debugger.cpp:5:
/usr/include/cocaine/rpc/slots/function.hpp:24:37: fatal error: cocaine/idl/streaming.hpp: Нет такого файла или каталога
#include "cocaine/idl/streaming.hpp"
^
compilation terminated.
make[2]: *** [debugger/CMakeFiles/debugger.dir/src/debugger.cpp.o] Ошибка 1
make[1]: *** [debugger/CMakeFiles/debugger.dir/all] Ошибка 2
make: *** [all] Ошибка 2
I've inspected libcocaine-dev
package and where are no idl
subfolder at all. I think, that you forget to add following line into debian/libcocaine-dev.install
:
usr/include/cocaine/idl
Because after adding it and rebuilding the problem is gone.
Also, I think that blackhole-dev
should be added to libcocaine-dev
as dependency or it should be builded inside package. Because for now, libcococaine-dev
installed silently, but plugins are not compiled without blackhole-dev
.
Regards
morozovcookie@ubuntu:~/Desktop/sandbox/cocaine-core$ git submodule update --init
Submodule 'foreign/asio' (https://github.com/chriskohlhoff/asio.git) registered for path 'foreign/asio'
Submodule 'foreign/backward-cpp' (git://github.com/bombela/backward-cpp.git) registered for path 'foreign/backward-cpp'
Submodule 'foreign/blackhole' (git://github.com/3Hren/blackhole.git) registered for path 'foreign/blackhole'
Submodule 'foreign/modules' (https://github.com/3Hren/modules.git) registered for path 'foreign/modules'
Submodule 'foreign/rapidjson' (git://github.com/andrusha97/rapidjson.git) registered for path 'foreign/rapidjson'
Submodule 'tests/foreign/celero' (https://github.com/DigitalInBlue/Celero) registered for path 'tests/foreign/celero'
Cloning into 'foreign/asio'...
remote: Counting objects: 40541, done.
remote: Total 40541 (delta 0), reused 0 (delta 0), pack-reused 40541
Receiving objects: 100% (40541/40541), 13.92 MiB | 2.04 MiB/s, done.
Resolving deltas: 100% (26237/26237), done.
Checking connectivity... done.
Submodule path 'foreign/asio': checked out 'c228d0fa62d56c6020e04d479df557eef24efb1d'
Cloning into 'foreign/backward-cpp'...
fatal: read error: Connection reset by peer
fatal: early EOF
fatal: index-pack failed
fatal: clone of 'git://github.com/bombela/backward-cpp.git' into submodule path 'foreign/backward-cpp' failed
Cannot get backward-cpp. If I clone each repository, not use submodule - everything is good, but I have failed when run 'make'
User tries to setup cocaine cloud via habrhabr.ru tutorial:
https://groups.google.com/forum/#!topic/reverbrain/mUBYUYufU4s
Please send reply to maillist too
Scanning dependencies of target json
[ 2%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_value.cpp.o
[ 5%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_reader.cpp.o
[ 8%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_writer.cpp.o
Linking CXX static library libjson.a
[ 8%] Built target json
Scanning dependencies of target cocaine-core
[ 11%] Building CXX object CMakeFiles/cocaine-core.dir/src/actor.cpp.o
In file included from /usr/local/include/msgpack/type.hpp:17,
from /usr/local/include/msgpack/object.hpp:808,
from /usr/local/include/msgpack.hpp:18,
from /storm/cocaine-core-0.11/include/cocaine/traits.hpp:24,
from /storm/cocaine-core-0.11/include/cocaine/rpc/slot.hpp:26,
from /storm/cocaine-core-0.11/include/cocaine/rpc/slots/function.hpp:27,
from /storm/cocaine-core-0.11/include/cocaine/rpc/slots/blocking.hpp:24,
from /storm/cocaine-core-0.11/include/cocaine/dispatch.hpp:26,
from /storm/cocaine-core-0.11/src/actor.cpp:32:
/usr/local/include/msgpack/adaptor/vector.hpp: In member function ‘void msgpack::v1::adaptor::object_with_zone<std::vector<T, std::allocator<Tp1> >, void>::operator()(msgpack::v1::object::with_zone&, const std::vector<T, std::allocator<Tp1> >&) const’:
/usr/local/include/msgpack/adaptor/vector.hpp:84: error: #pragma GCC diagnostic not allowed inside functions
/usr/local/include/msgpack/adaptor/vector.hpp:85: error: #pragma GCC diagnostic not allowed inside functions
/usr/local/include/msgpack/adaptor/vector.hpp:89: error: #pragma GCC diagnostic not allowed inside functions
In file included from /storm/cocaine-core-0.11/include/cocaine/rpc/channel.hpp:27,
from /storm/cocaine-core-0.11/src/actor.cpp:37:
/storm/cocaine-core-0.11/include/cocaine/rpc/decoder.hpp: In member function ‘size_t cocaine::io::decoder< >::on_event(const char, size_t)’:
/storm/cocaine-core-0.11/include/cocaine/rpc/decoder.hpp:91: error: no matching function for call to ‘unpack(const char&, size_t&, size_t_&, msgpack::v1::zone_&, msgpack::v1::object_&)’
/usr/local/include/msgpack/unpack.hpp:1530: note: candidates are: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1554: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1562: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1570: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1579: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1606: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1614: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1622: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1632: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1656: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1665: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1674: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1686: note: void msgpack::v1::unpack(msgpack::v1::unpacked_, const char_, size_t, size_t_, bool_, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/storm/cocaine-core-0.11/include/cocaine/rpc/decoder.hpp: In member function ‘size_t cocaine::io::decoder< >::on_event(const char_, size_t) [with Stream = cocaine::io::readable_streamcocaine::io::socket<cocaine::io::tcp >]’:
/storm/cocaine-core-0.11/include/cocaine/rpc/decoder.hpp:60: instantiated from ‘void cocaine::io::decoder< >::bind(MessageHandler, ErrorHandler) [with MessageHandler = std::Bind<std::Mem_fn<void (cocaine::actor_t::)(int, const cocaine::io::message_t&)>(cocaine::actor_t, int, std::Placeholder<1>)>, ErrorHandler = std::Bind<std::Mem_fn<void (cocaine::actor_t::)(int, const std::error_code&)>(cocaine::actor_t, int, std::Placeholder<1>)>, Stream = cocaine::io::readable_streamcocaine::io::socket<cocaine::io::tcp >]’
/storm/cocaine-core-0.11/src/actor.cpp:261: instantiated from here
/storm/cocaine-core-0.11/include/cocaine/rpc/decoder.hpp:91: error: no matching function for call to ‘unpack(const char&, size_t&, size_t, msgpack::v1::zone_, msgpack::v1::object_)’
/usr/local/include/msgpack/unpack.hpp:1530: note: candidates are: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1554: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1562: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1570: note: msgpack::v1::unpacked msgpack::v1::unpack(const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1579: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1606: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1614: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1622: note: void msgpack::v1::unpack(msgpack::v1::unpacked&, const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1632: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, size_t&, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1656: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, size_t&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1665: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, bool&, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1674: note: msgpack::v1::object msgpack::v1::unpack(msgpack::v1::zone&, const char_, size_t, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
/usr/local/include/msgpack/unpack.hpp:1686: note: void msgpack::v1::unpack(msgpack::v1::unpacked_, const char_, size_t, size_t_, bool_, bool ()(msgpack::v1::type::object_type, size_t, void), void_, const msgpack::v1::unpack_limit&)
In file included from /storm/cocaine-core-0.11/src/actor.cpp:39:
/storm/cocaine-core-0.11/include/cocaine/traits/literal.hpp: In static member function ‘static void cocaine::io::type_traits<cocaine::io::literal, void>::pack(msgpack::v1::packer&, const cocaine::io::literal&) [with Stream = msgpack::v1::sbuffer]’:
/storm/cocaine-core-0.11/include/cocaine/traits/typelist.hpp:127: instantiated from ‘static void cocaine::io::type_traits<T, typename std::enable_if<boost::mpl::is_sequence::value, void>::type>::pack_sequence(msgpack::v1::packer&, const Head&, const Tail& ...) [with It = boost::mpl::l_iterboost::mpl::l_item<mpl_::long_<1l, std::basic_string<char, std::char_traits, std::allocator >, boost::mpl::l_end> >, Stream = msgpack::v1::sbuffer, Head = cocaine::io::literal, Tail = , T = boost::mpl::list<std::basic_string<char, std::char_traits, std::allocator >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>]’
/storm/cocaine-core-0.11/include/cocaine/traits/typelist.hpp:78: instantiated from ‘static void cocaine::io::type_traits<T, typename std::enable_if<boost::mpl::is_sequence::value, void>::type>::pack(msgpack::v1::packer&, const Args& ...) [with Stream = msgpack::v1::sbuffer, Args = cocaine::io::literal, T = boost::mpl::list<std::basic_string<char, std::char_traits, std::allocator >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>]’
/storm/cocaine-core-0.11/include/cocaine/rpc/encoder.hpp:80: instantiated from ‘void cocaine::io::encoder< >::write(uint64_t, Args&& ...) [with Event = cocaine::io::rpc::chunk, Args = cocaine::io::literal, Stream = cocaine::io::writable_streamcocaine::io::socket<cocaine::io::tcp >]’
/storm/cocaine-core-0.11/src/actor.cpp:86: instantiated from here
/storm/cocaine-core-0.11/include/cocaine/traits/literal.hpp:60: error: ‘class msgpack::v1::packermsgpack::v1::sbuffer’ has no member named ‘pack_raw’
/storm/cocaine-core-0.11/include/cocaine/traits/literal.hpp:61: error: ‘class msgpack::v1::packermsgpack::v1::sbuffer’ has no member named ‘pack_raw_body’
cc1plus: warnings being treated as errors
/boost/boost_1_58_0/boost/system/error_code.hpp: At global scope:
/boost/boost_1_58_0/boost/system/error_code.hpp:221: error: ‘boost::system::posix_category’ defined but not used
/boost/boost_1_58_0/boost/system/error_code.hpp:222: error: ‘boost::system::errno_ecat’ defined but not used
/boost/boost_1_58_0/boost/system/error_code.hpp:223: error: ‘boost::system::native_ecat’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:258: error: ‘boost::asio::error::system_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:260: error: ‘boost::asio::error::netdb_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:262: error: ‘boost::asio::error::addrinfo_category’ defined but not used
/boost/boost_1_58_0/boost/asio/error.hpp:264: error: ‘boost::asio::error::misc_category’ defined but not used
make[2]: *** [CMakeFiles/cocaine-core.dir/src/actor.cpp.o] Error 1
make[1]: *** [CMakeFiles/cocaine-core.dir/all] Error 2
make: *** [all] Error 2
Sorry to bother, but "Architecture" page is a bit clumsy and has too much extra details to me.
Service is an actor, an RPC-enabled piece of code, which accepts a certain set of messages
Is it a separate process, thread or something?
...a list of methods and their respective SlotIDs you can call by sending messages to the service just after a connection has been established.
Maybe "just after a connection has been established" can be omitted to simplify such a long sentence
unlike server-side services with service-specific protocols, every client dispatches the streaming service protocol.
It would be great to add a link to protocols documentation, otherwise it just an extra information. Perhaps it's not needed at this "overview" level of the document.
...the usual session between a client and a service goes as follows...
Again, you describe messages being passed between client and server, going deep, but miss other details, which can confuse reader:
...specifies service names and types, but not network-related properties
Like what? Maybe "(e.g. TCP port to listen)" will clarify what you mean.
...is attached to the locator, which in turn wraps them in an event loop...
WAT? Eventloop? What do you mean? Do we really need to know about it right now?
...binds them to some network endpoints
What is "network endpoint"? Does locator binds service to TCP port?
... Send a Resolve message with the name of the required service using any channel.
Do we really need to know about channels right now? My point is that such details distract user (me, actually) a lot.
...the locator can be configured to aggregate other locators' multicast announces
First, you said "locator announces" and now "multicast announces" - did you mean the same procedure or these are two distinct events?
CMake tries to find zmq.hpp while recent zeromq installs zmq.h. Given that current debian/control explicitly depends on zeromq 3.2 version, CMakeLists.txt should be changed as well.
Hi again. I continue playing cocaine.
My current attempt is to run docker registry as a cocaine app (actually I was create my own image with elliptics storage support). For a first try I prepare simple Dockerfile
:
FROM registry
RUN apt-get install python-flask msgpack-python python-pip -y
RUN pip install cocaine
ADD ./slave.py /slave.py
EXPOSE 5000
CMD exec /slave.py
my slave.py
:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from cocaine.worker import Worker
from cocaine.decorators.wsgi import wsgi
from docker_registry.run import app
if __name__ == '__main__':
W = Worker()
W.run({ "http": wsgi(app) })
manifest.json
:
{ "slave": "/slave.py" }
and profile
:
{
"queue-limit": 1000,
"pool-limit": 10,
"isolate": {
"type": "docker",
"args": {
"memory_limit": 1000000000,
"endpoint": "unix:///var/run/docker.sock",
"cpu_shares": 0
}
},
"concurrency": 200
}
then trying to run it:
sudo cocaine-tool app upload --docker=unix:///var/run/docker.sock
cocaine-tool profile upload --name docker-registry-profile --profile /tmp/docker-registry/docker-registry-profile.json
cocaine-tool app start -n docker-registry -r docker-registry-profile
it runs ok and I see it with cocaine-tool info.
But when I check it by:
curl "http://apps.cybercloud.lan:8080/docker-registry/http/_ping"
curl gives me empty result and cocaine runtime crashed. So, to diagnose, i start cocaine runtime without daemonize:
sudo /usr/bin/cocaine-runtime --configuration /cybercloud/cocaine/conf/cocaine-cybercloud.conf --pidfile /var/run/cocaine/runtime.pid
and repeat curl. My output:
Stack trace (most recent call last) in thread 3372:
#12 Object "", at 0xffffffffffffffff, in
#11 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f688378430c, in clone
#10 Object "/lib/x86_64-linux-gnu/libpthread.so.0", at 0x7f688325a181, in start_thread
#9 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f6883d16bef, in std::this_thread::__sleep_for(std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
#8 Object "/usr/lib/x86_64-linux-gnu/libev.so.4", at 0x7f6883f6ffe6, in ev_run
#7 Object "/usr/lib/x86_64-linux-gnu/libev.so.4", at 0x7f6883f6ce44, in ev_invoke_pending
#6 Object "/usr/lib/libcocaine-core.so.2", at 0x7f688422352f, in cocaine::engine::engine_t::balance()
#5 Object "/usr/lib/libcocaine-core.so.2", at 0x7f68842654e0, in cocaine::engine::slave_t::slave_t(cocaine::context_t&, cocaine::io::reactor_t&, cocaine::engine::manifest_t const&, cocaine::engine::profile_t const&, std::string const&, cocaine::engine::engine_t&)
#4 Source "/tmp/cocaine/cocaine-plugins/docker/isolate.cpp", line 226, in cocaine::isolate::docker_t::spawn(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&) [0x7f687f45b7df]
#3 Source "/tmp/cocaine/cocaine-plugins/docker/docker_client.cpp", line 841, in cocaine::docker::client_t::create_container(rapidjson::GenericValue<rapidjson::UTF8<char>, rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> > const&) [0x7f687f440f60]
#2 | Source "/tmp/cocaine/cocaine-plugins/docker/docker_client.cpp", line 502, in cocaine::docker::client_impl_t::post(cocaine::docker::http_response_t&, cocaine::docker::http_request_t const&)
Source "/usr/include/c++/4.8/bits/basic_string.h", line 539, in ~basic_string [0x7f687f43d134]
536: * @brief Destroy the string instance.
537: */
538: ~basic_string() _GLIBCXX_NOEXCEPT
> 539: { _M_rep()->_M_dispose(this->get_allocator()); }
540:
541: /**
542: * @brief Assign the value of @a str to this string.
#1 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7f6883cc064d, in
I think that it because I miss something in my slave.py
but the bad thing is that incorrect application crashes runtime! Any comments? Thanks!
Steps to reproduce:
Here's test script:
#!/bin/bash
for i in {1..100}
do
curl -v http://bulletproof_noob_saibot-group.cocsfe01.demo.yandex.net 2>/dev/null | grep Message
done
Here's output (with different number of iterations):
bash-3.2$ ./s | sort | uniq -c
41 "Message": "Hello world! Version abcd"
59 "Message": "Hello world! Version2"
bash-3.2$ ./s | sort | uniq -c
402 "Message": "Hello world! Version abcd"
598 "Message": "Hello world! Version2"
bash-3.2$ ./s | sort | uniq -c
400 "Message": "Hello world! Version abcd"
600 "Message": "Hello world! Version2"
bash-3.2$ ./s | sort | uniq -c
4172 "Message": "Hello world! Version abcd"
5828 "Message": "Hello world! Version2"
I'm trying to put together a Dockerfile to automate all the build steps listed in the wiki and also just for isolation purposes to work out the kinks in the build process. So far it's going OK, but I get some problems with the compiler not being able to find some libboost packages:
make -j$(grep -c 'processor' /proc/cpuinfo)
---> Running in 0a84091afcd2
Scanning dependencies of target cocaine-core
Building CXX object CMakeFiles/cocaine-core.dir/src/actor.cpp.o
.......(lots of building)......
Building CXX object CMakeFiles/cocaine-core.dir/src/services/storage.cpp.o
Building CXX object CMakeFiles/cocaine-core.dir/src/session.cpp.o
Building CXX object CMakeFiles/cocaine-core.dir/src/storages/files.cpp.o
Building CXX object CMakeFiles/cocaine-core.dir/src/unique_id.cpp.o
Linking CXX shared library libcocaine-core.so
/bin/ld: cannot find -lboost_system-mt
/usr/bin/ld: cannot find -lboost_filesystem-mt
/usr/bin/ld: cannot find -lboost_thread-mt
collect2: error: ld returned 1 exit status
*** [CMakeFiles/cocaine-core.dir/all] Error 2
A google search found that there was a recent renaming of some of the boost packages (leaving off the trailing "-mt"). My container is running saucy, so it's probably pulling the most recent packages, are there specific older versions you think I should use to bypass that naming error?
Hi!
I've cocaine-runtime installed both on Ubuntu 12.04 and Mac OS X 10.9.2
Under Ubuntu I've build a deb package with dpkg-buildpackage and installed from it.
Both were build from recent source of v0.11 branch (version 0.11.2.2).
But running cocaine-runtime --help
on Ubuntu gives me this:
cocaine-runtime --help
USAGE: cocaine-runtime [options]
General options:
-h [ --help ] show this message
-c [ --configuration ] arg location of the configuration file
-d [ --daemonize ] daemonize on start
-p [ --pidfile ] arg location of a pid file
-v [ --version ] show version and build information
And under Mac OS:
cocaine-runtime --help
USAGE: cocaine-runtime [options]
General options:
-h [ --help ] show this message
-c [ --configuration ] arg location of the configuration file
-v [ --version ] show version and build information
Cocaine-runtime doesn't support --daemonize option under Mac OS?! o__O
Hi!
When I remove application, cocaine doesn't remove app's working directory from spool.
If I upload app again and start it, it will extract all new files and replace old, but there will still exist some files from old installation.
I think, it shoud be fixed.
Hi!
I'd like to propose such thing - clean-up configured "runtime" directory on cocaine-runtime process start.
I've got a situation, when cocaine-runtime had not been terminated properly - there was a server power-loss. So all files "< app-name >.< pid >" in "runtime" directory were not deleted! And after server boot cocaine-runtime process randomly got just the same PID as it had before the power loss!
I think you can imagine what happened next...
[Tue Sep 2 18:05:34 2014] [ERROR] service/node: unable to start the 'bio_auth' app - unable to initialize the engine - unable to bind an acceptor on '/usr/local/var/run/cocaine/bio_auth.121': Address already in use - [48] Address already in use
Runlist can't be started unless I restart cocaine-runtime manually (and get new PID) or clean-up the directory...
version 0.12.3, ubuntu 14.04
after compiling i am trying to start,
sudo service cocaine start and /usr/bin/cocaine-runtime -c /etc/cocaine/cocaine-default.conf
but cocaine write:
[Runtime] Parsing the configuration.
[Runtime] Initializing the logging system, backend: core.
and nothing more
ps aux | grep cocaine-runtime | grep -v grep give no results
build with binutils >=2.23.x need define PACKAGE and PACKAGE_VERSION
--- config.hpp.in.orig 2013-08-01 14:16:17.000000000 +0300
+++ config.hpp.in 2013-08-01 17:37:38.000000000 +0300
@@ -8,4 +8,7 @@
#define COCAINE_VERSION \
COCAINE_MAKE_VERSION(COCAINE_VERSION_MAJOR, COCAINE_VERSION_MINOR, COCAINE_VERSION_RELEASE)
+#define PACKAGE "cocaine-core"
+#define PACKAGE_VERSION COCAINE_VERSION
+
#cmakedefine COCAINE_DEBUG
Hi!
I'm trying to install cocaine (v0.11 branch) under Mac OS X 10.9 (all dependecies installed via brew), cmake
passes well, but make
fails:
Scanning dependencies of target json
[ 2%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_value.cpp.o
[ 5%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_reader.cpp.o
[ 8%] Building CXX object CMakeFiles/json.dir/foreign/jsoncpp-0.6.0-rc2/src/lib_json/json_writer.cpp.o
Linking CXX static library libjson.a
[ 8%] Built target json
Scanning dependencies of target cocaine-core
[ 11%] Building CXX object CMakeFiles/cocaine-core.dir/src/actor.cpp.o
[ 14%] Building CXX object CMakeFiles/cocaine-core.dir/src/api.cpp.o
[ 17%] Building CXX object CMakeFiles/cocaine-core.dir/src/app.cpp.o
[ 20%] Building CXX object CMakeFiles/cocaine-core.dir/src/archive.cpp.o
[ 22%] Building CXX object CMakeFiles/cocaine-core.dir/src/context.cpp.o
[ 25%] Building CXX object CMakeFiles/cocaine-core.dir/src/dispatch.cpp.o
[ 28%] Building CXX object CMakeFiles/cocaine-core.dir/src/drivers/fs.cpp.o
[ 31%] Building CXX object CMakeFiles/cocaine-core.dir/src/drivers/time.cpp.o
[ 34%] Building CXX object CMakeFiles/cocaine-core.dir/src/engine.cpp.o
[ 37%] Building CXX object CMakeFiles/cocaine-core.dir/src/essentials.cpp.o
[ 40%] Building CXX object CMakeFiles/cocaine-core.dir/src/group.cpp.o
[ 42%] Building CXX object CMakeFiles/cocaine-core.dir/src/gateways/adhoc.cpp.o
[ 45%] Building CXX object CMakeFiles/cocaine-core.dir/src/isolates/process.cpp.o
[ 48%] Building CXX object CMakeFiles/cocaine-core.dir/src/isolates/spooler.cpp.o
[ 51%] Building CXX object CMakeFiles/cocaine-core.dir/src/locator.cpp.o
[ 54%] Building CXX object CMakeFiles/cocaine-core.dir/src/loggers/files.cpp.o
[ 57%] Building CXX object CMakeFiles/cocaine-core.dir/src/loggers/syslog.cpp.o
[ 60%] Building CXX object CMakeFiles/cocaine-core.dir/src/logging.cpp.o
[ 62%] Building CXX object CMakeFiles/cocaine-core.dir/src/manifest.cpp.o
[ 65%] Building CXX object CMakeFiles/cocaine-core.dir/src/profile.cpp.o
[ 68%] Building CXX object CMakeFiles/cocaine-core.dir/src/queue.cpp.o
[ 71%] Building CXX object CMakeFiles/cocaine-core.dir/src/repository.cpp.o
[ 74%] Building CXX object CMakeFiles/cocaine-core.dir/src/services/logging.cpp.o
[ 77%] Building CXX object CMakeFiles/cocaine-core.dir/src/services/node.cpp.o
[ 80%] Building CXX object CMakeFiles/cocaine-core.dir/src/services/storage.cpp.o
[ 82%] Building CXX object CMakeFiles/cocaine-core.dir/src/session.cpp.o
[ 85%] Building CXX object CMakeFiles/cocaine-core.dir/src/slave.cpp.o
[ 88%] Building CXX object CMakeFiles/cocaine-core.dir/src/slot.cpp.o
[ 91%] Building CXX object CMakeFiles/cocaine-core.dir/src/storages/files.cpp.o
[ 94%] Building CXX object CMakeFiles/cocaine-core.dir/src/unique_id.cpp.o
Linking CXX shared library libcocaine-core.dylib
Undefined symbols for architecture x86_64:
"_archive_filter_name", referenced from:
cocaine::archive_t::archive_t(cocaine::context_t&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in archive.cpp.o
cocaine::archive_t::type() const in archive.cpp.o
"_archive_read_free", referenced from:
cocaine::archive_t::~archive_t() in archive.cpp.o
"_archive_read_support_filter_all", referenced from:
cocaine::archive_t::archive_t(cocaine::context_t&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in archive.cpp.o
"_archive_write_free", referenced from:
cocaine::archive_t::deploy(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in archive.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libcocaine-core.2.dylib] Error 1
make[1]: *** [CMakeFiles/cocaine-core.dir/all] Error 2
make: *** [all] Error 2
Any ideas?
Default cocaine-runtime configuration uses /var/run/cocaine which is created nowhere and it's not clear where it should be created.
from syslog
cocaine[15333]: [2015-10-20 12:41:26.676296] [I]: initializing the server
cocaine[15333]: [2015-10-20 12:41:26.680040] [I]: initializing the core [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680193] [D]: registering component 'multicast' in category 'cocaine::api::cluster_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680296] [D]: registering component 'predefine' in category 'cocaine::api::cluster_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680335] [D]: registering component 'adhoc' in category 'cocaine::api::gateway_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680368] [D]: registering component 'locator' in category 'cocaine::api::service_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680401] [D]: registering component 'logging' in category 'cocaine::api::service_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680431] [D]: registering component 'storage' in category 'cocaine::api::service_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680462] [D]: registering component 'files' in category 'cocaine::api::storage_t' [source: core]
cocaine[15333]: [2015-10-20 12:41:26.680611] [I]: loading plugin [source: core, plugin: /usr/lib/cocaine/node.2.cocaine-plugin.so]
cocaine[15333]: [2015-10-20 12:41:26.684208] [D]: registering component 'process' in category 'cocaine::api::isolate_t' [source: core, plugin: /usr/lib/cocaine/node.2.cocaine-plugin.so]
cocaine[15333]: [2015-10-20 12:41:26.684308] [D]: registering component 'node::v2' in category 'cocaine::api::service_t' [source: core, plugin: /usr/lib/cocaine/ node.2.cocaine-plugin.so]
cocaine[15333]: [2015-10-20 12:41:26.684357] [I]: starting 8 execution unit(s) [source: core]
cocaine[15333]: [2015-10-20 12:41:26.684539] [D]: engine started [source: core, engine: 0x7f8755fde700]
cocaine[15333]: [2015-10-20 12:41:26.684752] [D]: engine started [source: core, engine: 0x7f87557dd700]
cocaine[15333]: [2015-10-20 12:41:26.685186] [D]: engine started [source: core, engine: 0x7f874ffff700]
cocaine[15333]: [2015-10-20 12:41:26.685303] [D]: engine started [source: core, engine: 0x7f8754fdc700]
cocaine[15333]: [2015-10-20 12:41:26.685573] [D]: engine started [source: core, engine: 0x7f874f7fe700]
cocaine[15333]: [2015-10-20 12:41:26.685695] [D]: engine started [source: core, engine: 0x7f874effd700]
cocaine[15333]: [2015-10-20 12:41:26.685804] [D]: engine started [source: core, engine: 0x7f874e7fc700]
cocaine[15333]: [2015-10-20 12:41:26.685896] [D]: engine started [source: core, engine: 0x7f874dffb700]
cocaine[15333]: [2015-10-20 12:41:26.685922] [I]: starting 4 service(s) [source: core]
cocaine[15333]: [2015-10-20 12:41:26.685960] [D]: starting service [source: core, service: locator]
cocaine[15333]: [2015-10-20 12:41:26.686140] [I]: restricting 1 service(s): locator [source: core, service: locator]
cocaine[15333]: [2015-10-20 12:41:26.686200] [I]: using 'multicast' as a cluster manager, enabling synchronization [source: core, service: locator]
cocaine[15333]: [2015-10-20 12:41:26.686338] [I]: joining multicast group '239.0.100.53:10053' [uuid: 3f68a096-6e71-4970-9b26-dd985247f373, source: core, service: locator]
cocaine[15333]: [2015-10-20 12:41:26.686665] [E]: unable to initialize service: [19] set_option: No such device [source: core, service: locator]
cocaine[15333]: [2015-10-20 12:41:26.686738] [D]: starting service [source: core, service: logging]
cocaine[15333]: [2015-10-20 12:41:26.686856] [I]: exposing service on local endpoint [::]:40875 [source: core, service: logging]
cocaine[15333]: [2015-10-20 12:41:26.686950] [D]: service has been started [service: logging, source: core]
cocaine[15333]: [2015-10-20 12:41:26.689840] [D]: starting service [source: core, service: node]
cocaine[15333]: [2015-10-20 12:41:26.690006] [I]: exposing service on local endpoint [::]:48376 [source: core, service: node]
cocaine[15333]: [2015-10-20 12:41:26.690097] [D]: service has been started [service: node, source: core]
cocaine[15333]: [2015-10-20 12:41:26.691347] [D]: starting service [source: core, service: storage]
cocaine[15333]: [2015-10-20 12:41:26.691466] [I]: exposing service on local endpoint [::]:51197 [source: core, service: storage]
cocaine[15333]: [2015-10-20 12:41:26.691555] [D]: service has been started [service: storage, source: core]
cocaine[15333]: [2015-10-20 12:41:26.691732] [E]: emergency core shutdown [source: core]
cocaine[15333]: [2015-10-20 12:41:26.691763] [I]: stopping 3 service(s) [source: core]
cocaine[15333]: [2015-10-20 12:41:26.691845] [D]: shutting down apps [source: node]
cocaine[15333]: [2015-10-20 12:41:26.693250] [I]: removing service from local endpoint [::]:51197 [source: core, service: storage]
cocaine[15333]: [2015-10-20 12:41:26.693320] [D]: service has been stopped [service: storage, source: core]
cocaine[15333]: [2015-10-20 12:41:26.693869] [I]: removing service from local endpoint [::]:48376 [source: core, service: node]
cocaine[15333]: [2015-10-20 12:41:26.693925] [D]: service has been stopped [service: node, source: core]
cocaine[15333]: [2015-10-20 12:41:26.694445] [I]: removing service from local endpoint [::]:40875 [source: core, service: logging]
cocaine[15333]: [2015-10-20 12:41:26.694513] [D]: service has been stopped [service: logging, source: core]
cocaine[15333]: [2015-10-20 12:41:26.694587] [I]: stopping 8 execution unit(s) [source: core]
cocaine[15333]: [2015-10-20 12:41:26.694668] [D]: stopping engine [source: core:asio, engine: 0x7f8755fde700]
cocaine[15333]: [2015-10-20 12:41:26.695448] [D]: stopping engine [source: core:asio, engine: 0x7f87557dd700]
cocaine[15333]: [2015-10-20 12:41:26.695727] [D]: stopping engine [source: core:asio, engine: 0x7f874ffff700]
cocaine[15333]: [2015-10-20 12:41:26.696011] [D]: stopping engine [source: core:asio, engine: 0x7f8754fdc700]
cocaine[15333]: [2015-10-20 12:41:26.696337] [D]: stopping engine [source: core:asio, engine: 0x7f874f7fe700]
cocaine[15333]: [2015-10-20 12:41:26.696595] [D]: stopping engine [source: core:asio, engine: 0x7f874effd700]
cocaine[15333]: [2015-10-20 12:41:26.696871] [D]: stopping engine [source: core:asio, engine: 0x7f874e7fc700]
cocaine[15333]: [2015-10-20 12:41:26.697156] [D]: stopping engine [source: core:asio, engine: 0x7f874dffb700]
cocaine[15333]: [2015-10-20 12:41:26.697403] [I]: core has been terminated [source: core]
cocaine[15333]: [2015-10-20 12:41:26.697593] [E]: unable to initialize the context - couldn't start core because of 1 service(s): locator: Invalid argument.
my config file
{
"version": 3,
"logging": {
"core": {
"loggers": [
{
"formatter": {
"type": "string",
"pattern": "[%(timestamp)s] [%(severity)s]: %(message)s %(...:[:])s"
},
"sink": {
"type": "syslog",
"identity": "cocaine"
}
}
],
"timestamp": "%Y-%m-%d %H:%M:%S.%f",
"verbosity": "debug"
}
},
"network": {
"pinned": {
"locator": 10053
}
},
"paths": {
"plugins": "/usr/lib/cocaine",
"runtime": "/var/run/cocaine"
},
"services": {
"locator": {
"type": "locator",
"args": {
"cluster": {
"type": "multicast",
"args": {
"group": "239.0.100.53"
}
},
"gateway": {
"type": "adhoc"
}
}
},
"logging": {
"type": "logging",
"args": {
"backend": "core"
}
},
"storage": {
"type": "storage",
"args": {
"backend": "core"
}
},
"node": {
"type": "node::v2",
"args": {
"runlist": ""
}
}
},
"storages": {
"core": {
"type": "files",
"args": {
"path": "/var/lib/cocaine"
}
},
"cache": {
"type": "files",
"args": {
"path": "/var/cache/cocaine"
}
}
}
}
I can't understand what does it mean [E]: unable to initialize service: [19] set_option: No such device [source: core, service: locator]
Sometimes (I don't know exactly when), cocaine-runtime starts successfully.
Hello.
I'm trying to start cocaine-runtime with cocaine-default.conf from package and want to get minimal cluster configuration.
When I try to run cocaine-tool info
I get error in service "locator" - service is not available [1]
Old cocaine-tools from reverbrain repo stuch on info command, and in log appears message: [E]: uncaught invocation exception: [4] 0: specified channel was revoked [service: locator, endpoint: [::1]:48620, source: core:asio, engine: 0x7f37c4b63700]
My config:
{
"version": 3,
"logging": {
"core" : {
"loggers": [
{
"formatter": {
"type": "string",
"pattern": "[%(timestamp)s] [%(severity)s]: %(message)s %(...:[:])s"
},
"sink": {
"type": "syslog",
"identity": "cocaine"
}
}
],
"timestamp": "%Y-%m-%d %H:%M:%S.%f",
"verbosity": "debug"
}
},
"network": {
"pinned": {
"locator": 10053
}
},
"paths": {
"plugins": "/usr/lib/cocaine",
"runtime": "/var/run/cocaine"
},
"services": {
"locator": {
"type": "locator",
"args": {
"cluster": {
"type": "multicast",
"args": {
"group": "239.0.100.53"
}
},
"gateway": {
"type": "adhoc"
}
}
},
"logging": {
"type": "logging",
"args": {
"backend": "core"
}
},
"storage": {
"type": "storage",
"args": {
"backend": "core"
}
}
},
"storages": {
"core": {
"type": "files",
"args": {
"path": "/var/lib/cocaine"
}
},
"cache": {
"type": "files",
"args": {
"path": "/var/cache/cocaine"
}
}
}
}
Hi
There is a question about moving apparently client app from 11 to 12 cocaine at reverbrain mail list, please take a look and reply both here and in the mailgroup
We are trying move from cocaine 11 to 12 and I'm investigating details. I didn't find any docs about writing applications with cocaine12 and examples are too simple.
Now I'm interested how properly send big array of bytes in chunks?App:
worker.on("ping", [](worker::sender tx, worker::receiver rx) { std::cout << "After invoke" << std::endl; if (boost::optional<std::string> message = rx.recv().get()) { // app read one chunk std::cout << "After chunk: '" << *message << "'" << std::endl; tx.write(*message).get(); // app write one chunk std::cout << "After write" << std::endl; } std::cout << "After close" << std::endl; });
Client:
task<void>::future_type on_invoke(task<channel<io::app::enqueue>>::future_move_type future) { auto channel = future.get(); auto tx = std::move(channel.tx); auto rx = std::move(channel.rx); return tx.send<scope::chunk>("le message") // client write one chunk .then(trace_t::bind(&on_send, std::placeholders::_1, rx)) .then(trace_t::bind(&on_chunk, std::placeholders::_1, rx)) // client read one chunk .then(trace_t::bind(&on_choke, std::placeholders::_1)); }
In this example I see how to send one chunk from client to app and backward. But what should I do if I want to send 3 chunks from client to app and after that 5 chunks from app to client?
https://groups.google.com/forum/#!topic/reverbrain/4VGLV2-yIac
Hello. I'm not sure about right place for this issue, so I've placed it in 'core'.
As I understend the core concept, the user application 'announces' its services to cocaine cloud and waits for 'service request' then process it. And all the time between requests where are no application activity at all, so it starts on-demand. Right? I name it as 'asynch manner' here. Also there are no way for applications to operate in 'server manner' by starting to listening on some TCP/UDP port and it's reasonable for isolated environment that may be run as multiple instances on same machine with same network interface. Also 'server manner' will not work with cocaine routing...
But allmost all existing applications and frameworks operates in 'server manner'. And to migrate any existing functionality into cocaine I should rewrite code or add some adopting library to make application 'async'- friendly.
I think that it would be nice to give users some kind of supporting library that allows them to run existing applications without any code changes and then smoothly migrate to new service oriented approach.
If all above looks reasanoble, I'm ready to do some code-work with pull requests.
Regards
Hi!
IMHO, it would be usefull to have some option in app's Profile to autospawn configured amount of workers at app start. And keep them alive despite of idle-timeout
option. All extra-workers should be killed after timeout.
Spawning new workers is not a quick process (est. 200-300 ms), and it can be unpleasant in some cases.
And the second issue.
we can set idle-timeout
to zero - spawned workers will never die. If you don't like my first idea - maybe, implement it only for idle-timeout = 0
case? If the workers never die, it's no matter when to start them - at app start or at first query.
What do you think about it?
Hello! Strange behavior of cocaine-runtime (master branch). Here is my config (this is the default config):
$ cat /etc/cocaine/cocaine-default.conf
{
"version": 2,
"paths": {
"plugins": "/usr/lib/cocaine",
"runtime": "/var/run/cocaine"
},
"services": {
"logging": {
"type": "logging"
},
"storage": {
"type": "storage",
"args": {
"backend": "core"
}
},
"node": {
"type": "node",
"args": {
"runlist": "default"
}
}
},
"storages": {
"core": {
"type": "files",
"args": {
"path": "/var/lib/cocaine"
}
},
"cache": {
"type": "files",
"args": {
"path": "/var/cache/cocaine"
}
}
},
"logging": {
"core" : {
"verbosity": "info",
"timestamp": "%Y-%m-%d %H:%M:%S.%f",
"loggers": [
{
"formatter": {
"type": "string",
"pattern": "[%(timestamp)s] [%(severity)s]: %(message)s [%(...LG)s]"
},
"sink": {
"type": "syslog",
"identity": "cocaine"
}
}
]
}
}
}
When I try to run cocaine-runtime it gives me following:
$ sudo cocaine-runtime -c /etc/cocaine/cocaine-default.conf
ERROR: unable to initialize the context - unable to load '/usr/lib/cocaine/elasticsearch.cocaine-plugin' - file not found.
But there are no elasticsearch
service in config. Looks like it's hardcoded somewere? I'll make and install this plugin as workaround.
That leads to compilation errors like
[..]/cocaine-core-0.11.2.0/src/runtime/runtime.cpp:41:24: fatal error: backward.hpp: No such file or directory
#include "backward.hpp"
Is there another place where we can pick your (working) release tarballs?
Hi!
Cocaine-core version 0.11.2.2, the latest commit in v0.11 branch.
OS: Mac OS X 10.9.2
Cocaine installed to /usr/local/...
Started with /usr/local/bin/cocaine-runtime --configuration /usr/local/etc/cocaine/cocaine-default.conf
Pathes in cocaine config defined like this:
"paths": {
"plugins": "/usr/local/lib/cocaine",
"runtime": "/usr/local/var/run/cocaine",
"spool": "/usr/local/var/spool/cocaine"
},
...
"storages": {
"core": {
"type": "files",
"args": {
"path": "/usr/local/var/lib/cocaine"
}
}
},
All paths does exist and are readable/writable for cocaine-runtime owner-user.
Profiles, manifests and apps upload works fine from cocaine-tool.
Everything lives in /usr/local/var/lib/cocaine/ ... Fine.
But app start fails!
The cocaine log sais:
[Mon Mar 17 20:42:31 2014] [INFO] service/node: starting the 'login' app
[Mon Mar 17 20:42:31 2014] [DEBUG] storage/core: reading object 'login', collection: manifests, path: "/usr/local/var/lib/cocaine/manifests/login"
[Mon Mar 17 20:42:31 2014] [DEBUG] storage/core: reading object 'TestProfile', collection: profiles, path: "/usr/local/var/lib/cocaine/profiles/TestProfile"
[Mon Mar 17 20:42:31 2014] [INFO] app/login: deploying the app to '"/var/spool/cocaine/login"'
[Mon Mar 17 20:42:31 2014] [DEBUG] storage/core: reading object 'login', collection: apps, path: "/usr/local/var/lib/cocaine/apps/login"
[Mon Mar 17 20:42:31 2014] [INFO] packaging: compression: gzip, size: 561 bytes
[Mon Mar 17 20:42:31 2014] [DEBUG] packaging: extracting "/var/spool/cocaine/login/login_worker.py"
[Mon Mar 17 20:42:31 2014] [ERROR] app/login: unable to extract the app files - Can't create '/var/spool/cocaine/login/login_worker.py'
[Mon Mar 17 20:42:31 2014] [ERROR] service/node: unable to initialize the 'login' app - the 'login' app is not available
You see? Cocaine tries to deploy app to /var/spool/...
instead of configured /usr/local/var/spool/...
!
Try build and get error:
.....
Scanning dependencies of target cocaine-runtime
[ 96%] Building CXX object CMakeFiles/cocaine-runtime.dir/src/runtime/pid_file.cpp.o
[100%] Building CXX object CMakeFiles/cocaine-runtime.dir/src/runtime/runtime.cpp.o
/home/cc-dev/cocaine-core/src/runtime/runtime.cpp:41:24: fatal error: backward.hpp: No such file or directory
compilation terminated.
make[2]: *** [CMakeFiles/cocaine-runtime.dir/src/runtime/runtime.cpp.o] Error 1
make[1]: *** [CMakeFiles/cocaine-runtime.dir/all] Error 2
make: *** [all] Error 2
I'm shocked that you would name the project "cocaine". I understand it stands for "Configurable Omnipotent Custom Applications Integrated Network Engine", but that's no excuse for using this name.
I can tell just by the forced use of "Omnipotent" that you purposely were looking for a way to use the word cocaine as your project name.
Why do you want us to be thinking about cocaine? Are you trying to legitimize cocaine use? Do you not know how dangerous a substance it is, and how many lives it has ruined? Or is cocaine just a big joke in Russia, and to everyone that works at Yandex?
Apparently that must be the case, so let me tell you this - cocaine isn't a joke. Use of cocaine can lead to addiction, dependence, emotional-motivational withdrawls, overdose, and sudden death. Cocaine production has led to untold loss of life in some areas of South America due to the gang violence that has surrounded the trade in recent years. Is that really what you want this project, and everyone contributing to it, to be associated with?
This project name is like a bad joke that no one bothered to do anything about. If I worked at Yandex, I would be extremely ashamed. I can't help wonder how many people abuse cocaine at Yandex for this project name to be allowed.
Hello
I've Ubuntu Server 14.04 LTS.
$ uname -a
Linux coca-node-1 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
After adding repos
deb http://repo.reverbrain.com/trusty/ current/amd64/
deb http://repo.reverbrain.com/trusty/ current/all/
I have no docker
and ipvs
plugins:
$ apt-cache search cocaine
cocaine-framework-python - Cocaine - Python Framework
cocaine-dbg - Cocaine - Debug Files
libcocaine-plugin-elliptics-dev - Distributed hash table storage (cocaine plugin includes)
cocaine-tornado-proxy - Tornado-based cocaine HTTP proxy
cocaine-framework-native - Cocaine - Native Framework
libcocaine-plugin-elliptics - Distributed hash table storage (cocaine plugin)
cocaine-runtime - Cocaine - Runtime
cocaine-framework-native-dbg - Cocaine - Native Framework Debug Files
cocaine-framework-native-dev - Cocaine - Native Framework Development Headers
cocaine-tools - Cocaine - Toolset
libcocaine-core2 - Cocaine - Core Libraries
libcocaine-dev - Cocaine - Development Headers
So, i decide to build from sources. Here is my build progress:
cd /tmp
sudo apt-get -y install git equivs devscripts
git clone https://github.com/cocaine/cocaine-core.git
cd cocaine-core
git submodule update --init
sudo mk-build-deps -ir
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr ..
make -j$(grep -c 'processor' /proc/cpuinfo)
Until make
everything looks fine. But make gives me following:
$ make -j$(grep -c 'processor' /proc/cpuinfo)
Scanning dependencies of target cocaine-raft
[ 3%] Building CXX object CMakeFiles/cocaine-raft.dir/src/raft.cpp.o
[ 6%] Building CXX object CMakeFiles/cocaine-raft.dir/src/services/counter.cpp.o
Linking CXX static library libcocaine-raft.a
[ 6%] Built target cocaine-raft
Scanning dependencies of target cocaine-core
[ 9%] Building CXX object CMakeFiles/cocaine-core.dir/src/actor.cpp.o
[ 12%] Building CXX object CMakeFiles/cocaine-core.dir/src/api.cpp.o
[ 15%] Building CXX object CMakeFiles/cocaine-core.dir/src/context.cpp.o
[ 18%] Building CXX object CMakeFiles/cocaine-core.dir/src/auth.cpp.o
[ 21%] Building CXX object CMakeFiles/cocaine-core.dir/src/dispatch.cpp.o
[ 24%] Building CXX object CMakeFiles/cocaine-core.dir/src/dynamic.cpp.o
[ 27%] Building CXX object CMakeFiles/cocaine-core.dir/src/engine.cpp.o
[ 30%] Building CXX object CMakeFiles/cocaine-core.dir/src/essentials.cpp.o
[ 33%] Building CXX object CMakeFiles/cocaine-core.dir/src/group.cpp.o
[ 36%] Building CXX object CMakeFiles/cocaine-core.dir/src/gateways/adhoc.cpp.o
[ 39%] Building CXX object CMakeFiles/cocaine-core.dir/src/isolates/process.cpp.o
[ 42%] Building CXX object CMakeFiles/cocaine-core.dir/src/isolates/process/archive.cpp.o
[ 45%] Building CXX object CMakeFiles/cocaine-core.dir/src/isolates/process/spooler.cpp.o
[ 48%] Building CXX object CMakeFiles/cocaine-core.dir/src/locator.cpp.o
[ 51%] Building CXX object CMakeFiles/cocaine-core.dir/src/logging.cpp.o
[ 54%] Building CXX object CMakeFiles/cocaine-core.dir/src/repository.cpp.o
[ 57%] Building CXX object CMakeFiles/cocaine-core.dir/src/services/logging.cpp.o
In file included from /tmp/cocaine-core/include/cocaine/detail/services/logging.hpp:28:0,
from /tmp/cocaine-core/src/services/logging.cpp:21:
/tmp/cocaine-core/include/cocaine/rpc/dispatch.hpp: In member function ‘typename Visitor::result_type cocaine::dispatch< <template-parameter-1-1> >::invoke(int, const Visitor&) const [with Visitor = cocaine::aux::invocation_visitor_t; Tag = cocaine::io::log_tag; typename Visitor::result_type = std::shared_ptr<cocaine::io::basic_dispatch_t>]’:
/tmp/cocaine-core/include/cocaine/rpc/dispatch.hpp:201:17: error: ‘*((void*)(& slot)+8).std::__shared_ptr<cocaine::io::basic_slot<cocaine::io::log::emit>, (__gnu_cxx::_Lock_policy)2u>::_M_ptr’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
return (*slot)(std::move(args), typename io::basic_slot<Event>::upstream_type(upstream));
^
/tmp/cocaine-core/include/cocaine/rpc/dispatch.hpp:247:38: note: ‘*((void*)(& slot)+8).std::__shared_ptr<cocaine::io::basic_slot<cocaine::io::log::emit>, (__gnu_cxx::_Lock_policy)2u>::_M_ptr’ was declared here
typename slot_map_t::mapped_type slot = lb->second;
^
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/cocaine-core.dir/src/services/logging.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/cocaine-core.dir/all] Ошибка 2
make: *** [all] Ошибка 2
At this moment master on commit #6d0e21eda8ddaee279eecdc8efd6e9bf1fad2fc6
A have made several attempts with previous commits. Build is ok, but cocaine-runtime crashes with ipvs
gateway option with message ipvs-gateway.cocaine-plugin: undefined symbol: nl_handle_alloc
(with adhoc
all works fine). Also I'm not shure that I've build right cocaine-plugins version (I tried runtime fixed in v11.0
branch with plugins from v11.0
branch).
What exactly commits for runtime and for plugins should I build?
Thanks in advance
Hi
Elliptics srw test application (https://github.com/reverbrain/elliptics/blob/master/tests/srw_test_app.cpp) regiulary crashes when building in vagrant. Here is a backtrace:
#0 malloc_consolidate (av=av@entry=0x2b40bd857760 <main_arena>) at malloc.c:4165
#1 0x00002b40bd517fed in _int_free (av=0x2b40bd857760 <main_arena>, p=<optimized out>, have_lock=0) at malloc.c:4057
#2 0x00002b40bc07ef90 in deallocate (this=<optimized out>, __p=<optimized out>) at /usr/include/c++/4.8/ext/new_allocator.h:110
#3 _M_deallocate (this=<optimized out>, __n=<optimized out>, __p=<optimized out>) at /usr/include/c++/4.8/bits/stl_vector.h:174
#4 ~_Vector_base (this=0x1c92118, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/stl_vector.h:160
#5 ~vector (this=0x1c92118, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/stl_vector.h:416
#6 ~writable_stream (this=0x1c920c8, __in_chrg=<optimized out>) at /usr/include/cocaine/asio/writable_stream.hpp:31
#7 destroy<cocaine::io::writable_stream<cocaine::io::socket<cocaine::io::local> > > (this=<optimized out>, __p=0x1c920c8)
at /usr/include/c++/4.8/ext/new_allocator.h:124
#8 _S_destroy<cocaine::io::writable_stream<cocaine::io::socket<cocaine::io::local> > > (__a=..., __p=0x1c920c8)
at /usr/include/c++/4.8/bits/alloc_traits.h:281
#9 destroy<cocaine::io::writable_stream<cocaine::io::socket<cocaine::io::local> > > (__a=..., __p=0x1c920c8)
at /usr/include/c++/4.8/bits/alloc_traits.h:405
#10 std::_Sp_counted_ptr_inplace<cocaine::io::writable_stream<cocaine::io::socket<cocaine::io::local> >, std::allocator<cocaine::io::writable_stream<cocaine::io::socket<cocaine::io::local> > >, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=<optimized out>)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:407
#11 0x00002b40bc056579 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x1c920b0)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:144
#12 0x00002b40bc07f086 in ~__shared_count (this=0x1c7f110, __in_chrg=<optimized out>)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:546
#13 ~__shared_ptr (this=0x1c7f108, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr_base.h:781
#14 ~shared_ptr (this=0x1c7f108, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr.h:93
#15 ~encoder (this=0x1c7f0c0, __in_chrg=<optimized out>) at /usr/include/cocaine/rpc/encoder.hpp:42
---Type <return> to continue, or q <return> to quit---
#16 operator() (this=<optimized out>, __ptr=0x1c7f0c0) at /usr/include/c++/4.8/bits/unique_ptr.h:67
#17 ~unique_ptr (this=0x1c7f4d8, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/unique_ptr.h:184
#18 ~channel (this=0x1c7f4d0, __in_chrg=<optimized out>) at /usr/include/cocaine/rpc/channel.hpp:33
#19 std::_Sp_counted_ptr<cocaine::io::channel<cocaine::io::socket<cocaine::io::local> >*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (
this=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr_base.h:290
#20 0x0000000000416199 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x1c7f2e0)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:144
#21 0x000000000041087c in ~__shared_count (this=0x1c7f690, __in_chrg=<optimized out>)
at /usr/include/c++/4.8/bits/shared_ptr_base.h:546
#22 ~__shared_ptr (this=0x1c7f688, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr_base.h:781
#23 ~shared_ptr (this=0x1c7f688, __in_chrg=<optimized out>) at /usr/include/c++/4.8/bits/shared_ptr.h:93
#24 ~dispatch_t (this=0x1c7f580, __in_chrg=<optimized out>) at /usr/include/cocaine/framework/dispatch.hpp:48
#25 std::default_delete<cocaine::framework::dispatch_t>::operator() (__ptr=__ptr@entry=0x1c7f580, this=<optimized out>)
at /usr/include/c++/4.8/bits/unique_ptr.h:67
#26 0x000000000041b88a in ~unique_ptr (this=<synthetic pointer>, __in_chrg=<optimized out>)
at /usr/include/c++/4.8/bits/unique_ptr.h:184
#27 cocaine::framework::run<app_context<> > (argc=<optimized out>, argv=<optimized out>)
at /usr/include/cocaine/framework/dispatch.hpp:236
#28 0x00002b40bd4b9ec5 in __libc_start_main (main=0x40f890 <main(int, char**)>, argc=9, argv=0x7fff972e44c8, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff972e44b8) at libc-start.c:287
#29 0x000000000040fb60 in _start ()
cocaine-core and native framework are the latest checkouts from v0.11 branches
Does this fire the light or you need more help?
Server logs contain among other cocaine lines the following 'committed suicide' note:
2014-09-17 01:29:34.304526 0000000000000000/4399/4332 DEBUG: slave 41415dd3-61ea-49e5-a707-cc861be17517 received type 2 message in session 0, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.304549 0000000000000000/4378/4332 DEBUG: processing type 0 message using slot 'emit', attrs: ['source': 'srw', 'app': 'service/logging']
2014-09-17 01:29:34.304753 0000000000000000/4399/4332 DEBUG: slave 41415dd3-61ea-49e5-a707-cc861be17517 is committing suicide: per request, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.304865 0000000000000000/4378/4332 DEBUG: worker 41415dd3-61ea-49e5-a707-cc861be17517 received type 2 message, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.304982 0000000000000000/4399/4332 DEBUG: slave 36390bc3-a85a-4b82-951c-02dac78cd9fe received type 2 message in session 0, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.305310 0000000000000000/4378/4332 DEBUG: processing type 0 message using slot 'emit', attrs: ['source': 'srw', 'app': 'service/logging']
2014-09-17 01:29:34.305428 0000000000000000/4399/4332 DEBUG: slave 36390bc3-a85a-4b82-951c-02dac78cd9fe is committing suicide: per request, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.305498 0000000000000000/4378/4332 DEBUG: worker 36390bc3-a85a-4b82-951c-02dac78cd9fe received type 2 message, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
2014-09-17 01:29:34.305814 0000000000000000/4399/4332 DEBUG: slave 41415dd3-61ea-49e5-a707-cc861be17517 has been terminated, attrs: ['source': 'srw', 'app': 'app/dnet_cpp_srw_test_app']
We're experiencing crash of cocaine-runtime
, possibly at the time of creating/restarting cocaine applications with cocaine-tool
. We were not able to collect core dumps though.
Stack trace (most recent call last) in thread 67:
#19 Object "", at 0xffffffffffffffff, in
#18 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff03d85acfc, in clone
#17 Object "/lib/x86_64-linux-gnu/libpthread.so.0", at 0x7ff03d3320a4, in start_thread
#16 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7ff03ddf6dcf, in std::this_thread::__sleep_for(std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
#15 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2d245e, in
#14 Object "/usr/lib/x86_64-linux-gnu/libev.so.4", at 0x7ff03e051fe6, in ev_run
#13 Object "/usr/lib/x86_64-linux-gnu/libev.so.4", at 0x7ff03e04ee44, in ev_invoke_pending
#12 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2e14ac, in cocaine::io::readable_stream<cocaine::io::socket<cocaine::io::tcp> >::on_event(ev::io&, int)
#11 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2d7a36, in cocaine::io::decoder<cocaine::io::readable_stream<cocaine::io::socket<cocaine::io::tcp> > >::on_event(char const*, unsigned long)
#10 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2d31af, in cocaine::actor_t::on_message(int, cocaine::io::message_t const&)
#9 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2fbc3a, in cocaine::dispatch_t::invoke(cocaine::io::message_t const&, std::shared_ptr<cocaine::api::stream_t> const&) const
#8 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e344752, in cocaine::io::blocking_slot<Json::Value, boost::mpl::list<std::vector<std::string, std::allocator<std::string> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >::operator()(msgpack::object const&, std::shared_ptr<cocaine::api::stream_t> const&)
#7 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e344334, in cocaine::io::detail::result_of<std::function<Json::Value (std::vector<std::string, std::allocator<std::string> >)>, void>::type cocaine::io::detail::invoke<boost::mpl::list<std::vector<std::string, std::allocator<std::string> >, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> >::apply<std::function<Json::Value (std::vector<std::string, std::allocator<std::string> >)> >(std::function<Json::Value (std::vector<std::string, std::allocator<std::string> >)> const&, msgpack::object const&)
#6 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e341373, in std::_Function_handler<Json::Value (std::vector<std::string, std::allocator<std::string> >), std::_Bind<std::_Mem_fn<Json::Value (cocaine::service::node_t::*)(std::vector<std::string, std::allocator<std::string> > const&)> (cocaine::service::node_t*, std::_Placeholder<1>)> >::_M_invoke(std::_Any_data const&, std::vector<std::string, std::allocator<std::string> >)
#5 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e3402de, in cocaine::service::node_t::on_pause_app(std::vector<std::string, std::allocator<std::string> > const&)
#4 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2e3eef, in cocaine::app_t::stop()
#3 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2f1305, in cocaine::context_t::detach(std::string const&)
#2 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e31d142, in cocaine::locator_t::detach(std::string const&)
#1 Object "/usr/lib/libcocaine-core.so.2", at 0x7ff03e2d326a, in cocaine::actor_t::location() const
Versions:
dpkg -l | grep cocaine
ii cocaine-framework-native 0.11.1.4 amd64 Cocaine - Native Framework
ii cocaine-framework-python 0.11.1.12 amd64 Cocaine - Python Framework
ii cocaine-runtime 0.11.3.2 amd64 Cocaine - Runtime
ii cocaine-tools 0.11.7.5 amd64 Cocaine - Toolset
ii libcocaine-core2 0.11.3.2 amd64 Cocaine - Core Libraries
ii libcocaine-plugin-cache2 0.11.4.2 amd64 Cocaine - Cache Service
ii libcocaine-plugin-chrono2 0.11.4.2 amd64 Cocaine - Chrono Service
ii libcocaine-plugin-docker2 0.11.4.2 amd64 Cocaine - Docker Isolation
ii libcocaine-plugin-elasticsearch2 0.11.4.2 amd64 Cocaine - Elasticsearch Client Service
ii libcocaine-plugin-elliptics 2.26.9.3 amd64 Distributed hash table storage (cocaine plugin)
ii libcocaine-plugin-ipvs2 0.11.4.2 amd64 Cocaine - IPVS Gateway
ii libcocaine-plugin-logstash2 0.11.4.2 amd64 Cocaine - Logstash Logger
ii libcocaine-plugin-urlfetch2 0.11.4.2 amd64 Cocaine - URLFetch Service
include/cocaine/detail/actor.hpp:28:31: fatal error: asio/io_service.hpp: No such file or directory
#include <asio/io_service.hpp>
^
compilation terminated.
The latest msgpack has been installed in /usr/local/lib and /usr/local/include, although, cmake can not find it.
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_FLAGS=-I/usr/local/include ..
CMake Error at CMakeLists.txt:21 (INCLUDE):
include could not find load file:
foreign/modules/AddCXXCompilerFlag.cmake
-- Boost version: 1.63.0
-- Found the following Boost libraries:
-- filesystem
-- program_options
-- system
-- thread
CMake Error at cmake/locate_library.cmake:13 (MESSAGE):
libmsgpack development files are required to build.
Call Stack (most recent call first):
CMakeLists.txt:35 (LOCATE_LIBRARY)
-- Configuring incomplete, errors occurred!
default i386 ubuntu 12.04 can't compile it without removing '-Werror'
/usr/bin/g++ -Dcocaine_core_EXPORTS -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -Wall -fPIC -I/home/user/elliptics/cocaine-core/include -I/home/user/elliptics/cocaine-core/foreign/cppzmq -I/home/user/elliptics/cocaine-core/foreign/backward-cpp -I/home/user/elliptics/cocaine-core/foreign/jsoncpp-0.6.0-rc2/include -std=c++0x -W -Wall -Werror -pedantic -o CMakeFiles/cocaine-core.dir/src/essentials/services/logging.cpp.o -c /home/user/elliptics/cocaine-core/src/essentials/services/logging.cpp
In file included from /home/user/elliptics/cocaine-core/include/cocaine/dispatch.hpp:25:0,
from /home/user/elliptics/cocaine-core/include/cocaine/api/service.hpp:25,
from /home/user/elliptics/cocaine-core/include/cocaine/essentials/services/logging.hpp:24,
from /home/user/elliptics/cocaine-core/src/essentials/services/logging.cpp:21:
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp: In static member function 'static typename cocaine::detail::result_of<F>::type cocaine::invoke<Sequence>::apply(const F&, const msgpack::object&) [with F = std::function<cocaine::logging::priorities()>, Sequence = boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, typename cocaine::detail::result_of<F>::type = cocaine::logging::priorities]':
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp:180:9: instantiated from 'void cocaine::blocking_slot<R, Sequence>::operator()(const stream_ptr_t&, const msgpack::object&) [with R = cocaine::logging::priorities, Sequence = boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, cocaine::api::stream_ptr_t = std::shared_ptr<cocaine::api::stream_t>]'
/home/user/elliptics/cocaine-core/src/essentials/services/logging.cpp:42:1: instantiated from here
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp:104:9: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp: In static member function 'static typename cocaine::detail::result_of<F>::type cocaine::invoke<Sequence>::apply(const F&, const msgpack::object&) [with F = std::function<void(cocaine::logging::priorities, std::basic_string<char>, std::basic_string<char>)>, Sequence = boost::mpl::list<cocaine::logging::priorities, std::basic_string<char>, std::basic_string<char> >, typename cocaine::detail::result_of<F>::type = void]':
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp:212:9: instantiated from 'void cocaine::blocking_slot<void, Sequence>::operator()(const stream_ptr_t&, const msgpack::object&) [with Sequence = boost::mpl::list<cocaine::logging::priorities, std::basic_string<char>, std::basic_string<char> >, cocaine::api::stream_ptr_t = std::shared_ptr<cocaine::api::stream_t>]'
/home/user/elliptics/cocaine-core/src/essentials/services/logging.cpp:42:1: instantiated from here
/home/user/elliptics/cocaine-core/include/cocaine/slot.hpp:104:9: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
/usr/bin/c++ -Dcocaine_core_EXPORTS -O2 -g -fPIC -I/home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/include -I/home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/foreign/backward-cpp -I/home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/foreign/jsoncpp-0.6.0-rc2/include -I/usr/include/libev -std=c++0x -W -Wall -Werror -pedantic -o CMakeFiles/cocaine-core.dir/src/drivers/fs.cpp.o -c /home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/src/drivers/fs.cpp
In file included from /home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/include/cocaine/detail/actor.hpp:24:0,
from /home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/src/actor.cpp:21:
/home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/include/cocaine/common.hpp:52:16: error: operator '||' has no left operand
#if HAVE_GCC47 || TARGET_OS_MAC
^
In file included from /home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/include/cocaine/app.hpp:24:0,
from /home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/src/app.cpp:21:
/home/zbr/rpmbuild/BUILD/libcocaine-core2-0.11.2.3/include/cocaine/common.hpp:52:16: error: operator '||' has no left operand
#if HAVE_GCC47 || TARGET_OS_MAC
^
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140624/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140624/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC)
$ git branch -v | grep v0.11
I really want to use this framework in my infrastructure, but I need some more informations about the future of this project. Is there any roadmap and planned development for Cocaine?
Hi!
At last, I'm reporting this bug =) I've promissed it since Yandex GoLang Meetup...
Cocaine leaves zombie processes after stopping application.
OS Ubuntu 12.04, Cocaine 0.11.1.0 or 0.11.2.0 (reproduced on both)
How to reproduce:
ps aux | grep python
and findout it has been started...cocaine-tool app stop -n <name>
than check ps aux | grep python
- it will return something like this:ps aux | grep python
cocaine 4280 0.9 0.0 0 0 ? Z 20:16 0:00 [python] <defunct>
ikorolev 4318 0.0 0.0 8112 928 pts/1 S+ 20:16 0:00 grep python
After that, every shutdown worker (doesn't matter, was it closed manually or automatically) stays in system as zombie.
This is reproduced not only if having Python workers, but also Native.
The Homebrew samples on the Deployment Wiki page shouldn't use sudo. Here's background on why:
https://github.com/mxcl/homebrew/wiki/FAQ#wiki-sudo
Here's a diff showing what needs to change:
For example on a clean ubuntu-server without russian locale perform
export LC_CTYPE=ru_RU.UTF-8
then cocaine tool fail to start with error message
mou@bsr-sas012i:~$ sudo cocaine-tool
terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.