clj-commons / manifold

A compatibility layer for event-driven abstractions
1.01k stars 106 forks source link

Resolve boxed math warnings #234

Closed valerauko closed 1 year ago

valerauko commented 1 year ago
valerauko commented 1 year ago

There are some weird errors while running lein test :all but I can't tell if it's something I broke or if I'm running the tests wrong because it fails on master too...

KingMob commented 1 year ago

Looks good. I don't see any errors on the CircleCI job at the moment. Were they timing-related errors? We have some old timing-based tests that just don't behave properly. Been meaning to fix them.

valerauko commented 1 year ago

I tried running lein test :all locally and it showed really weird failures (then proceeded to hang). I figured it must be something in the environment (java version?)... The :default test suite passed no problem.

KingMob commented 1 year ago

Can you paste them here?

valerauko commented 1 year ago

java-20.txt java-19.txt java-17.txt java-11.txt

These are all from running lein test :all on master

KingMob commented 1 year ago

OK, those are NOT the timing errors I'm thinking of.

Stack overflows are a capital-P Problem.

Did these errors happen in Java 8?

valerauko commented 1 year ago

Yes the same error on Java 8 too java-8.txt

KingMob commented 1 year ago

OK, I'll take a closer look. We need to bisect. I don't know why I haven't seen these errors yet.

valerauko commented 1 year ago

Note that I just happened to run into these while trying to run tests :all for this PR, but all the logs above are from test runs on the master branch

KingMob commented 1 year ago

So, I'm testing it now. I can definitely replicate it, but I'm not sure what, if anything, it means. lein test :all includes the stress and benchmark tests, which aren't actually designed as tests that verify assertions. I'm not sure how Zach used them.

If I run them individually, I don't get the SEVERE SO error, but manifold.deferred-test/test-deferred-chain appears to hang if the iterate chain is >= 2000.

But...it deliberately creates a chain of 10000 connected deferreds, 10000 times. If your hardware or JVM config can't handle that, does it mean there's a bug in Manifold?

I started going back to older versions, and even going back years, the test has the same behavior. I suspect it was used in conjunction with profiling.

Anyway, I don't think it's worth concerning ourselves with.