ninjudd/drip

Drip doesn't work with Drake

aboytsov opened this issue · 9 comments

artem:~/drake$ drip version
drip version "0.1.8" package 
artem:~/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real    0m2.062s
user    0m2.462s
sys 0m0.177s
artem:~/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real    0m0.189s
user    0m0.064s
sys 0m0.067s
artem:~/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real    0m6.542s
user    0m10.698s
sys 0m0.473s
artem:~/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real    0m7.216s
user    0m10.790s
sys 0m0.446s
artem:~/drake$

In case you, like me, were wondering what drake is: https://github.com/Factual/drake

Drake is a simple-to-use, extensible, text-based data workflow tool that organizes command execution around data and its dependencies.

I'm not a drip expert, but I suspect @ninjudd will want to see the output of drip ps. That should output some stuff, including a directory; a sibling of that directory should be an opts file, whose contents will probably also be useful.

As you might have guessed, no background JVMs are started:

artem:~/drake$ drip kill
artem:~/drake$ drip ps
artem:~/drake$ drip kill
No idle Drip JVM running
artem:~/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real    0m7.335s
user    0m10.738s
sys 0m0.491s
artem:~/drake$ drip ps
artem:~/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real    0m6.243s
user    0m9.110s
sys 0m0.365s
artem:~/drake$ drip ps
artem:~/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real    0m1.917s
user    0m2.371s
sys 0m0.155s
artem:~/drake$ drip ps
10361 org.flatland.drip.Main clojure.main /Users/artem/.drip/0.1.8/6b5594c8f45a5563c1ff9b5cab6551e3a04401cb/10336-1 -Djava.awt.headless=true
artem:~/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real    0m0.245s
user    0m0.067s
sys 0m0.073s
artem:~/drake$ drip ps
10407 org.flatland.drip.Main clojure.main /Users/artem/.drip/0.1.8/6b5594c8f45a5563c1ff9b5cab6551e3a04401cb/10380-1 -Djava.awt.headless=true

So it looks like drake is looking for a workflow file, not finding it, and
then bailing. The background jvm does the same thing as soon as it starts
up, and thus also exits before you have a chance to use it for anything.
On Jan 25, 2013 3:28 PM, "Artem Boytsov" notifications@github.com wrote:

As you might have guessed, no background JVMs are started:

artem:/drake$ drip kill
artem:
/drake$ drip ps
artem:/drake$ drip kill
No idle Drip JVM running
artem:
/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real 0m7.335s
user 0m10.738s
sys 0m0.491s
artem:/drake$ drip ps
artem:
/drake$ time drip -cp drake.jar drake.core
Cannot find file or directory: ./workflow.d (use --help for documentation)

real 0m6.243s
user 0m9.110s
sys 0m0.365s
artem:/drake$ drip ps
artem:
/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real 0m1.917s
user 0m2.371s
sys 0m0.155s
artem:/drake$ drip ps
10361 org.flatland.drip.Main clojure.main /Users/artem/.drip/0.1.8/6b5594c8f45a5563c1ff9b5cab6551e3a04401cb/10336-1 -Djava.awt.headless=true
artem:
/drake$ time drip -cp drake.jar clojure.main -e '(println "Hai!")'
Hai!

real 0m0.245s
user 0m0.067s
sys 0m0.073s
artem:~/drake$ drip ps
10407 org.flatland.drip.Main clojure.main /Users/artem/.drip/0.1.8/6b5594c8f45a5563c1ff9b5cab6551e3a04401cb/10380-1 -Djava.awt.headless=true


Reply to this email directly or view it on GitHubhttps://github.com/flatland/drip/issues/52#issuecomment-12725953.

I don't understand.
How is that different from my Clojure example which starts up, prints "Hai", and then bails?

You're right, it's not. We've figured out the problem and are working on a fix.

The problem was that drip was assuming that DRIP_INIT_CLASS should be the same as your main class if you didn't set DRIP_INIT_CLASS. This meant that drip was trying to call your main function at startup before anyone connected to the spare jvm, which in this case was causing it to exit immediately.

I have released 0.2.0 with a fix.

Thank you!

Is it possible to release a new brew version? So far I get:

artem:~$ brew upgrade drip
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
Error: drip-0.1.8 already installed

Don't want to spoil the party, but I am getting what looks to be the same problem, using the same commands to test, with the latest versions of both Drip and Drake:

[alex@spica drip-test]$ drip version
drip version "0.2.5" checkout 917e189
[alex@spica drip-test]$ drake --version
Drake Version 0.1.6

I built both from git source, Drip git #917e189, Drake git #2f44a8b.

Any ideas?

Thanks :)