Giter VIP home page Giter VIP logo

marvin-ai / marvin-engine-executor Goto Github PK

View Code? Open in Web Editor NEW
45.0 45.0 10.0 5.28 MB

Marvin AI has been accepted into the Apache Foundation and is now available at https://github.com/apache/incubator-marvin

Home Page: http://www.marvin-ai.org

License: Apache License 2.0

Scala 96.24% Makefile 0.75% HTML 3.01%
architecture-components artificial-intelligence deep-learning grpc-client marvin platform scala

marvin-engine-executor's People

Contributors

afgoulart avatar lucasbm88 avatar oldfly avatar rafaelnovello avatar takabayashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marvin-engine-executor's Issues

Unit test is loading true actor for some reason

[info] ProtocolUtilTest: [info] generateProtocol [info] - should generate a protocol with valid format [WARN] [10/18/2017 10:55:52.375] [pool-7-thread-6-ScalaTest-running-PredictorFSMTest] [akka://EngineFSMTest/user/$$d] Engine is unavailable, not possible to perform event any message in state Unavailable/NoModel [INFO] [10/18/2017 10:55:52.736] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for predictor] received. log4j:WARN No appenders could be found for logger (org.marvin.executor.api.exception.EngineExceptionAndRejectionHandler$). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. [INFO] [10/18/2017 10:55:52.852] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for predictor] received. [INFO] [10/18/2017 10:55:52.855] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for predictor] received. [INFO] [10/18/2017 10:55:52.920] [org-marvin-executor-api-GenericHttpAPITest-akka.actor.default-dispatcher-4] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] RECEIVE FAILURE!!! Ask timed out on [Actor[akka://org-marvin-executor-api-GenericHttpAPITest/system/testProbe-6#461216668]] after [50 ms]. Sender[null] sent message of type "org.marvin.executor.actions.OnlineAction$OnlineExecute".class akka.pattern.AskTimeoutException [INFO] [10/18/2017 10:55:52.970] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for acquisitor] received. [INFO] [10/18/2017 10:55:52.993] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for acquisitor] received. [INFO] [10/18/2017 10:55:53.005] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for tpreparator] received. [INFO] [10/18/2017 10:55:53.015] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for tpreparator] received. [INFO] [10/18/2017 10:55:53.028] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for trainer] received. [INFO] [10/18/2017 10:55:53.034] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for trainer] received. [INFO] [10/18/2017 10:55:53.042] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for evaluator] received. [INFO] [10/18/2017 10:55:53.049] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request for evaluator] received. [INFO] [10/18/2017 10:55:53.054] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request pipeline process received. [INFO] [10/18/2017 10:55:53.060] [pool-7-thread-1-ScalaTest-running-GenericHttpAPITest] [GenericHttpAPITest(akka://org-marvin-executor-api-GenericHttpAPITest)] Request pipeline process received. [INFO] [10/18/2017 10:55:53.974] [MarvinExecutorSystem-akka.actor.default-dispatcher-9] [akka://MarvinExecutorSystem/user/tpreparatorActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:53.976] [MarvinExecutorSystem-akka.actor.default-dispatcher-12] [akka://MarvinExecutorSystem/user/trainerActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:53.979] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/evaluatorActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:53.980] [MarvinExecutorSystem-akka.actor.default-dispatcher-11] [akka://MarvinExecutorSystem/user/acquisitorActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:53.982] [MarvinExecutorSystem-akka.actor.default-dispatcher-6] [akka://MarvinExecutorSystem/user/trainerActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized... [INFO] [10/18/2017 10:55:53.987] [MarvinExecutorSystem-akka.actor.default-dispatcher-4] [akka://MarvinExecutorSystem/user/tpreparatorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized... [INFO] [10/18/2017 10:55:53.989] [MarvinExecutorSystem-akka.actor.default-dispatcher-7] [akka://MarvinExecutorSystem/user/acquisitorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized... [INFO] [10/18/2017 10:55:53.989] [MarvinExecutorSystem-akka.actor.default-dispatcher-5] [akka://MarvinExecutorSystem/user/evaluatorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized... [INFO] [10/18/2017 10:55:53.995] [MarvinExecutorSystem-akka.actor.default-dispatcher-2] [akka://MarvinExecutorSystem/user/predictorActor] Starting to process reload [no save] to predictor. Protocol: []. [INFO] [10/18/2017 10:55:53.996] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:53.998] [MarvinExecutorSystem-akka.actor.default-dispatcher-8] [akka://MarvinExecutorSystem/user/pipelineActor/artifactSaver] org.marvin.manager.ArtifactSaver actor initialized... [INFO] [10/18/2017 10:55:54.002] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] org.marvin.executor.proxies.OnlineActionProxy actor initialized... [INFO] [10/18/2017 10:55:54.593] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Start the reload remote procedure to predictor. Protocol [] [ERROR] [10/18/2017 10:55:54.885] [MarvinExecutorSystem-akka.actor.default-dispatcher-4] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] UNAVAILABLE io.grpc.StatusRuntimeException: UNAVAILABLE at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:212) at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:193) at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:100) at actions.OnlineActionHandlerGrpc$OnlineActionHandlerBlockingStub.RemoteReload(OnlineActionHandlerGrpc.scala:61) at org.marvin.executor.proxies.OnlineActionProxy$$anonfun$receive$1.applyOrElse(OnlineActionProxy.scala:54) at akka.actor.Actor.aroundReceive(Actor.scala:502) at akka.actor.Actor.aroundReceive$(Actor.scala:500) at org.marvin.executor.proxies.EngineProxy.aroundReceive(EngineProxy.scala:29) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526) at akka.actor.ActorCell.invoke(ActorCell.scala:495) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run(Mailbox.scala:224) at akka.dispatch.Mailbox.exec(Mailbox.scala:234) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:50055 at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:352) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:632) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.ConnectException: Connection refused ... 11 more

It's not possible to run batch actions from remote engine-executor server

When running the engine-executor from a remote machine, it's not possible to run batch actions (acquisitor, tpreparator, trainer and pipeline). The artifacts are being generated in the machine where the engine is running and the engine-executor is trying to copy them to hdfs from the engine-executor machine.

Predictors reload action are locking the state machine in the "reloading" state forever

/usr/lib/jvm/java-8-oracle/bin/java -DmarvinConfig.engineHome=/home/taka/marvin/engines/iris-species-engine -javaagent:/home/taka/development/intelliJ-idea/lib/idea_rt.jar=35995:/home/taka/development/intelliJ-idea/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/home/taka/marvin/marvin-engine-executor/target/scala-2.12/classes:/home/taka/.ivy2/cache/aopalliance/aopalliance/jars/aopalliance-1.0.jar:/home/taka/.ivy2/cache/xmlenc/xmlenc/jars/xmlenc-0.52.jar:/home/taka/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.3.04.jar:/home/taka/.ivy2/cache/xerces/xercesImpl/jars/xercesImpl-2.9.1.jar:/home/taka/.ivy2/cache/org.xerial.snappy/snappy-java/bundles/snappy-java-1.0.4.1.jar:/home/taka/.ivy2/cache/org.tukaani/xz/jars/xz-1.0.jar:/home/taka/.ivy2/cache/org.sonatype.sisu.inject/cglib/jars/cglib-2.2.1-v20090111.jar:/home/taka/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.7.10.jar:/home/taka/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.10.jar:/home/taka/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.12/bundles/scala-parser-combinators_2.12-1.0.4.jar:/home/taka/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.12/bundles/scala-java8-compat_2.12-0.8.0.jar:/home/taka/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.12.3.jar:/home/taka/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.12.3.jar:/home/taka/.ivy2/cache/org.reactivestreams/reactive-streams/jars/reactive-streams-1.0.0.jar:/home/taka/.ivy2/cache/org.mortbay.jetty/jetty-util/jars/jetty-util-6.1.26.jar:/home/taka/.ivy2/cache/org.mortbay.jetty/jetty-sslengine/jars/jetty-sslengine-6.1.26.jar:/home/taka/.ivy2/cache/org.fusesource.leveldbjni/leveldbjni-all/bundles/leveldbjni-all-1.8.jar:/home/taka/.ivy2/cache/org.codehaus.jettison/jettison/bundles/jettison-1.1.jar:/home/taka/.ivy2/cache/org.codehaus.jackson/jackson-xc/jars/jackson-xc-1.9.13.jar:/home/taka/.ivy2/cache/org.codehaus.jackson/jackson-mapper-asl/jars/jackson-mapper-asl-1.9.13.jar:/home/taka/.ivy2/cache/org.codehaus.jackson/jackson-jaxrs/jars/jackson-jaxrs-1.9.13.jar:/home/taka/.ivy2/cache/org.codehaus.jackson/jackson-core-asl/jars/jackson-core-asl-1.9.13.jar:/home/taka/.ivy2/cache/org.clapper/grizzled-slf4j_2.12/jars/grizzled-slf4j_2.12-1.3.0.jar:/home/taka/.ivy2/cache/org.apache.zookeeper/zookeeper/jars/zookeeper-3.4.6.jar:/home/taka/.ivy2/cache/org.apache.htrace/htrace-core/jars/htrace-core-3.1.0-incubating.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-yarn-server-common/jars/hadoop-yarn-server-common-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-yarn-common/jars/hadoop-yarn-common-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-yarn-client/jars/hadoop-yarn-client-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-yarn-api/jars/hadoop-yarn-api-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-shuffle/jars/hadoop-mapreduce-client-shuffle-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-jobclient/jars/hadoop-mapreduce-client-jobclient-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-core/jars/hadoop-mapreduce-client-core-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-common/jars/hadoop-mapreduce-client-common-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-app/jars/hadoop-mapreduce-client-app-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-hdfs/jars/hadoop-hdfs-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-common/jars/hadoop-common-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-client/jars/hadoop-client-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-auth/jars/hadoop-auth-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.hadoop/hadoop-annotations/jars/hadoop-annotations-2.7.4.jar:/home/taka/.ivy2/cache/org.apache.directory.server/apacheds-kerberos-codec/bundles/apacheds-kerberos-codec-2.0.0-M15.jar:/home/taka/.ivy2/cache/org.apache.directory.server/apacheds-i18n/bundles/apacheds-i18n-2.0.0-M15.jar:/home/taka/.ivy2/cache/org.apache.directory.api/api-util/bundles/api-util-1.0.0-M20.jar:/home/taka/.ivy2/cache/org.apache.directory.api/api-asn1-api/bundles/api-asn1-api-1.0.0-M20.jar:/home/taka/.ivy2/cache/org.apache.curator/curator-recipes/bundles/curator-recipes-2.7.1.jar:/home/taka/.ivy2/cache/org.apache.curator/curator-framework/bundles/curator-framework-2.7.1.jar:/home/taka/.ivy2/cache/org.apache.curator/curator-client/bundles/curator-client-2.7.1.jar:/home/taka/.ivy2/cache/org.apache.commons/commons-math3/jars/commons-math3-3.1.1.jar:/home/taka/.ivy2/cache/org.apache.commons/commons-compress/jars/commons-compress-1.4.1.jar:/home/taka/.ivy2/cache/org.apache.avro/avro/jars/avro-1.7.4.jar:/home/taka/.ivy2/cache/log4j/log4j/bundles/log4j-1.2.17.jar:/home/taka/.ivy2/cache/junit/junit/jars/junit-3.8.1.jar:/home/taka/.ivy2/cache/javax.xml.stream/stax-api/jars/stax-api-1.0-2.jar:/home/taka/.ivy2/cache/javax.xml.bind/jaxb-api/jars/jaxb-api-2.2.2.jar:/home/taka/.ivy2/cache/javax.servlet.jsp/jsp-api/jars/jsp-api-2.1.jar:/home/taka/.ivy2/cache/javax.servlet/servlet-api/jars/servlet-api-2.5.jar:/home/taka/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:/home/taka/.ivy2/cache/javax.activation/activation/jars/activation-1.1.jar:/home/taka/.ivy2/cache/io.spray/spray-json_2.12/bundles/spray-json_2.12-1.3.3.jar:/home/taka/.ivy2/cache/io.netty/netty-transport/jars/netty-transport-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-resolver/jars/netty-resolver-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-handler-proxy/jars/netty-handler-proxy-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-handler/jars/netty-handler-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-common/jars/netty-common-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-codec-socks/jars/netty-codec-socks-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-codec-http2/jars/netty-codec-http2-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-codec-http/jars/netty-codec-http-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-codec/jars/netty-codec-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-buffer/jars/netty-buffer-4.1.12.Final.jar:/home/taka/.ivy2/cache/io.netty/netty-all/jars/netty-all-4.0.23.Final.jar:/home/taka/.ivy2/cache/io.netty/netty/bundles/netty-3.7.0.Final.jar:/home/taka/.ivy2/cache/io.grpc/grpc-stub/jars/grpc-stub-1.5.0.jar:/home/taka/.ivy2/cache/io.grpc/grpc-protobuf-lite/jars/grpc-protobuf-lite-1.5.0.jar:/home/taka/.ivy2/cache/io.grpc/grpc-protobuf/jars/grpc-protobuf-1.5.0.jar:/home/taka/.ivy2/cache/io.grpc/grpc-netty/jars/grpc-netty-1.5.0.jar:/home/taka/.ivy2/cache/io.grpc/grpc-core/jars/grpc-core-1.5.0.jar:/home/taka/.ivy2/cache/io.grpc/grpc-context/jars/grpc-context-1.5.0.jar:/home/taka/.ivy2/cache/commons-net/commons-net/jars/commons-net-3.1.jar:/home/taka/.ivy2/cache/commons-lang/commons-lang/jars/commons-lang-2.6.jar:/home/taka/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.4.jar:/home/taka/.ivy2/cache/commons-httpclient/commons-httpclient/jars/commons-httpclient-3.1.jar:/home/taka/.ivy2/cache/commons-configuration/commons-configuration/jars/commons-configuration-1.6.jar:/home/taka/.ivy2/cache/commons-collections/commons-collections/jars/commons-collections-3.2.2.jar:/home/taka/.ivy2/cache/commons-cli/commons-cli/jars/commons-cli-1.2.jar:/home/taka/.ivy2/cache/commons-beanutils/commons-beanutils-core/jars/commons-beanutils-core-1.8.0.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-stream_2.12/jars/akka-stream_2.12-2.4.19.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-parsing_2.12/jars/akka-parsing_2.12-10.0.10.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-http_2.12/jars/akka-http_2.12-10.0.10.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-http-spray-json_2.12/jars/akka-http-spray-json_2.12-10.0.10.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-http-core_2.12/jars/akka-http-core_2.12-10.0.10.jar:/home/taka/.ivy2/cache/com.typesafe.akka/akka-actor_2.12/jars/akka-actor_2.12-2.4.19.jar:/home/taka/.ivy2/cache/com.typesafe/ssl-config-core_2.12/bundles/ssl-config-core_2.12-0.2.1.jar:/home/taka/.ivy2/cache/com.typesafe/config/bundles/config-1.3.0.jar:/home/taka/.ivy2/cache/com.trueaccord.scalapb/scalapb-runtime_2.12/jars/scalapb-runtime_2.12-0.6.2.jar:/home/taka/.ivy2/cache/com.trueaccord.scalapb/scalapb-runtime-grpc_2.12/jars/scalapb-runtime-grpc_2.12-0.6.2.jar:/home/taka/.ivy2/cache/com.trueaccord.lenses/lenses_2.12/jars/lenses_2.12-0.4.12.jar:/home/taka/.ivy2/cache/com.thoughtworks.paranamer/paranamer/bundles/paranamer-2.8.jar:/home/taka/.ivy2/cache/com.sun.xml.bind/jaxb-impl/jars/jaxb-impl-2.2.3-1.jar:/home/taka/.ivy2/cache/com.sun.jersey.contribs/jersey-guice/jars/jersey-guice-1.9.jar:/home/taka/.ivy2/cache/com.sun.jersey/jersey-server/bundles/jersey-server-1.9.jar:/home/taka/.ivy2/cache/com.sun.jersey/jersey-json/bundles/jersey-json-1.9.jar:/home/taka/.ivy2/cache/com.sun.jersey/jersey-core/bundles/jersey-core-1.9.jar:/home/taka/.ivy2/cache/com.sun.jersey/jersey-client/bundles/jersey-client-1.9.jar:/home/taka/.ivy2/cache/com.lihaoyi/sourcecode_2.12/jars/sourcecode_2.12-0.1.3.jar:/home/taka/.ivy2/cache/com.lihaoyi/fastparse_2.12/jars/fastparse_2.12-0.4.3.jar:/home/taka/.ivy2/cache/com.lihaoyi/fastparse-utils_2.12/jars/fastparse-utils_2.12-0.4.3.jar:/home/taka/.ivy2/cache/com.google.protobuf/protobuf-java-util/bundles/protobuf-java-util-3.3.1.jar:/home/taka/.ivy2/cache/com.google.protobuf/protobuf-java/bundles/protobuf-java-3.3.1.jar:/home/taka/.ivy2/cache/com.google.instrumentation/instrumentation-api/jars/instrumentation-api-0.4.3.jar:/home/taka/.ivy2/cache/com.google.inject/guice/jars/guice-3.0.jar:/home/taka/.ivy2/cache/com.google.guava/guava/bundles/guava-19.0.jar:/home/taka/.ivy2/cache/com.google.errorprone/error_prone_annotations/jars/error_prone_annotations-2.0.19.jar:/home/taka/.ivy2/cache/com.google.code.gson/gson/jars/gson-2.7.jar:/home/taka/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-3.0.0.jar:/home/taka/.ivy2/cache/com.google.api.grpc/proto-google-common-protos/jars/proto-google-common-protos-0.1.9.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-scala_2.12/bundles/jackson-module-scala_2.12-2.9.0.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.module/jackson-module-paranamer/bundles/jackson-module-paranamer-2.9.0.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.9.0.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.9.0.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.9.0.jar:/home/taka/.ivy2/cache/asm/asm/jars/asm-3.1.jar:/home/taka/.ivy2/cache/io.jvm.uuid/scala-uuid_2.12/jars/scala-uuid_2.12-0.2.3.jar:/home/taka/.ivy2/cache/com.amazonaws/aws-java-sdk-core/jars/aws-java-sdk-core-1.11.232.jar:/home/taka/.ivy2/cache/com.amazonaws/aws-java-sdk-kms/jars/aws-java-sdk-kms-1.11.232.jar:/home/taka/.ivy2/cache/com.amazonaws/aws-java-sdk-s3/jars/aws-java-sdk-s3-1.11.232.jar:/home/taka/.ivy2/cache/com.amazonaws/jmespath-java/jars/jmespath-java-1.11.232.jar:/home/taka/.ivy2/cache/com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/bundles/jackson-dataformat-cbor-2.6.7.jar:/home/taka/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.9.jar:/home/taka/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.8.1.jar:/home/taka/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.5.2.jar:/home/taka/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.4.4.jar:/home/taka/.ivy2/cache/software.amazon.ion/ion-java/bundles/ion-java-1.0.2.jar:/home/taka/.ivy2/cache/commons-beanutils/commons-beanutils/jars/commons-beanutils-1.9.2.jar:/home/taka/.ivy2/cache/commons-digester/commons-digester/jars/commons-digester-1.8.1.jar:/home/taka/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.2.jar:/home/taka/.ivy2/cache/commons-validator/commons-validator/jars/commons-validator-1.5.1.jar:/home/taka/.ivy2/cache/org.everit.json/org.everit.json.schema/bundles/org.everit.json.schema-1.5.1.jar:/home/taka/.ivy2/cache/org.json/json/bundles/json-20160810.jar org.marvin.executor.api.GenericHttpAPI
[INFO] [12/05/2017 19:50:50.165] [MarvinExecutorSystem-akka.actor.default-dispatcher-2] [akka://MarvinExecutorSystem/user/acquisitorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized...
[INFO] [12/05/2017 19:50:50.165] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/acquisitorActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.171] [MarvinExecutorSystem-akka.actor.default-dispatcher-5] [akka://MarvinExecutorSystem/user/tpreparatorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized...
[INFO] [12/05/2017 19:50:50.174] [MarvinExecutorSystem-akka.actor.default-dispatcher-8] [akka://MarvinExecutorSystem/user/trainerActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized...
[INFO] [12/05/2017 19:50:50.176] [MarvinExecutorSystem-akka.actor.default-dispatcher-6] [akka://MarvinExecutorSystem/user/tpreparatorActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.176] [MarvinExecutorSystem-akka.actor.default-dispatcher-6] [akka://MarvinExecutorSystem/user/trainerActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.177] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/pipelineActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.184] [MarvinExecutorSystem-akka.actor.default-dispatcher-9] [akka://MarvinExecutorSystem/user/evaluatorActor/batchActionProxy] org.marvin.executor.proxies.BatchActionProxy actor initialized...
[INFO] [12/05/2017 19:50:50.184] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/evaluatorActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.201] [MarvinExecutorSystem-akka.actor.default-dispatcher-11] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] org.marvin.manager.ArtifactFSSaver actor initialized...
[INFO] [12/05/2017 19:50:50.202] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] org.marvin.executor.proxies.OnlineActionProxy actor initialized...
[INFO] [12/05/2017 19:50:50.208] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor] Starting to process reload [no save] to predictor. Protocol: [].
[INFO] [12/05/2017 19:50:50.477] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Start the reload remote procedure to predictor. Protocol []
[INFO] [12/05/2017 19:50:50.884] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Reload remote procedure to predictor Done with [Reloaded]. Protocol []
[INFO] [12/05/2017 19:50:50.886] [MarvinExecutorSystem-akka.actor.default-dispatcher-13] [akka://MarvinExecutorSystem/user/predictorFSM] Reloaded the model with success.
[INFO] [12/05/2017 19:50:51.302] [MarvinExecutorSystem-akka.actor.default-dispatcher-5] [akka.actor.ActorSystemImpl(MarvinExecutorSystem)] Server online at http://localhost:8000/
[INFO] [12/05/2017 19:51:36.277] [MarvinExecutorSystem-akka.actor.default-dispatcher-4] [akka://MarvinExecutorSystem/user/predictorFSM] Received a message to reload the model.
[INFO] [12/05/2017 19:51:36.277] [MarvinExecutorSystem-akka.actor.default-dispatcher-4] [akka://MarvinExecutorSystem/user/predictorActor] Starting to process reload to predictor. Protocol: [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b].
[INFO] [12/05/2017 19:51:36.282] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Receive message and starting to working...
[INFO] [12/05/2017 19:51:36.283] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Copying files from /tmp/marvin/iris_species/v0.0.1/model/pipeline_235af8ce-429a-46af-952e-3229da1fcc1b to /home/taka/marvin/data/.artifacts/iris_species/model
[INFO] [12/05/2017 19:51:36.284] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] File /home/taka/marvin/data/.artifacts/iris_species/model saved!
[INFO] [12/05/2017 19:51:36.287] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Receive message and starting to working...
[INFO] [12/05/2017 19:51:36.287] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Copying files from /tmp/marvin/iris_species/v0.0.1/metrics/pipeline_235af8ce-429a-46af-952e-3229da1fcc1b to /home/taka/marvin/data/.artifacts/iris_species/metrics
[INFO] [12/05/2017 19:51:36.288] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] File /home/taka/marvin/data/.artifacts/iris_species/metrics saved!
[INFO] [12/05/2017 19:51:36.292] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor] Reload to predictor completed [ListBuffer(Done, Done)] ! Protocol: [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:51:36.292] [MarvinExecutorSystem-akka.actor.default-dispatcher-11] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Start the reload remote procedure to predictor. Protocol [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:51:36.296] [MarvinExecutorSystem-akka.actor.default-dispatcher-11] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Reload remote procedure to predictor Done with [Reloaded]. Protocol [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:51:36.296] [MarvinExecutorSystem-akka.actor.default-dispatcher-11] [akka://MarvinExecutorSystem/user/predictorFSM] Reloaded the model with success.
[INFO] [12/05/2017 19:52:18.422] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor] Starting to process reload to predictor. Protocol: [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b].
[INFO] [12/05/2017 19:52:18.422] [MarvinExecutorSystem-akka.actor.default-dispatcher-10] [akka://MarvinExecutorSystem/user/predictorFSM] Received a message to reload the model.
[INFO] [12/05/2017 19:52:18.424] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Receive message and starting to working...
[INFO] [12/05/2017 19:52:18.424] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Copying files from /tmp/marvin/iris_species/v0.0.1/model/pipeline_235af8ce-429a-46af-952e-3229da1fcc1b to /home/taka/marvin/data/.artifacts/iris_species/model
[INFO] [12/05/2017 19:52:18.424] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] File /home/taka/marvin/data/.artifacts/iris_species/model saved!
[INFO] [12/05/2017 19:52:18.425] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Receive message and starting to working...
[INFO] [12/05/2017 19:52:18.425] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] Copying files from /tmp/marvin/iris_species/v0.0.1/metrics/pipeline_235af8ce-429a-46af-952e-3229da1fcc1b to /home/taka/marvin/data/.artifacts/iris_species/metrics
[INFO] [12/05/2017 19:52:18.426] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/artifactSaver] File /home/taka/marvin/data/.artifacts/iris_species/metrics saved!
[INFO] [12/05/2017 19:52:18.426] [MarvinExecutorSystem-akka.actor.default-dispatcher-20] [akka://MarvinExecutorSystem/user/predictorActor] Reload to predictor completed [ListBuffer(Done, Done)] ! Protocol: [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:52:18.426] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Start the reload remote procedure to predictor. Protocol [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:52:18.435] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy] Reload remote procedure to predictor Done with [Reloaded]. Protocol [pipeline_235af8ce-429a-46af-952e-3229da1fcc1b]
[INFO] [12/05/2017 19:52:18.435] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/deadLetters] Message [org.marvin.executor.statemachine.Reloaded] from Actor[akka://MarvinExecutorSystem/user/predictorActor/onlineActionProxy#1243896337] to Actor[akka://MarvinExecutorSystem/deadLetters] was not delivered. [1] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
[WARN] [12/05/2017 19:52:32.482] [MarvinExecutorSystem-akka.actor.default-dispatcher-3] [akka://MarvinExecutorSystem/user/predictorFSM] Engine is reloading, not possible to perform event Reload(pipeline_235af8ce-429a-46af-952e-3229da1fcc1b) in state Reloading/ToReload(pipeline_235af8ce-429a-46af-952e-3229da1fcc1b)
[INFO] [12/05/2017 19:52:32.483] [MarvinExecutorSystem-akka.actor.default-dispatcher-16] [akka://MarvinExecutorSystem/deadLetters] Message [akka.actor.Status$Failure] from Actor[akka://MarvinExecutorSystem/user/predictorFSM#397137975] to Actor[akka://MarvinExecutorSystem/deadLetters] was not delivered. [2] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.

Upload executor to maven central repository

Publishing project in the Maven Central Repository (for those who work with sbt)

Step 1:
Go to https://issues.sonatype.org/secure/Signup!default.jspa
To register the Jira user of the Sonatype team.

Step 2:
Go to https://issues.sonatype.org/secure/CreateIssue.jspa?issuetype=21&pid=10134
To open a new issue with the Sonatype team.

Step 3:
Contents for new Issue.

Summary => Open Source Project

Description => Name of the projects to include in this Group-Id

Group Id => org.marvin-ai (This is the home page of your project in inverted order, in which case ours is marvin-ai.org
If you do not have a home page and use github, the group-id would be com.github.marvin-ai)

Project Url => https://github.com/marvin-ai/marvin-engine-executor

SCM Url => https://github.com/marvin-ai/marvin-engine-executor.git

Username (s) => Your team members

Already Synced to Central => No

Step 4:
Create POM.xml file containing metadatas of your project.

Example - https://github.com/simpligility/ossrh-demo/blob/master/pom.xml

For those who use SBT, the Pom file is generated automatically, but it is necessary to create a sonatype.sbt file in your project root, containing information such as:

import xerial.sbt.Sonatype._

publishMavenStyle: = true

sonatypeProfileName: = "com.github.marvin-ai"

sonatypeProjectHosting: = Some (GitHubHosting ("marvin-ai", "[email protected]", "marvin-engine-executor"))

licenses: = Seq ("APL2" -> url ("http://www.apache.org/licenses/LICENSE-2.0.txt"))

Step 5:
Signing GPG, file submitted for sonatype is obligatory to have gpg sign.

Installing GPG: $ sudo apt-get install gnupg2

Generate the key: $ gpg2 --gen-key

View cahves: $ gpg2 --list-keys

Distribute your public key: $ gpg2 --keyserver hkp: //pool.sks-keyservers.net --send-keys "your key"

Sign the file: $ gpg2 -ab file.jar

SBT user does not need to manually sign the file, the procedure is automated as POM file generation.

Reference - http://central.sonatype.org/pages/working-with-pgp-signatures.html

Step 6:
Add at the end of your build.sbt:

publishTo: = {
  val nexus = "https://oss.sonatype.org/"
  if (isSnapshot.value)
    Some ("snapshots" at nexus + "content / repositories / snapshots")
  else
    Some ("releases" at nexus + "service / local / staging / deploy / maven2")
}

publishArtifact in Test: = false

useGpg: = true

Step 7:
Plugin for sbt.

Add at the end of your file project/plugins.sbt:

addSbtPlugin ("org.xerial.sbt"% "sbt-sonatype"% "2.3)
addSbtPlugin ("com.jsuereth"% "sbt-pgp"% "1.1.0")

Step 8:
Sonatype Credentials.

Add your sonatype account information to the file (create if you do not have it) $ HOME / .sbt / (sbt-version 0.13 or 1.0) /sonatype.sbt:

credentials + = Credentials ("Sonatype Nexus Repository Manager",
        "oss.sonatype.org",
        "(Sonatype user name)",
        "(Sonatype password)")

Step 9:
Publish your artifacts.

Use the command $ sbt publishSigned

It is possible that it requires the gpg password in the middle of the procedure (if you created it in gpg key creation).

It is recommended to add "-SNAPSHOT" at the end of the version in your build.sbt, so that the artifacts goes first to https://oss.sonatype.org/content/repositories/snapshots

If there is no error at the time of publishing the SNAPSHOT version, delete "-SNAPSHOT" from your version and publish it again, and this time your artifacts goes to sonatype staging server.

Step 10:
Synchronization with the central repository.

Access https://oss.sonatype.org using your sonatype account, locate your publication in the Staging Repositories list (probably the last one on the list)

Select your repository and click the "Close" button and then the "Refresh" button, in the "Activity" tab of your repository will show the validation information of your artifacts.

Correct your errors according to the validation information, use the "Drop" button to erase your repository with error and republish the corrected version again.

When you receive the "Repository Closed" message, press the "Release" button to synchronize with the central maven repository.

Reference: https://www.youtube.com/watch?v=dXR4pJ_zS-0&feature=youtu.be

Tutorial reference, containing step-by-step videos (For those who work with java and maven): http://central.sonatype.org/pages/producers.html

Error warning or treatment when grpcserver is down

In our current system, when grpc server crashes, the engine-executor does not notice this automatically.
This behavior confuses our users sometimes in the execution of some task.
We need some kind of warning or treatment for this.

ASCII error from accented words

Toolbox is treating correctly accented words as input message for prediction, but engine executor cant handle this situation.
So, engine-dryrun works with accented words, and input message by API isnt working.

Online actions are sequential

After some stress tests it looks like the online actions are being executed sequentially. Paralellism is a requirement.

Engine-executor is not working from python-toolbox

The most recent engine-executor snapshot is not able to run from the toolbox.

The following error is being shown:

Exception in thread "main" java.io.UncheckedIOException: java.io.FileNotFoundException: src/main/resources/EngineActionSchema.json (No such file or directory)

Predictor FSM error when user insert invalid protocol

When an invalid protocol is passed to onlineAction(Predict), it triggers artifact file copy error and ArtifactSaver actor just restart himself without notify PredictorFSM.
The PredictorFSM will refuse to process anothers requests untill timeout defined in engine metadata.

There is room for improvement on readability and decoupling of Actors

Currently there is no rule on how to define messages and the contract when exchanging these messages between actors. For example, the PredictorFSM send message to OnlineAction which pipes to OnlineProxy and this one returns a response to PredictorFSM, the response message is defined in PredictorFSM, making the OnlineProxy dependent of PredictorFSM.

It may be not wrong, but after discussing with @takabayashi we concluded that it's not clear what is the rule for exchanging messages between actors in marvin-engine-executor.

Predictor Reload is not working

When some reload message is sent to predictor nothing is done and the log shows the follow:

[akka://MarvinExecutorSystem/user/predictorFSM] Received an unknown event OnlineReload(pipeline_5db906cb-4817-4ab0-bc58-f9c7785da7ac). The current state/data is Ready/Model()

I think the message type sent by GenericAPI is not alright....

Control the status "reloading"

When the engine is in the middle of the "long-running" process of reloading an artifact, all the requests to the associated resource should reply with an intermediate status "reloading".

Docker image to execute engines

In order to integrate with most cloud computing platforms it is necessary to have the ability to run engines as docker containers. We may have different versions of docker and marvin stacks. For example, we may have the raw image with only marvin and it's dependencies, we also may have an image with marvin + spark.

Engine Metadata validation schema improvement

The metadataSchema.json file used to validate our engine metadata in /src/main/resources/metadataSchema.json has Array of Objects within Object, and this possibly will grow bigger.
Split this file in multiples files using $ref syntax in json file and change the schema validator if necessary.

Initial Impl of ExecutorManager Actor to receive remote connection from Cluster Admin module

Use this VM options to enable and disable admin connections:

-DmarvinConfig.enableAdmin=true
-DmarvinConfig.adminPort=50100
-DmarvinConfig.adminHost=127.0.0.1
  • This manager actor must have access to all GenericHttpAPI actors to be possible to change it...
  • GetMetadata will be created as first remote message implementation
  • StopActor(actionName) will be created to show how to manipulate actors (stop and create etc..)

Performance test - predictor deploy

We must run performance tests to generate the first deploy time benchmark for the predictor endpoint.
Ideally we should have scripts to automate performance tests, so that the benchmark can be repeated in the future.

Persisting model error with checksum

In the log file:

[INFO] [03/06/2018 16:23:45.049] [af_scoring_model-akka.actor.default-dispatcher-15] [akka://af_scoring_model/user/pipelineActor/artifactSaver] Copying files from /marv
in-data/.artifacts/af_scoring_model/model to /tmp/marvin/af_scoring_model/v0.0.1/model/pipeline_c0c356ca-2252-49c2-8683-17f132eac6c0
392704 [af_scoring_model-akka.actor.default-dispatcher-15] INFO org.apache.hadoop.fs.FSInputChecker - Found checksum error: b[0, 4096]=785eecbd8757145db7ee8b39a1a8982
3e69cb3d2d0dd556d78cd01b302022a8a20c19c3020411014101505143180080650498e31e73f769fb5aa57552155ecf73be78c7bcf3ee7b247edf773758595abd66f3d73ceecbeb7d243e6c70
...
org.apache.hadoop.fs.ChecksumException: Checksum error: file:/marvin-data/.artifacts/af_scoring_model/model at 0 exp: 504017920 got: -1631345060
at org.apache.hadoop.fs.FSInputChecker.verifySums(FSInputChecker.java:323)
at org.apache.hadoop.fs.FSInputChecker.readChecksumChunk(FSInputChecker.java:279)
at org.apache.hadoop.fs.FSInputChecker.read1(FSInputChecker.java:228)
at org.apache.hadoop.fs.FSInputChecker.read(FSInputChecker.java:196)
at java.io.DataInputStream.read(DataInputStream.java:100)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:86)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:60)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:120)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:366)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1969)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1937)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1902)
at org.marvin.artifact.manager.ArtifactHdfsSaver$$anonfun$receive$1.applyOrElse(ArtifactHdfsSaver.scala:84)
at akka.actor.Actor.aroundReceive(Actor.scala:517)
at akka.actor.Actor.aroundReceive$(Actor.scala:515)
at org.marvin.artifact.manager.ArtifactHdfsSaver.aroundReceive(ArtifactHdfsSaver.scala:28)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:527)
at akka.actor.ActorCell.invoke(ActorCell.scala:496)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
at akka.dispatch.Mailbox.run(Mailbox.scala:224)
at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
[INFO] [03/06/2018 16:23:47.542] [af_scoring_model-akka.actor.default-dispatcher-13] [akka://af_scoring_model/user/pipelineActor/evaluatorActor] Reload remote procedure to evaluator Done with [Reloaded]. Protocol [pipeline_c0c356ca
-2252-49c2-8683-17f132eac6c0].
[INFO] [03/06/2018 16:23:47.543] [af_scoring_model-akka.actor.default-dispatcher-13] [akka://af_scoring_model/user/pipelineActor/evaluatorActor] Start the execute remote procedure to evaluator. Protocol [pipeline_c0c356ca-2252-49c2
-8683-17f132eac6c0]
[INFO] [03/06/2018 16:23:47.766] [af_scoring_model-akka.actor.default-dispatcher-13] [akka://af_scoring_model/user/pipelineActor/evaluatorActor] Execute remote procedure to evaluator Done with [Done]. Protocol [pipeline_c0c356ca-22
52-49c2-8683-17f132eac6c0]
[ERROR] [03/06/2018 16:23:47.773] [af_scoring_model-akka.actor.default-dispatcher-11] [akka://af_scoring_model/user/pipelineActor/artifactSaver] Checksum error: file:/marvin-data/.artifacts/af_scoring_model/model at 0 exp: 50401792
0 got: -1631345060
org.apache.hadoop.fs.ChecksumException: Checksum error: file:/marvin-data/.artifacts/af_scoring_model/model at 0 exp: 504017920 got: -1631345060
at org.apache.hadoop.fs.FSInputChecker.verifySums(FSInputChecker.java:323)
at org.apache.hadoop.fs.FSInputChecker.readChecksumChunk(FSInputChecker.java:279)
at org.apache.hadoop.fs.FSInputChecker.read1(FSInputChecker.java:228)
at org.apache.hadoop.fs.FSInputChecker.read(FSInputChecker.java:196)
at java.io.DataInputStream.read(DataInputStream.java:100)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:86)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:60)
at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:120)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:366)
at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1969)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1937)
at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1902)
at org.marvin.artifact.manager.ArtifactHdfsSaver$$anonfun$receive$1.applyOrElse(ArtifactHdfsSaver.scala:84)

Request pipeline status: returned finished.
"{"actionName":"pipeline","protocol":"pipeline_c0c356ca-2252-49c2-8683-17f132eac6c0","datetime":{"year":2018,"monthValue":3,"hour":16,"minute":23,"second":47,"nano":767000000,"dayOfYear":65,"dayOfWeek":"TUESDAY","month":"MARCH","dayOfMonth":6,"chronology":{"calendarType":"iso8601","id":"ISO"}},"status":{"name":"finished","code":1},"formattedDatetime":"03/06/2018 16:23:47"}"

Log Level correction

When starting httpserver, an error message is shown about artefact load fail if the command engine-dryrun is not executed before. This behavior does not affect normal functionality, but the error message is confused.

Change Error to Warn or Info for this case.

Predictor input message must be string

Currently the predictor input message field is required to be a string.

Use this field as a JSON object would allow more flexibility on how clients can interact with the server when they need to send complex input messages.

Everit lib isn't reading files from classpath

To reference inner schema files is necessary to use the #ref attribute. But default URL Handler can not be used without a valid protocol (Eg. http or file) and an absolute path.

this commit is disabling this validation...just a temporary way to skip the problem once the bug is breaking our build...

for a #ref like "/EngineActionSchema.json" the exception launched is:

Exception in thread "main" java.io.UncheckedIOException: java.net.MalformedURLException: no protocol: /EngineActionSchema.json
at org.everit.json.schema.loader.internal.DefaultSchemaClient.get(DefaultSchemaClient.java:35)
at org.everit.json.schema.loader.internal.JSONPointer.executeWith(JSONPointer.java:81)
at org.everit.json.schema.loader.internal.JSONPointer.lambda$forURL$1(JSONPointer.java:133)
at org.everit.json.schema.loader.internal.JSONPointer.query(JSONPointer.java:152)
at org.everit.json.schema.loader.ReferenceLookup.lookup(ReferenceLookup.java:99)
at org.everit.json.schema.loader.SchemaLoader.buildSchemaWithoutExplicitType(SchemaLoader.java:253)
at org.everit.json.schema.loader.SchemaLoader.lambda$load$0(SchemaLoader.java:290)
at java.util.Optional.orElseGet(Optional.java:267)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:288)
at org.everit.json.schema.loader.SchemaLoader.loadChild(SchemaLoader.java:346)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$addPropertySchemaDefinition$4(ObjectSchemaLoader.java:79)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer$IdModifyingTypeConsumerImpl.lambda$then$0(TypeBasedMultiplexer.java:78)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.orElse(TypeBasedMultiplexer.java:233)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.requireAny(TypeBasedMultiplexer.java:243)
at org.everit.json.schema.loader.ObjectSchemaLoader.addPropertySchemaDefinition(ObjectSchemaLoader.java:81)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$populatePropertySchemas$3(ObjectSchemaLoader.java:70)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.everit.json.schema.loader.ObjectSchemaLoader.populatePropertySchemas(ObjectSchemaLoader.java:69)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$load$0(ObjectSchemaLoader.java:34)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer$IdModifyingTypeConsumerImpl.lambda$then$0(TypeBasedMultiplexer.java:78)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.orElse(TypeBasedMultiplexer.java:233)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.requireAny(TypeBasedMultiplexer.java:243)
at org.everit.json.schema.loader.ObjectSchemaLoader.load(ObjectSchemaLoader.java:35)
at org.everit.json.schema.loader.SchemaLoader.buildObjectSchema(SchemaLoader.java:324)
at org.everit.json.schema.loader.SchemaLoader.loadForExplicitType(SchemaLoader.java:317)
at org.everit.json.schema.loader.SchemaLoader.loadForType(SchemaLoader.java:335)
at org.everit.json.schema.loader.SchemaLoader.lambda$load$0(SchemaLoader.java:292)
at java.util.Optional.orElseGet(Optional.java:267)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:288)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:178)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:163)
at org.marvin.util.JsonUtil$.validateJson(JsonUtil.scala:67)
at org.marvin.util.JsonUtil$.fromJson(JsonUtil.scala:48)
at org.marvin.executor.api.GenericHttpAPI.$anonfun$readJsonIfFileExists$1(GenericHttpAPI.scala:276)
at scala.util.Try$.apply(Try.scala:209)
at org.marvin.executor.api.GenericHttpAPI.readJsonIfFileExists(GenericHttpAPI.scala:276)
at org.marvin.executor.api.GenericHttpAPI.setupSystem(GenericHttpAPI.scala:234)
at org.marvin.executor.api.GenericHttpAPI.setupSystem$(GenericHttpAPI.scala:233)
at org.marvin.executor.api.GenericHttpAPIImpl.setupSystem(GenericHttpAPI.scala:53)
at org.marvin.executor.api.GenericHttpAPI$.main(GenericHttpAPI.scala:224)
at org.marvin.executor.api.GenericHttpAPI.main(GenericHttpAPI.scala)
Caused by: java.net.MalformedURLException: no protocol: /EngineActionSchema.json
at java.net.URL.(URL.java:593)
at java.net.URL.(URL.java:490)
at java.net.URL.(URL.java:439)
at org.everit.json.schema.loader.internal.DefaultSchemaClient.get(DefaultSchemaClient.java:33)
... 41 more

for a #ref with a valid protocol like "file:///EngineActionSchema.json" the exception launched is:

Exception in thread "main" java.io.UncheckedIOException: java.io.FileNotFoundException: /EngineActionSchema.json (No such file or directory)
at org.everit.json.schema.loader.internal.DefaultSchemaClient.get(DefaultSchemaClient.java:35)
at org.everit.json.schema.loader.internal.JSONPointer.executeWith(JSONPointer.java:81)
at org.everit.json.schema.loader.internal.JSONPointer.lambda$forURL$1(JSONPointer.java:133)
at org.everit.json.schema.loader.internal.JSONPointer.query(JSONPointer.java:152)
at org.everit.json.schema.loader.ReferenceLookup.lookup(ReferenceLookup.java:99)
at org.everit.json.schema.loader.SchemaLoader.buildSchemaWithoutExplicitType(SchemaLoader.java:253)
at org.everit.json.schema.loader.SchemaLoader.lambda$load$0(SchemaLoader.java:290)
at java.util.Optional.orElseGet(Optional.java:267)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:288)
at org.everit.json.schema.loader.SchemaLoader.loadChild(SchemaLoader.java:346)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$addPropertySchemaDefinition$4(ObjectSchemaLoader.java:79)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer$IdModifyingTypeConsumerImpl.lambda$then$0(TypeBasedMultiplexer.java:78)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.orElse(TypeBasedMultiplexer.java:233)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.requireAny(TypeBasedMultiplexer.java:243)
at org.everit.json.schema.loader.ObjectSchemaLoader.addPropertySchemaDefinition(ObjectSchemaLoader.java:81)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$populatePropertySchemas$3(ObjectSchemaLoader.java:70)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.everit.json.schema.loader.ObjectSchemaLoader.populatePropertySchemas(ObjectSchemaLoader.java:69)
at org.everit.json.schema.loader.ObjectSchemaLoader.lambda$load$0(ObjectSchemaLoader.java:34)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer$IdModifyingTypeConsumerImpl.lambda$then$0(TypeBasedMultiplexer.java:78)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.orElse(TypeBasedMultiplexer.java:233)
at org.everit.json.schema.loader.internal.TypeBasedMultiplexer.requireAny(TypeBasedMultiplexer.java:243)
at org.everit.json.schema.loader.ObjectSchemaLoader.load(ObjectSchemaLoader.java:35)
at org.everit.json.schema.loader.SchemaLoader.buildObjectSchema(SchemaLoader.java:324)
at org.everit.json.schema.loader.SchemaLoader.loadForExplicitType(SchemaLoader.java:317)
at org.everit.json.schema.loader.SchemaLoader.loadForType(SchemaLoader.java:335)
at org.everit.json.schema.loader.SchemaLoader.lambda$load$0(SchemaLoader.java:292)
at java.util.Optional.orElseGet(Optional.java:267)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:288)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:178)
at org.everit.json.schema.loader.SchemaLoader.load(SchemaLoader.java:163)
at org.marvin.util.JsonUtil$.validateJson(JsonUtil.scala:67)
at org.marvin.util.JsonUtil$.fromJson(JsonUtil.scala:48)
at org.marvin.executor.api.GenericHttpAPI.$anonfun$readJsonIfFileExists$1(GenericHttpAPI.scala:276)
at scala.util.Try$.apply(Try.scala:209)
at org.marvin.executor.api.GenericHttpAPI.readJsonIfFileExists(GenericHttpAPI.scala:276)
at org.marvin.executor.api.GenericHttpAPI.setupSystem(GenericHttpAPI.scala:234)
at org.marvin.executor.api.GenericHttpAPI.setupSystem$(GenericHttpAPI.scala:233)
at org.marvin.executor.api.GenericHttpAPIImpl.setupSystem(GenericHttpAPI.scala:53)
at org.marvin.executor.api.GenericHttpAPI$.main(GenericHttpAPI.scala:224)
at org.marvin.executor.api.GenericHttpAPI.main(GenericHttpAPI.scala)
Caused by: java.io.FileNotFoundException: /EngineActionSchema.json (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at java.net.URLConnection.getContent(URLConnection.java:739)
at java.net.URL.getContent(URL.java:1059)
at org.everit.json.schema.loader.internal.DefaultSchemaClient.get(DefaultSchemaClient.java:33)
... 41 more

Performance tests - predictor throughput

We must run performance tests to generate the first throughput benchmark for the predictor endpoint.
Ideally we should have scripts to automate the performance tests, so that the benchmark can be repeated in the future.

Everit doesn't throw informative errors if the violation located Within a deeper hierarchy level

Describe the bug
Everit doesn't throw informative errors if the violation located Within a deeper hierarchy level

I have a json that I wan't to validate against a given schema.

This is the only error I get:
org.everit.json.schema.ValidationException: #/payload: #: only 1 subschema matches out of 2

With this error I cannot verify in which place under "payload" field, the error exists.

If the problem exists in the first level of the json, the error I get is much more clear and informative.

Error - Request is missing required `Host` header

Starting the engine-executor and receiving a health check request the akka http raise the follow error:

[WARN] [03/05/2018 16:46:03.532] [af_scoring_model-akka.actor.default-dispatcher-18] [akka.actor.ActorSystemImpl(af_scoring_model)] Illegal request, responding with status '400 Bad Request': Request is missing required Hostheader: Cannot establish effective URI of request to/acquisitor/health, request has a relative URI and is missing a Hostheader; consider settingakka.http.server.default-host-header``

I did a fast research on the internet and I found this:

akka/akka-http#596

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.