cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-12381) Verify use of ByteBuffer.hasArray() in whole code base
Date Thu, 04 Aug 2016 15:31:20 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-12381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15407944#comment-15407944
] 

Robert Stupp commented on CASSANDRA-12381:
------------------------------------------

[link to the netty issue|https://github.com/netty/netty/issues/5629]

A direct buffer with an array feels very weird. At least with the current state of OpenJDK/Oracle
Java. I don't get how a direct buffer (off-heap) with an array (on-heap) would be consistent
- that's why I mentioned it is not safe. On-heap objects can move (copied) - direct buffers
must not move as these can be used by the OS for example for I/O. Maybe that is not true for
the Dalvik VM / Android.
However, adding a {{!isDirect()}} feels more safe - maybe just in trunk since if cannot be
an issue now.

> Verify use of ByteBuffer.hasArray() in whole code base
> ------------------------------------------------------
>
>                 Key: CASSANDRA-12381
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12381
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Robert Stupp
>            Assignee: Robert Stupp
>            Priority: Minor
>             Fix For: 3.0.x
>
>
> As [noted here|https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#allocateDirect-int-],
a direct {{ByteBuffer}} can have a backing array.
> If a direct {{ByteBuffer}} has a backing array, we should not make any assumption on
how it is actually used.
> This ticket is about to check whether uses of {{ByteBuffer.hasArray()}} need to be replaced
with {{ByteBuffer.isDirect()}}.
> (With CASSANDRA-11870 however, there is no way that such a direct {{ByteBuffer}} has
a backing array.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message