[
https://issues.apache.org/jira/browse/CASSANDRA-4596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13445868#comment-13445868
]
Jonathan Ellis commented on CASSANDRA-4596:
-------------------------------------------
Not sure how you've managed to do this. Thrift is hanging trying to read the
end_key, which should just be a ByteBuffer like any other. Unclear without
knowing how you've formed end_key.
> thrift call to get_paged_slice() hangs if end token is "0"
> ----------------------------------------------------------
>
> Key: CASSANDRA-4596
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4596
> Project: Cassandra
> Issue Type: Bug
> Components: API, Core, Hadoop
> Affects Versions: 1.1.3
> Environment: linux
> Reporter: Normen Seemann
>
> I am using get_paged_slice() for range scans driven from within hadoop
> mappers. The mapper that scans the "last segment" with get_paged_slice()
> where start key is set *and* end_token is set to "0" token hangs within the
> thirft call. Client shows following jstack:
> - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[],
> int, int, int) @bci=0 (Interpreted frame)
> - java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129
> (Interpreted frame)
> - org.apache.thrift.transport.TIOStreamTransport.read(byte[], int, int)
> @bci=25, line=127 (Interpreted frame)
> - org.apache.thrift.transport.TTransport.readAll(byte[], int, int) @bci=22,
> line=84 (Interpreted frame)
> - org.apache.thrift.transport.TFramedTransport.readFrame() @bci=10, line=129
> (Interpreted frame)
> - org.apache.thrift.transport.TFramedTransport.read(byte[], int, int)
> @bci=28, line=101 (Interpreted frame)
> - org.apache.thrift.transport.TTransport.readAll(byte[], int, int) @bci=22,
> line=84 (Interpreted frame)
> - org.apache.thrift.protocol.TBinaryProtocol.readAll(byte[], int, int)
> @bci=12, line=378 (Interpreted frame)
> - org.apache.thrift.protocol.TBinaryProtocol.readI32() @bci=52, line=297
> (Interpreted frame)
> - org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin() @bci=1,
> line=204 (Interpreted frame)
> - org.apache.thrift.TServiceClient.receiveBase(org.apache.thrift.TBase,
> java.lang.String) @bci=4, line=69 (Interpreted frame)
> - org.apache.cassandra.thrift.Cassandra$Client.recv_get_paged_slice()
> @bci=12, line=727 (Interpreted frame)
> -
> org.apache.cassandra.thrift.Cassandra$Client.get_paged_slice(java.lang.String,
> org.apache.cassandra.thrift.KeyRange, java.nio.ByteBuffer,
> org.apache.cassandra.thrift.ConsistencyLevel) @bci=10, line=711 (Interpreted
> frame)
> Changing the end_token from "0" to "2**127-1" fixes the problem, however, I
> would only consider this a workaround. Now, there are actually two issues:
> 1.) Is the call to get_paged_slice() I described supported at all?
> 2.) if it is not supported please fix with reasonable error instead of just
> hanging
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira