[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17687494#comment-17687494 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - Jamm is currently under maintenance and that will solve also the current issue. More to follow, just adding for heads up, consideration and completeness. > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Task > Components: Jamm >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17613815#comment-17613815 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - Just for the record - the latest branch where those can be tested with jdk17 is - [https://github.com/ekaterinadimitrova2/cassandra/tree/16895-trunk-sept] It is posted on the main ticket but to make things easier to find adding it also here. It was rebased on trunk recently. (it is a rough WIP for testing branch, it will get cleared in time) > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17609610#comment-17609610 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - For the record, these were some tests identified to hit the issue when running with jdk 17 as part of POC in CASSANDRA-16895: _testPreparedBatch, testReprepareNewBehaviour, testUseWithMultipleKeyspaces, testReprepareTwoKeyspacesNewBehaviour, fuzzTest, startupNewIP, sameIPFailWithoutReplace, sameIPFailWithoutReplace, mixedModeFuzzTest_ > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17600779#comment-17600779 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - JOL is not an option as it is [GPL v2|https://www.apache.org/licenses/GPL-compatibility.html] > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17585634#comment-17585634 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - So seems to me the issue here is when we do not use Instrumentation but fall back to unsafe and use objectFieldOffset method which was changed in the unsupported package version of Unsafe to not support hidden classes and records. Why I mention "in the unsupported package", because it calls the internal old version after that. I do not advocate to switch to that one and open internals... One idea was to explore JOL. (thanks [~dcapwell] for bringing it up) Otherwise, I guess for jamm we can explore the Variable Handles which are supposed to substitute Unsafe as per [JEP193|https://openjdk.org/jeps/193] In theory their goal is to provide same or similar performance, but definitely we would need to do some testing. Also, I noticed the [latest jamm work|https://github.com/jbellis/jamm/pull/41] from [~snazy] was actually supposed to deprecate the *Unsafe* version (unreleased) It seems he was planning to leave two *GUESS* options in the future - *BEST* (I{_}nstrumentation --> Unsafe -> Specification,{_} depending on what Is available) and *ALWAYS_INSTRUMENTATION* and deprecate the old ones. Around jamm we actually also hit this on startup which we can workaround with opening internals but I guess we need to look for solution to that too: {code:java} ERROR [ScheduledTasks:1] 2022-08-23 12:33:23,630 JVMStabilityInspector.java:68 - Exception in thread Thread[ScheduledTasks:1,5,ScheduledTasks] java.lang.ExceptionInInitializerError: null at org.apache.cassandra.streaming.StreamManager.(StreamManager.java:257) at org.apache.cassandra.streaming.StreamManager.(StreamManager.java:58) at org.apache.cassandra.service.StorageService.(StorageService.java:376) at org.apache.cassandra.service.StorageService.(StorageService.java:226) at org.apache.cassandra.locator.DynamicEndpointSnitch.updateScores(DynamicEndpointSnitch.java:274) at org.apache.cassandra.locator.DynamicEndpointSnitch$1.run(DynamicEndpointSnitch.java:91) at org.apache.cassandra.concurrent.ExecutionFailure$1.run(ExecutionFailure.java:133) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field transient volatile java.util.concurrent.ConcurrentHashMap$Node[] java.util.concurrent.ConcurrentHashMap.table accessible: module java.base does not "opens java.util.concurrent" to unnamed module @4c012563 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) at java.base/java.lang.reflect.Field.setAccessible(Field.java:172) at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:330) at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:269) at org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:215) at org.apache.cassandra.streaming.StreamingState.(StreamingState.java:50) ... 14 common frames omitted ERROR [ScheduledTasks:1] 2022-08-23 12:35:20,677 JVMStabilityInspector.java:68 - Exception in thread Thread[ScheduledTasks:1,5,ScheduledTasks] java.lang.ExceptionInInitializerError: null at org.apache.cassandra.streaming.StreamManager.(StreamManager.java:257) at org.apache.cassandra.streaming.StreamManager.(StreamManager.java:58) at org.apache.cassandra.service.StorageService.(StorageService.java:376) at org.apache.cassandra.service.StorageService.(StorageService.java:226) at org.apache.cassandra.locator.DynamicEndpointSnitch.updateScores(DynamicEndpointSnitch.java:274) at org.apache.cassandra.locator.DynamicEndpointSnitch$1.run(DynamicEndpointSnitch.java:91) at org.apache.cassandra.concurrent.ExecutionFailure$1.run(ExecutionFailure.java:133) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17510940#comment-17510940 ] Brandon Williams commented on CASSANDRA-16304: -- It's not abandoned, just inactive due to no need for modification... until now, potentially. > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17510931#comment-17510931 ] Sylwester Lachiewicz commented on CASSANDRA-16304: -- JAMM looks like an abandoned project [https://github.com/jbellis/jamm] - any potential alternatives? > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17508539#comment-17508539 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - [~barnie] , [~blerer] - this is something that I will probably have to consult you before taking one or another approach. Just a heads up > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17508306#comment-17508306 ] Ekaterina Dimitrova commented on CASSANDRA-16304: - This is an issue we now hit with Java 17, It's sad it was left in triage. > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement > Components: Build >Reporter: Adrian Cole >Priority: Normal > Fix For: 4.x > > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda
[ https://issues.apache.org/jira/browse/CASSANDRA-16304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17239605#comment-17239605 ] Benedict Elliott Smith commented on CASSANDRA-16304: I think we need to find a work around in JAMM, or our use of it, as this is only going to become more and more common (though perhaps in this instance it might anyway be better not to use a lambda; not sure) > Consider implementing ClusteringComparator without a lambda > --- > > Key: CASSANDRA-16304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-16304 > Project: Cassandra > Issue Type: Improvement >Reporter: Adrian Cole >Priority: Normal > > Using lambdas forces jamm to do things that can easily break. It might be > safer to implement things like ClusteringComparator directly as classes or as > an enum > {noformat} > Unexpected exception during request > (org.apache.cassandra.transport.messages.ErrorMessage) > java.lang.UnsupportedOperationException: can't get field offset on a hidden > class: private final org.apache.cassandra.db.ClusteringComparator > org.apache.cassandra.db.ClusteringComparator$$Lambda$165/0x00010028ab60.arg$1 > at jdk.unsupported/sun.misc.Unsafe.objectFieldOffset(Unknown Source) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfInstanceWithUnsafe(MemoryLayoutSpecification.java:108) > at > org.github.jamm.MemoryLayoutSpecification.sizeOfWithUnsafe(MemoryLayoutSpecification.java:89) > at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:217) > at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:259) > at > org.apache.cassandra.utils.ObjectSizes.measureDeep(ObjectSizes.java:155) > at > org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:454) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:424) > at > org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:408) > at > org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:114) > at > org.apache.cassandra.transport.Message$Request.execute(Message.java:253) > at > org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:725) > at > org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:630) > at > java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:119) > at > io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org