onyx

FYI: alternative Onyx :onyx: chat is at <https://gitter.im/onyx-platform/onyx> ; log can be found at <https://clojurians-log.clojureverse.org/onyx/index.html>
kenny 2017-12-04T20:33:07.000359Z

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.

stephenmhopper 2017-12-04T20:52:15.000489Z

How close are we to a full 0.12.0 release?

lucasbradstreet 2017-12-04T21:09:03.000490Z

Today.

lucasbradstreet 2017-12-04T21:10:07.000287Z

@kenny that one is odd

michaeldrogalis 2017-12-04T21:19:57.000306Z

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

michaeldrogalis 2017-12-04T21:20:13.000081Z

Are you by some chance bringing in Agrona separately?

kenny 2017-12-04T21:21:33.000132Z

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.

kenny 2017-12-04T21:22:13.000512Z

Strangely, Agrona is not on the classpath at all.

kenny 2017-12-04T21:22:29.000561Z

Is that a dep Onyx should be bringing in?

lucasbradstreet 2017-12-04T21:23:39.000361Z

Both should be being brought in by aeron-all

lucasbradstreet 2017-12-04T21:26:33.000610Z

A worst case estimate is (number of peers in a job / 2) ^ 2 3 http://www.onyxplatform.org/docs/cheat-sheet/latest/#peer-config/:onyx.messaging/term-buffer-size.segment

lucasbradstreet 2017-12-04T21:27:32.000037Z

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

1
lucasbradstreet 2017-12-04T21:28:18.000437Z

No aeron either?

lucasbradstreet 2017-12-04T21:28:27.000540Z

oh wait, I’m looking at lib-onyx

lucasbradstreet 2017-12-04T21:28:49.000202Z

agrona is brought in by aeron-all

kenny 2017-12-04T21:28:51.000421Z

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

lucasbradstreet 2017-12-04T21:29:04.000221Z

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

lucasbradstreet 2017-12-04T21:31:55.000166Z

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

kenny 2017-12-04T21:34:26.000380Z

I don't think we are doing anything abnormally.

kenny 2017-12-04T21:37:07.000025Z

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?

kenny 2017-12-04T21:37:41.000363Z

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

lucasbradstreet 2017-12-04T21:37:42.000267Z

Ahh, it’s because you’re using 0.11

lucasbradstreet 2017-12-04T21:37:50.000001Z

We really reduced the default storage sizes for the buffers.

lucasbradstreet 2017-12-04T21:37:59.000391Z

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

kenny 2017-12-04T21:38:18.000620Z

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

lucasbradstreet 2017-12-04T21:38:57.000066Z

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

lucasbradstreet 2017-12-04T21:39:09.000027Z

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

kenny 2017-12-04T21:39:26.000093Z

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

lucasbradstreet 2017-12-04T21:39:35.000592Z

Yeah.

kenny 2017-12-04T21:52:42.000213Z

Yeah that fixed the shm exception.