Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude commons-lang3 lib from Cassandra dependency in ScalarDB and ScalarDL tests #134

Merged
merged 3 commits into from
Jan 14, 2025

Conversation

brfrn169
Copy link
Contributor

@brfrn169 brfrn169 commented Jan 7, 2025

Description

We are encountering the following errors while running the ScalarDB and ScalarDL tests:

ScalarDB:

ERROR [2024-12-18 10:13:47,560] main - jepsen.cli Oh jeez, I'm sorry, Jepsen broke. Here's why:
java.lang.NoClassDefFoundError: org/apache/commons/lang3/function/FailableSupplier
        at org.apache.commons.text.lookup.InetAddressStringLookup.<clinit>(InetAddressStringLookup.java:46)
        at org.apache.commons.text.lookup.StringLookupFactory.localHostStringLookup(StringLookupFactory.java:1130)
        at org.apache.commons.text.lookup.DefaultStringLookup.<clinit>(DefaultStringLookup.java:107)
        at org.apache.commons.text.lookup.StringLookupFactory$DefaultStringLookupsHolder.createDefaultStringLookups(StringLookupFactory.java:291)
        at org.apache.commons.text.lookup.StringLookupFactory$DefaultStringLookupsHolder.<init>(StringLookupFactory.java:344)
        at org.apache.commons.text.lookup.StringLookupFactory$DefaultStringLookupsHolder.<clinit>(StringLookupFactory.java:266)
        at org.apache.commons.text.lookup.StringLookupFactory.addDefaultStringLookups(StringLookupFactory.java:660)
        at org.apache.commons.text.lookup.InterpolatorStringLookup.<init>(InterpolatorStringLookup.java:70)
        at org.apache.commons.text.lookup.InterpolatorStringLookup.<init>(InterpolatorStringLookup.java:93)
        at org.apache.commons.text.lookup.InterpolatorStringLookup.<init>(InterpolatorStringLookup.java:84)
        at org.apache.commons.text.lookup.InterpolatorStringLookup.<init>(InterpolatorStringLookup.java:55)
        at org.apache.commons.text.lookup.InterpolatorStringLookup.<clinit>(InterpolatorStringLookup.java:37)
        at org.apache.commons.text.lookup.StringLookupFactory.interpolatorStringLookup(StringLookupFactory.java:1037)
        at com.scalar.db.config.ConfigUtils.<clinit>(ConfigUtils.java:33)
        at com.scalar.db.config.DatabaseConfig.load(DatabaseConfig.java:98)
        at com.scalar.db.config.DatabaseConfig.<init>(DatabaseConfig.java:80)
        at com.scalar.db.service.TransactionFactory.create(TransactionFactory.java:69)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:167)
        at clojure.lang.Reflector.invokeStaticMethod(Reflector.java:332)
        at scalardb.core$create_service_instance.invokeStatic(core.clj:153)
        at scalardb.core$create_service_instance.invoke(core.clj:145)
        at scalardb.core$prepare_service_BANG_.invokeStatic(core.clj:168)
        at scalardb.core$prepare_service_BANG_.invoke(core.clj:160)
        at scalardb.core$prepare_2pc_service_BANG_.invokeStatic(core.clj:189)
        at scalardb.core$prepare_2pc_service_BANG_.invoke(core.clj:187)
        at scalardb.transfer_2pc.TransferClient.setup_BANG_(transfer_2pc.clj:53)
        at jepsen.core$run_case_BANG_$fn__13416.invoke(core.clj:212)
        at dom_top.core$real_pmap_helper$build_thread__537$fn__538.invoke(core.clj:163)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
        at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at clojure.core$apply.invokeStatic(core.clj:671)
        at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.function.FailableSupplier
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
        ... 45 common frames omitted

ScalarDL:

ERROR [2024-12-17 10:51:05,747] main - jepsen.cli Oh jeez, I'm sorry, Jepsen broke. Here's why:
java.lang.NoClassDefFoundError: Could not initialize class com.scalar.dl.ledger.config.ConfigUtils
        at com.scalar.dl.client.config.ClientConfig.load(ClientConfig.java:381)
        at com.scalar.dl.client.config.ClientConfig.<init>(ClientConfig.java:330)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at clojure.lang.Reflector.invokeConstructor(Reflector.java:305)
        at scalardl.core$prepare_client_service$fn__236.invoke(core.clj:64)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$apply.invoke(core.clj:662)
        at scalardl.core$retry_when_exception_STAR_$fn__228.invoke(core.clj:34)
        at scalardl.core$retry_when_exception_STAR_.invokeStatic(core.clj:34)
        at scalardl.core$retry_when_exception_STAR_.invoke(core.clj:31)
        at scalardl.core$retry_when_exception.invokeStatic(core.clj:51)
        at scalardl.core$retry_when_exception.invoke(core.clj:47)
        at scalardl.core$retry_when_exception.invokeStatic(core.clj:49)
        at scalardl.core$retry_when_exception.invoke(core.clj:47)
        at scalardl.core$prepare_client_service.invokeStatic(core.clj:63)
        at scalardl.core$prepare_client_service.invoke(core.clj:61)
        at scalardl.cas.CasRegisterClient.open_BANG_(cas.clj:59)
        at jepsen.core$run_case_BANG_$fn__13416.invoke(core.clj:212)
        at dom_top.core$real_pmap_helper$build_thread__537$fn__538.invoke(core.clj:163)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:667)
        at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
        at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
        at clojure.lang.RestFn.invoke(RestFn.java:425)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at clojure.core$apply.invokeStatic(core.clj:671)
        at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Thread.java:829)

The root cause of both errors is a dependency conflict with the commons-lang3 library. To address this issue, this PR excludes the library.

Related issues and/or PRs

N/A

Changes made

  • Excluded the commons-lang3 library from the Cassandra dependency in ScalarDB and ScalarDL tests.

Checklist

  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation to reflect the changes.
  • Any remaining open issues linked to this PR are documented and up-to-date (Jira, GitHub, etc.).
  • Tests (unit, integration, etc.) have been added for the changes.
  • My changes generate no new warnings.
  • Any dependent changes in other PRs have been merged and published.

Additional notes (optional)

N/A

@brfrn169 brfrn169 added the bugfix label Jan 7, 2025
@brfrn169 brfrn169 self-assigned this Jan 7, 2025
@brfrn169 brfrn169 force-pushed the exclude-commons-lang3-from-cassandra branch from c3a255a to b645916 Compare January 7, 2025 07:13
Comment on lines +23 to +26
- name: Install leiningen
uses: DeLaGuardo/setup-clojure@13.0
with:
lein: latest
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I needed to add this to install the leiningen tool.

@brfrn169 brfrn169 requested a review from yito88 January 7, 2025 07:15
Copy link
Member

@yito88 yito88 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Contributor

@inv-jishnu inv-jishnu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
Thank you.

Copy link
Contributor

@feeblefakie feeblefakie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you!

@feeblefakie feeblefakie merged commit 95feb42 into master Jan 14, 2025
3 checks passed
@feeblefakie feeblefakie deleted the exclude-commons-lang3-from-cassandra branch January 14, 2025 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants