ninjudd / drip

Fast JVM launching without the hassle of persistent JVMs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

drip doesn't work with lein 2.0.0

metajack opened this issue · comments

I followed the instructions in the wiki to set up drip with newly released lein 2.0.0. Unfortunately it seems to spawn a new vm for every request and drip ps doesn't show any of them. drip kill doesn't kill any of them either.

This happens both in projects and outside projects.

@Raynes, can you look into this when you get some time and provide steps to reproduce? Once it is verified, I can spend some time figuring out what the problem is.

On Jan 21, 2013, at 2:05 PM, Jack Moffitt notifications@github.com wrote:

I followed the instructions in the wiki to set up drip with newly released lein 2.0.0. Unfortunately it seems to spawn a new vm for every request and drip ps doesn't show any of them. drip kill doesn't kill any of them either.

This happens both in projects and outside projects.


Reply to this email directly or view it on GitHub.

@ninjudd

I've been using drip with lein master that I pulled right after 2.0.0 was released. I'll see if I can reproduce it with a non-checkout lein 2 installation and stuff tomorrow. Sick as hell today.

drip ps doesn't work because jps doesn't see any of the processes. Regular ps shows many drip processes. I'm not sure why that is yet.

It's not related to Leiningen. I can reproduce with just drip itself.

Here's a quick shell session to demonstrate:

$ drip version
drip version "0.1.8" standalone 
ixia:~  
$ ps ax | grep drip | grep -v grep
ixia:~  
$ drip ps
ixia:~  
$ drip -cp ~/.m2/repository/org/clojure/clojure/1.5.0-RC2/clojure-1.5.0-RC2.jar clojure.main
Clojure 1.5.0-RC2
user=> ^D
ixia:~  
$ drip ps
ixia:~  
$ ps ax | grep drip | grep -v grep
73551 s012  S      0:00.00 /Users/jack/.drip/0.1.8/drip_daemon /usr/bin/java -Djava.awt.headless=true -classpath /Users/jack/.m2/repository/org/flatland/drip/0.1.8/drip-0.1.8.jar:/Users/jack/.m2/repository/org/clojure/clojure/1.5.0-RC2/clojure-1.5.0-RC2.jar org.flatland.drip.Main clojure.main /Users/jack/.drip/0.1.8/b618d74e6e5fc56cb3e802a119b9ca482475e821/73528-1
ixia:~  
$ drip -cp ~/.m2/repository/org/clojure/clojure/1.5.0-RC2/clojure-1.5.0-RC2.jar clojure.main
Clojure 1.5.0-RC2
user=> ^D
ixia:~  
$ ps ax | grep drip | grep -v grep
73551 s012  S      0:00.00 /Users/jack/.drip/0.1.8/drip_daemon /usr/bin/java -Djava.awt.headless=true -classpath /Users/jack/.m2/repository/org/flatland/drip/0.1.8/drip-0.1.8.jar:/Users/jack/.m2/repository/org/clojure/clojure/1.5.0-RC2/clojure-1.5.0-RC2.jar org.flatland.drip.Main clojure.main /Users/jack/.drip/0.1.8/b618d74e6e5fc56cb3e802a119b9ca482475e821/73528-1
73602 s012  S      0:00.00 /Users/jack/.drip/0.1.8/drip_daemon /usr/bin/java -Djava.awt.headless=true -classpath /Users/jack/.m2/repository/org/flatland/drip/0.1.8/drip-0.1.8.jar:/Users/jack/.m2/repository/org/clojure/clojure/1.5.0-RC2/clojure-1.5.0-RC2.jar org.flatland.drip.Main clojure.main /Users/jack/.drip/0.1.8/b618d74e6e5fc56cb3e802a119b9ca482475e821/73579-1
ixia:~  
$ drip ps
ixia:~  

Also, in case Java version matters:
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

This is on an up to date OS X 10.8.2.

Looks like it's downloading a Java 7 compiled JAR and failing on my Java 6. From ~/.drip/0.1.8/error.log:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/flatland/drip/Main : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

I built drip from a checkout and it works fine.

I suppose the real bug is that either 1) drip should be compiled with Java 6 or something or 2) it should fail much more obviously or both.

@metajack thanks for figuring this out. I released drip 0.1.9 which is compiled for java 5 compatibility. Please let me know if this fixes your issue.

Still doesn't work for me with latest release (stable I believe) of leiningen. I get the same UnsupportedClassVersionError error.

drip version is 0.1.9 installed via curl.

@ninjudd Looking at your Makefile you're using -source 1.5, which only enables Java 5 source-level features. What you want is -target 1.5 which makes the compiled class files compatible with at least Java 1.5.

Released 0.1.10. Let me know if this fixes it for you, @jmibanez and @ulises.

Holy zomg batman! This fixes it for me! :)

👍