[jira] [Commented] (CASSANDRA-16304) Consider implementing ClusteringComparator without a lambda

2023-02-11 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-10-06 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-09-26 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-09-06 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-08-26 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-03-22 Thread Brandon Williams (Jira)


[ 
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

2022-03-22 Thread Sylwester Lachiewicz (Jira)


[ 
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

2022-03-17 Thread Ekaterina Dimitrova (Jira)


[ 
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

2022-03-17 Thread Ekaterina Dimitrova (Jira)


[ 
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

2020-11-27 Thread Benedict Elliott Smith (Jira)


[ 
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