Fork me on GitHub
#onyx
<
2017-12-04
>
kenny20:12:07

Has anyone ran into this exception?

Exception in thread "Thread-36" java.lang.NoClassDefFoundError: org/agrona/LangUtil
        at org.agrona.IoUtil.delete(IoUtil.java:141)
        at io.aeron.CommonContext.deleteAeronDirectory(CommonContext.java:354)
        at onyx.messaging.aeron.embedded_media_driver$delete_aeron_directory_safe.invokeStatic(embedded_media_driver.clj:8)
        at onyx.messaging.aeron.embedded_media_driver$delete_aeron_directory_safe.invoke(embedded_media_driver.clj:7)
        at onyx.messaging.aeron.embedded_media_driver.EmbeddedMediaDriver$fn__30987.invoke(embedded_media_driver.clj:35)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.agrona.LangUtil
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 7 more
It occurs after my tests complete successfully.

stephenmhopper20:12:15

How close are we to a full 0.12.0 release?

michaeldrogalis21:12:57

@kenny java.lang.NoClassDefFoundError generally indicates two versions of that lib are on the classpath

michaeldrogalis21:12:13

Are you by some chance bringing in Agrona separately?

kenny21:12:33

No. I'll check the classpath for conflicts though. Aside: http://www.onyxplatform.org/docs/user-guide/0.12.x/#_peer_fails_to_start_and_throws says to increase the shm-size if you run into that exception. How drastically? I believe it defaults to 64M.

kenny21:12:13

Strangely, Agrona is not on the classpath at all.

kenny21:12:29

Is that a dep Onyx should be bringing in?

lucasbradstreet21:12:39

Both should be being brought in by aeron-all

lucasbradstreet21:12:32

Basically each task on a peer needs a connection to each peer on a downstream task, and each of those needs 3 segments * that buffer size

lucasbradstreet21:12:18

No aeron either?

lucasbradstreet21:12:27

oh wait, I’m looking at lib-onyx

lucasbradstreet21:12:49

agrona is brought in by aeron-all

kenny21:12:51

There's this from Onyx [io.aeron/aeron-all "1.5.1"]. Perhaps it's not printing everything?

lucasbradstreet21:12:04

I believe they’ve packaged them both into one library.

lucasbradstreet21:12:55

Is it possible you’re building the media driver with a reduced set of dependencies? I guess not.

kenny21:12:26

I don't think we are doing anything abnormally.

kenny21:12:07

A bit side tracked on that issue because it's not a blocker right now. I set my shm-size to 1g and I am still getting io.aeron.exceptions.RegistrationException: IllegalStateException : Insufficient usable storage for new log of length=50335744 in /dev/shm (shm). Is there something else I am missing?

kenny21:12:41

I can docker inspect the containers and they all have a ShmSize of 1073741824.

lucasbradstreet21:12:42

Ahh, it’s because you’re using 0.11

lucasbradstreet21:12:50

We really reduced the default storage sizes for the buffers.

lucasbradstreet21:12:59

I can give you a java property to reduce it until you upgrade.

kenny21:12:18

Sure. I'll probably upgrade today if it's released today 🙂

lucasbradstreet21:12:57

You can give -Daeron.term.buffer.length=2097152 a go until then

lucasbradstreet21:12:09

I’m releasing rc2 right now. If all looks good I’ll release 0.12 final right after.

kenny21:12:26

That's just set on the Java process you start Onyx from?

kenny21:12:42

Yeah that fixed the shm exception.