[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-12 Thread Christian Winther (JIRA)

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

Christian Winther commented on CASSANDRA-10478:
---

when will this be released as a binary ? we are hitting the same issue currently

is there any workaround I can apply configuration wise?

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.2.3, 2.1.11
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-12 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-10478:
--

It will be released very soon. Most likely in 2-3 days.

You could switch to standard disk access mode until then. The problems being: 
this may result in lower throughput, and will also result in a rebuild of the 
summary files of all of your data on restart (and again when you flip back), 
which could be costly (i.e. startup will be slow). Strictly this could be 
avoided, with the same approach as CASSANDRA-10357, but this would take longer 
to deliver than just the new release.

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.2.3, 2.1.11
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-12 Thread Christian Winther (JIRA)

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

Christian Winther commented on CASSANDRA-10478:
---

okay, I changed to standard disk mode, my dataset is just a few TB, so went 
pretty fast with rebuilding the summary files

will the next release be 2.2.3 ?

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.2.3, 2.1.11
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-12 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-10478:
--

bq. will the next release be 2.2.3 ?

Yes

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.2.3, 2.1.11
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405) 
> 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-09 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-10478:
--

This bug is ironic, and perhaps urgent. It was introduced by a change not 
intended to be included in the patch for CASSANDRA-10357 (as the approach did 
not require it). Despite adding pretty thorough tests for the intended changes, 
there were unfortunately no tests covering this unintended change. I have 
updated this patch to rectify that by introducing unit tests for this class 
that would catch this bug, and by rolling back the change to this class 
entirely. 

The tests also demonstrated that {{markSupported}} returns false, when in fact 
marks are supported, however I have opted not to fix that in this change, since 
it isn't required.

We should strongly consider re-releasing 2.1 and 2.2, as this _could_ be a very 
prevalent bug, despite being a small and stupid one.


> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Priority: Critical
> Fix For: 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-09 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne commented on CASSANDRA-10478:
--

Assigning [~tjake] as reviewer since he reviewed CASSANDRA-10357 initially. I 
tend to agree that this sound important enough to probably warrant a release 
once it's committed.

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.1.x, 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-09 Thread Omri Iluz (JIRA)

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

Omri Iluz commented on CASSANDRA-10478:
---

I can confirm that the patch solved the issue, thank you.

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Priority: Critical
> Fix For: 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-09 Thread T Jake Luciani (JIRA)

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

T Jake Luciani commented on CASSANDRA-10478:


+1

Thankfully this isn't a bug in the updating of the boundaries themselves.

Once committed I'll cut new 2.1 and 2.2 releases

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Assignee: Benedict
>Priority: Critical
> Fix For: 2.1.x, 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-08 Thread Philip Thompson (JIRA)

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

Philip Thompson commented on CASSANDRA-10478:
-

Could you attach a full system.log from an affected node. [~benedict], you're 
the mmap expert, do you want to look into this?

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Priority: Critical
> Fix For: 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> 

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-08 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-10478:
--

Patch available [here|https://github.com/belliottsmith/cassandra/tree/10478]

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Priority: Critical
> Fix For: 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   

[jira] [Commented] (CASSANDRA-10478) Seek position is not within mmap segment

2015-10-08 Thread Philip Thompson (JIRA)

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

Philip Thompson commented on CASSANDRA-10478:
-

Should I look for a reviewer, or should we wait until [~mroi] has a chance to 
try out the patch?

> Seek position is not within mmap segment
> 
>
> Key: CASSANDRA-10478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10478
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Cassandra 2.2.2 
> Java 1.8.0.60
>Reporter: Omri Iluz
>Priority: Critical
> Fix For: 2.2.x
>
>
> After upgrading to 2.2.2 we started seeing timeouts accompanied by the 
> following error in the log. Disabling mmap (by using "disk_access_mode: 
> standard") completely solves the problem.
> We did not experience this problem in 2.2.1.
> The change to src/java/org/apache/cassandra/io/util/ByteBufferDataInput.java 
> in the following commit seems interesting as it changes the calculation of 
> the mmap boundaries (and moves from <= to <) 
> https://github.com/apache/cassandra/commit/25de92e321604626d6c098233082904832c07814
>  
> {noformat}
> WARN  [SharedPool-Worker-1] 2015-10-07 03:40:39,771 
> AbstractTracingAwareExecutorService.java:169 - Uncaught exception on thread 
> Thread[SharedPool-Worker-1,5,main]: {}
> java.lang.RuntimeException: 
> org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.IOException: 
> Seek position 717680 is not within mmap segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2187)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_60]
>   at 
> org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
> [apache-cassandra-2.2.2.jar:2.2.2]
>   at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
> Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: 
> java.io.IOException: Seek position 717680 is not within mmap segment (seg 
> offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:250)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.SSTableSliceIterator.(SSTableSliceIterator.java:42)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:75)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:246)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:270)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:2004)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1808)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:360) 
> ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:85)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1537)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2183)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   ... 4 common frames omitted
> Caused by: java.io.IOException: Seek position 717680 is not within mmap 
> segment (seg offs: 0, length: 717680)
>   at 
> org.apache.cassandra.io.util.ByteBufferDataInput.seek(ByteBufferDataInput.java:47)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.AbstractDataInput.skipBytes(AbstractDataInput.java:33)
>  ~[apache-cassandra-2.2.2.jar:2.2.2]
>   at 
> org.apache.cassandra.io.util.FileUtils.skipBytesFully(FileUtils.java:405) 
>