From 7137c53492a078898dfd1f74eb0b51ab2d005711 Mon Sep 17 00:00:00 2001 From: Guy Riddle Date: Mon, 19 Jun 2017 12:48:08 -0700 Subject: [PATCH 1/5] DCI-57 Add docker target to Makefile --- Makefile | 14 +++++++++++--- docker/bedbugs/Dockerfile | 18 ++++++++++++++++++ docker/bedbugs/makeme | 5 +++++ docker/bedrook/Dockerfile | 15 +++++++++++++++ docker/bedrook/start-bedrock | 20 ++++++++++++++++++++ libstuff/SSignal.cpp | 3 +++ 6 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 docker/bedbugs/Dockerfile create mode 100755 docker/bedbugs/makeme create mode 100644 docker/bedrook/Dockerfile create mode 100755 docker/bedrook/start-bedrock diff --git a/Makefile b/Makefile index e19a647cb..fb481431d 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Set the compiler, if it's not set by the environment. ifndef GXX - GXX = g++-6 + GXX = g++ endif ifndef CC - CC = gcc-6 + CC = gcc endif # We use our project directory as a search path so we don't need "../../../.." all over the place. @@ -124,7 +124,7 @@ libbedrock.a: $(LIBBEDROCKOBJ) # We use the same library paths and required libraries for both binaries. LIBPATHS =-Lmbedtls/library -L$(PROJECT) -LIBRARIES =-lbedrock -lstuff -ldl -lpcrecpp -lpthread -lmbedtls -lmbedx509 -lmbedcrypto -lz +LIBRARIES =-lbedrock -lstuff -ldl -lpcrecpp -lpthread -lmbedtls -lmbedx509 -lmbedcrypto -lz -lexecinfo # The prerequisites for both binaries are the same. We only include one of the mbedtls libs to avoid building three # times in parallel. @@ -139,6 +139,14 @@ test/test: $(TESTOBJ) $(BINPREREQS) test/clustertest/clustertest: $(CLUSTERTESTOBJ) $(BINPREREQS) $(GXX) -o $@ $(CLUSTERTESTOBJ) $(LIBPATHS) -rdynamic $(LIBRARIES) +.PHONY: docker + +docker: + docker build -t bedbugs $(PROJECT)/docker/bedbugs + docker run -t --rm -v $(PROJECT):/src bedbugs bedrock + cp $(PROJECT)/bedrock $(PROJECT)/docker/bedrook/bedrock + docker build -t bedrock $(PROJECT)/docker/bedrook + # Make dependency files from cpp files, putting them in $INTERMEDIATEDIR. # This is the same as making the object files, both dependencies and object files are built together. The only # difference is that here, the fie passed as `-MF` is the target, and the output file is a modified version of that, diff --git a/docker/bedbugs/Dockerfile b/docker/bedbugs/Dockerfile new file mode 100644 index 000000000..2d08b73a7 --- /dev/null +++ b/docker/bedbugs/Dockerfile @@ -0,0 +1,18 @@ +FROM alpine:3.6 + +# Requirements +RUN apk update \ + && apk add alpine-sdk + +RUN apk add musl-dev pcre-dev zlib-dev libexecinfo-dev + +RUN adduser -h /out -u 1000 -D build \ + && chgrp build /lib \ + && chmod 775 /lib + +COPY makeme /usr/bin + +USER build +WORKDIR /src + +ENTRYPOINT ["makeme"] diff --git a/docker/bedbugs/makeme b/docker/bedbugs/makeme new file mode 100755 index 000000000..dfc24e690 --- /dev/null +++ b/docker/bedbugs/makeme @@ -0,0 +1,5 @@ +#!/bin/sh + +echo makeme "$@" + +make -C /src "$@" diff --git a/docker/bedrook/Dockerfile b/docker/bedrook/Dockerfile new file mode 100644 index 000000000..f9b9a31ae --- /dev/null +++ b/docker/bedrook/Dockerfile @@ -0,0 +1,15 @@ +FROM alpine:3.6 + +RUN apk update \ + && apk add libpcrecpp libstdc++ libgcc libexecinfo + +RUN adduser -h /db -u 1000 -D bed \ + && chgrp bed /lib \ + && chmod 775 /lib + +COPY bedrock start-bedrock /usr/local/bin/ + +USER bed +WORKDIR /db + +ENTRYPOINT ["start-bedrock"] diff --git a/docker/bedrook/start-bedrock b/docker/bedrook/start-bedrock new file mode 100755 index 000000000..7c32c3611 --- /dev/null +++ b/docker/bedrook/start-bedrock @@ -0,0 +1,20 @@ +#!/bin/sh + +export NODE=ohio +export DB=/db/bedrock.db +export PRIO=30 +export RUN=/var/run/bedrock.pid + +if [ ! -f $DB ] +then + touch $DB +fi + +bedrock -v -db $DB -plugins db,jobs,cache,mysql + +#bedrock -fork -nodeName $NODE -db $DB \ +# -serverHost 0.0.0.0:8888 -nodeHost 0.0.0.0:8889 -priority $PRIO -pidfile $RUN \ +# -quorumCheckpoint 100 -readThreads 4 -cache 10001 -plugins status,db,jobs,cache,mysql \ +# -v + +sh -i diff --git a/libstuff/SSignal.cpp b/libstuff/SSignal.cpp index 434b38ab4..017fc51cb 100644 --- a/libstuff/SSignal.cpp +++ b/libstuff/SSignal.cpp @@ -13,6 +13,9 @@ #define SIGEMT SIGTERM #define SIGINFO SIGTERM #define SIGLOST SIGTERM +#ifndef SIGCLD +#define SIGCLD SIGCHLD +#endif #endif // Store in a bitmask for which signals sent From a4b851e476ca26dd1652bee567d893b594d03e37 Mon Sep 17 00:00:00 2001 From: Guy Riddle Date: Mon, 19 Jun 2017 16:53:54 -0700 Subject: [PATCH 2/5] DCI-57 Start the busybox syslogd --- Makefile | 4 ++-- docker/bedbugs/makeme | 5 ++++- docker/bedrook/Dockerfile | 2 +- docker/bedrook/start-bedrock | 2 ++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 23a273ba1..b93848829 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Set the compiler, if it's not set by the environment. ifndef GXX - GXX = g++ + GXX = g++-6 endif ifndef CC - CC = gcc + CC = gcc-6 endif # We use our project directory as a search path so we don't need "../../../.." all over the place. diff --git a/docker/bedbugs/makeme b/docker/bedbugs/makeme index dfc24e690..ebc668ad6 100755 --- a/docker/bedbugs/makeme +++ b/docker/bedbugs/makeme @@ -1,5 +1,8 @@ #!/bin/sh echo makeme "$@" + +export GXX=g++ +export CC=gcc -make -C /src "$@" +make -C /src -e "$@" diff --git a/docker/bedrook/Dockerfile b/docker/bedrook/Dockerfile index f9b9a31ae..8d4556e51 100644 --- a/docker/bedrook/Dockerfile +++ b/docker/bedrook/Dockerfile @@ -9,7 +9,7 @@ RUN adduser -h /db -u 1000 -D bed \ COPY bedrock start-bedrock /usr/local/bin/ -USER bed +#USER bed WORKDIR /db ENTRYPOINT ["start-bedrock"] diff --git a/docker/bedrook/start-bedrock b/docker/bedrook/start-bedrock index 7c32c3611..58cacff12 100755 --- a/docker/bedrook/start-bedrock +++ b/docker/bedrook/start-bedrock @@ -5,6 +5,8 @@ export DB=/db/bedrock.db export PRIO=30 export RUN=/var/run/bedrock.pid +syslogd -S + if [ ! -f $DB ] then touch $DB From 63a05f888c71800083ec513dfbd605e6439b6397 Mon Sep 17 00:00:00 2001 From: Guy Riddle Date: Mon, 26 Jun 2017 14:20:07 -0700 Subject: [PATCH 3/5] DCI-57 Parameters from bedrock.cfg --- docker/bedrook/Dockerfile | 1 + docker/bedrook/start-bedrock | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docker/bedrook/Dockerfile b/docker/bedrook/Dockerfile index 8d4556e51..54c2d4694 100644 --- a/docker/bedrook/Dockerfile +++ b/docker/bedrook/Dockerfile @@ -10,6 +10,7 @@ RUN adduser -h /db -u 1000 -D bed \ COPY bedrock start-bedrock /usr/local/bin/ #USER bed +VOLUME /db WORKDIR /db ENTRYPOINT ["start-bedrock"] diff --git a/docker/bedrook/start-bedrock b/docker/bedrook/start-bedrock index 58cacff12..2b9f24bd8 100755 --- a/docker/bedrook/start-bedrock +++ b/docker/bedrook/start-bedrock @@ -2,17 +2,21 @@ export NODE=ohio export DB=/db/bedrock.db +export CFG=/db/bedrock.cfg +export PEERS=/db/bedrock.peers export PRIO=30 export RUN=/var/run/bedrock.pid syslogd -S -if [ ! -f $DB ] +if [ ! -f $CFG ] then - touch $DB + echo "-plugins db,jobs,cache,mysql" >$CFG fi -bedrock -v -db $DB -plugins db,jobs,cache,mysql +touch $DB $PEERS + +cat $CFG $PEERS | xargs bedrock -fork -v -db $DB -pidfile $RUN #bedrock -fork -nodeName $NODE -db $DB \ # -serverHost 0.0.0.0:8888 -nodeHost 0.0.0.0:8889 -priority $PRIO -pidfile $RUN \ From 88b59578b791bc6b822022d410d01874a04ceb40 Mon Sep 17 00:00:00 2001 From: Guy Riddle Date: Wed, 28 Jun 2017 17:13:25 -0700 Subject: [PATCH 4/5] DCI-57 Build UDF plugin --- Makefile | 15 +++++- docker/bedrook/Dockerfile | 1 + docker/bedrook/udf.so | Bin 0 -> 24928 bytes udf.c | 107 ++++++++++++++++++++++++++++++++++++++ udf.so | Bin 0 -> 24928 bytes 5 files changed, 121 insertions(+), 2 deletions(-) create mode 100755 docker/bedrook/udf.so create mode 100644 udf.c create mode 100755 udf.so diff --git a/Makefile b/Makefile index 5b6ec7b1d..aee1113eb 100644 --- a/Makefile +++ b/Makefile @@ -42,14 +42,25 @@ clustertest: test/clustertest/clustertest testplugin testplugin: cd test/clustertest/testplugin && make -.PHONY: docker +.PHONY: docker udf docker: docker build -t bedbugs $(PROJECT)/docker/bedbugs - docker run -t --rm -v $(PROJECT):/src bedbugs bedrock + docker run -t --rm -v $(PROJECT):/src bedbugs bedrock udf cp $(PROJECT)/bedrock $(PROJECT)/docker/bedrook/bedrock + cp $(PROJECT)/udf.so $(PROJECT)/docker/bedrook/udf.so docker build -t bedrock $(PROJECT)/docker/bedrook +udf: udf.so + +UDFSRC = udf.c +UDFOBJ = $(UDFSRC:%.c=$(INTERMEDIATEDIR)/%.o) + +CFLAGS += -fPIC -I$(PROJECT)/libstuff + +udf.so: $(UDFOBJ) + $(GXX) $(CXXFLAGS) -shared -o $@ $(UDFOBJ) + # Set up our precompiled header. This makes building *way* faster (roughly twice as fast). # Including it here causes it to be generated. # Depends on one of our mbedtls files, to make sure the submodule gets pulled and built. diff --git a/docker/bedrook/Dockerfile b/docker/bedrook/Dockerfile index 54c2d4694..c29b19819 100644 --- a/docker/bedrook/Dockerfile +++ b/docker/bedrook/Dockerfile @@ -8,6 +8,7 @@ RUN adduser -h /db -u 1000 -D bed \ && chmod 775 /lib COPY bedrock start-bedrock /usr/local/bin/ +COPY udf.so /usr/local/lib/ #USER bed VOLUME /db diff --git a/docker/bedrook/udf.so b/docker/bedrook/udf.so new file mode 100755 index 0000000000000000000000000000000000000000..bce82809302bfb2d3b857603866098a369552e32 GIT binary patch literal 24928 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 literal 0 HcmV?d00001 diff --git a/udf.c b/udf.c new file mode 100644 index 000000000..50f532b21 --- /dev/null +++ b/udf.c @@ -0,0 +1,107 @@ +#include "sqlite3ext.h" +SQLITE_EXTENSION_INIT1 + +#if 0 +static void rot13func( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const unsigned char *zIn; + int nIn; + unsigned char *zOut; + char *zToFree = 0; + int i; + char zTemp[100]; + assert( argc==1 ); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + zIn = (const unsigned char*)sqlite3_value_text(argv[0]); + nIn = sqlite3_value_bytes(argv[0]); + if( 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 literal 0 HcmV?d00001 From 418ee046833495513a08523fb01635d9ceed6fde Mon Sep 17 00:00:00 2001 From: Guy Riddle Date: Thu, 29 Jun 2017 14:03:49 -0700 Subject: [PATCH 5/5] DCI-57 Add SQLite function gouda --- .gitignore | 1 + Makefile | 4 +- docker/bedrook/udf.so | Bin 24928 -> 188064 bytes main.cpp | 4 +- udf.c | 94 ++++++++++++------------------------------ udf.so | Bin 24928 -> 188064 bytes udfplug.cpp | 23 +++++++++++ 7 files changed, 55 insertions(+), 71 deletions(-) create mode 100644 udfplug.cpp diff --git a/.gitignore b/.gitignore index 273e4667d..3873d0217 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ libstuff.a sqlitecluster/sqlitecluster libstuff/libstuff.d libstuff/libstuff.h.gch +udf.so diff --git a/Makefile b/Makefile index aee1113eb..600a3d098 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,9 @@ docker: udf: udf.so UDFSRC = udf.c +UDFCPP = udfplug.cpp UDFOBJ = $(UDFSRC:%.c=$(INTERMEDIATEDIR)/%.o) +UDFOBJ += $(UDFCPP:%.cpp=$(INTERMEDIATEDIR)/%.o) CFLAGS += -fPIC -I$(PROJECT)/libstuff @@ -105,7 +107,7 @@ STUFFC = $(shell find libstuff -name '*.c') STUFFOBJ = $(STUFFCPP:%.cpp=$(INTERMEDIATEDIR)/%.o) $(STUFFC:%.c=$(INTERMEDIATEDIR)/%.o) STUFFDEP = $(STUFFCPP:%.cpp=$(INTERMEDIATEDIR)/%.d) -LIBBEDROCKCPP = $(shell find * -name '*.cpp' -not -name main.cpp -not -path 'test*' -not -path 'libstuff*') +LIBBEDROCKCPP = $(shell find * -name '*.cpp' -not -name main.cpp -not -name udfplug.cpp -not -path 'test*' -not -path 'libstuff*') LIBBEDROCKOBJ = $(LIBBEDROCKCPP:%.cpp=$(INTERMEDIATEDIR)/%.o) LIBBEDROCKDEP = $(LIBBEDROCKCPP:%.cpp=$(INTERMEDIATEDIR)/%.d) diff --git a/docker/bedrook/udf.so b/docker/bedrook/udf.so index bce82809302bfb2d3b857603866098a369552e32..d6829c7ce32e9052c8fa22447d0264943b51181e 100755 GIT binary patch literal 188064 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 loadPlugins(SData& args) { // Open the library. void* lib = dlopen(pluginName.c_str(), RTLD_NOW); if(!lib) { - cout << "Error loading bedrock plugin " << pluginName << ": " << dlerror() << endl; + SWARN("Error loading bedrock plugin " << pluginName << ": " << dlerror()); } else { void* sym = dlsym(lib, symbolName.c_str()); if (!sym) { - cout << "Couldn't find symbol " << symbolName << endl; + SWARN("Couldn't find symbol " << symbolName); } else { // Call the plugin registration function with the same name. ((void(*)()) sym)(); diff --git a/udf.c b/udf.c index 50f532b21..d6b7777bf 100644 --- a/udf.c +++ b/udf.c @@ -1,65 +1,30 @@ +/* + Copyright 2017 Guy Riddle + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + #include "sqlite3ext.h" SQLITE_EXTENSION_INIT1 -#if 0 -static void rot13func( - sqlite3_context *context, - int argc, - sqlite3_value **argv -){ - const unsigned char *zIn; - int nIn; - unsigned char *zOut; - char *zToFree = 0; - int i; - char zTemp[100]; - assert( argc==1 ); - if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; - zIn = (const unsigned char*)sqlite3_value_text(argv[0]); - nIn = sqlite3_value_bytes(argv[0]); - if( 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 + +/* + * We don't really need the Bedrock plugin APIs, just the loading mechanism. + * + * The SQLite stored functions we register get done in udf_initialize() + * + */ + +class BedrockPlugin_UDF : public BedrockPlugin +{ + public: + virtual string getName() { return "UDF"; } +}; + +extern "C" void udf_initialize(); + +extern "C" void BEDROCK_PLUGIN_REGISTER_UDF() { + new BedrockPlugin_UDF(); + + udf_initialize(); +}