cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-5716) Remark on cassandra-5273 : Hanging system after OutOfMemory. Server cannot die due to uncaughtException handling
Date Mon, 01 Jul 2013 14:36:21 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-5716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jonathan Ellis updated CASSANDRA-5716:
--------------------------------------

    Affects Version/s:     (was: 1.2.6)
                       2.0 beta 1
        Fix Version/s:     (was: 1.2.6)
                       2.0
           Issue Type: Bug  (was: Improvement)
    
> Remark on cassandra-5273 : Hanging system after OutOfMemory. Server cannot die due to
uncaughtException handling
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5716
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5716
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0 beta 1
>         Environment: linux
>            Reporter: Ignace Desimpel
>            Priority: Minor
>             Fix For: 2.0
>
>
> Possible incorrect handling of an OOM as a result of modifications made for issue cassandra-5273.
> I could reproduce the OOM, with the patch of Cassandra-5273 applied.
> The good news is that, at least in my case, it works fine : the system did die !
>  
> However, due to multiple uncaughtException handling, multiple threads are calling the
exitThread.start() routine, causing an IllegalStateException. There are some other exceptions
also, but that seems logical. Also, after calling the start() function, the thread(s) will
continue to run, and that could not be wanted.
>  
> Below I pasted the stack trace.
> Just for your information, after all this works, and I could restart the Cassandra server
and redo the OOM
>  
> 2013-06-27 16:28:15.384 Unable to reduce heap usage since there are no dirty column families
> java.lang.OutOfMemoryError: Java heap space
> Dumping heap to java_pid4808.hprof ...
> Heap dump file created [278960302 bytes in 2.659 secs]
> 2013-06-27 16:28:42.655 Exception in thread Thread[qtp1564441079-31,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[qtp1564441079-36,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[qtp1564441079-30,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[GossipTasks:1,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[OptionalTasks:1,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[PERIODIC-COMMIT-LOG-SYNCER,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655 Exception in thread Thread[metrics-meter-tick-thread-2,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.656 Exception in thread Thread[EXPIRING-MAP-REAPER:1,5,main]
> java.lang.OutOfMemoryError: Java heap space
>        at java.util.concurrent.ConcurrentHashMap$EntrySet.iterator(ConcurrentHashMap.java:1202)
~[na:1.6.0_29]
>        at org.apache.cassandra.utils.ExpiringMap$1.run(ExpiringMap.java:88) ~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:75)
~[thrift/:na]
>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_29]
>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
[na:1.6.0_29]
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29]
> 2013-06-27 16:28:42.656 Exception in thread Thread[ScheduledTasks:1,5,main]
> java.lang.OutOfMemoryError: Java heap space
>        at com.yammer.metrics.stats.Snapshot.<init>(Snapshot.java:30) ~[metrics-core-2.0.3.jar:na]
>        at com.yammer.metrics.stats.ExponentiallyDecayingSample.getSnapshot(ExponentiallyDecayingSample.java:107)
~[metrics-core-2.0.3.jar:na]
>        at org.apache.cassandra.locator.DynamicEndpointSnitch.updateScores(DynamicEndpointSnitch.java:237)
~[thrift/:na]
>        at org.apache.cassandra.locator.DynamicEndpointSnitch.access$0(DynamicEndpointSnitch.java:217)
~[thrift/:na]
>        at org.apache.cassandra.locator.DynamicEndpointSnitch$1.run(DynamicEndpointSnitch.java:71)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:75)
~[thrift/:na]
>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [na:1.6.0_29]
>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
[na:1.6.0_29]
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29]
> 2013-06-27 16:28:42.656 Exception in thread Thread[Thrift:3,5,main]
> java.lang.OutOfMemoryError: Java heap space
>        at java.util.BitSet.initWords(BitSet.java:144) ~[na:1.6.0_29]
>        at java.util.BitSet.<init>(BitSet.java:139) ~[na:1.6.0_29]
>        at org.apache.cassandra.thrift.Column.<init>(Column.java:135) ~[thrift/:na]
>        at org.apache.cassandra.thrift.Column.<init>(Column.java:158) ~[thrift/:na]
>        at org.apache.cassandra.thrift.CassandraServer.thriftifyColumns(CassandraServer.java:184)
~[thrift/:na]
>        at org.apache.cassandra.thrift.CassandraServer.thriftifyColumnFamily(CassandraServer.java:285)
~[thrift/:na]
>        at org.apache.cassandra.thrift.CassandraServer.thriftifyKeySlices(CassandraServer.java:1071)
~[thrift/:na]
>        at org.apache.cassandra.thrift.CassandraServer.get_range_slices(CassandraServer.java:960)
~[thrift/:na]
>        at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:3454)
~[thrift/:na]
>        at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:1)
~[thrift/:na]
>        at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) ~[libthrift-0.7.0.jar:0.7.0]
>        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) ~[libthrift-0.7.0.jar:0.7.0]
>        at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199)
~[thrift/:na]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
~[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
~[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_29]
> 2013-06-27 16:28:42.655 Exception in thread Thread[COMMIT-LOG-ALLOCATOR,5,main]
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.655
> java.lang.OutOfMemoryError: Java heap space
> 2013-06-27 16:28:42.656 Failed deleting temp components for ..\cassandra\dbdatafile\system\schema_keyspaces\system-schema_keyspaces-tmp-ic-16
> org.apache.cassandra.io.FSWriteError: java.io.IOException: Failed to delete C:\develop\configs\AnnotationServer7\bin\..\cassandra\dbdatafile\system\schema_keyspaces\system-schema_keyspaces-tmp-ic-16-Statistics.db
>        at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:112)
~[thrift/:na]
>        at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:103)
~[thrift/:na]
>        at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:146) ~[thrift/:na]
>        at org.apache.cassandra.io.sstable.SSTableWriter.abort(SSTableWriter.java:309)
~[thrift/:na]
>        at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:509)
[thrift/:na]
>        at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:448) [thrift/:na]
>        at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
[thrift/:na]
>        at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) [thrift/:na]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29]
> Caused by: java.io.IOException: Failed to delete C:\develop\configs\AnnotationServer7\bin\..\cassandra\dbdatafile\system\schema_keyspaces\system-schema_keyspaces-tmp-ic-16-Statistics.db
>        ... 11 common frames omitted
> 2013-06-27 16:28:42.656 Exception in thread Thread[FlushWriter:2,5,main]
> org.apache.cassandra.io.FSWriteError: java.io.IOException: Failed to delete C:\develop\configs\AnnotationServer7\bin\..\cassandra\dbdatafile\system\schema_keyspaces\system-schema_keyspaces-tmp-ic-16-Statistics.db
>        at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:112)
~[thrift/:na]
>        at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:103)
~[thrift/:na]
>        at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:146) ~[thrift/:na]
>        at org.apache.cassandra.io.sstable.SSTableWriter.abort(SSTableWriter.java:309)
~[thrift/:na]
>        at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:509)
~[thrift/:na]
>        at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:448) ~[thrift/:na]
>        at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
~[thrift/:na]
>        at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[thrift/:na]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
~[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
~[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_29]
> Caused by: java.io.IOException: Failed to delete C:\develop\configs\AnnotationServer7\bin\..\cassandra\dbdatafile\system\schema_keyspaces\system-schema_keyspaces-tmp-ic-16-Statistics.db
>        ... 11 common frames omitted
> 2013-06-27 16:28:42.656 Stopping gossiper
> 2013-06-27 16:28:42.656 Stopping gossip by operator request
> 2013-06-27 16:28:42.656 Announcing shutdown
> 2013-06-27 16:28:44.684 Stopping RPC server
> 2013-06-27 16:28:44.684 Stop listening to thrift clients
> 2013-06-27 16:29:06.743 Exception in thread Thread[OptionalTasks:1,5,main]
> java.lang.IllegalThreadStateException: null
>        at java.lang.Thread.start(Thread.java:638) ~[na:1.6.0_29]
>        at org.apache.cassandra.service.CassandraDaemon$2.uncaughtException(CassandraDaemon.java:189)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.handleOrLog(DebuggableThreadPoolExecutor.java:213)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.logExceptionsAfterExecute(DebuggableThreadPoolExecutor.java:196)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.afterExecute(DebuggableScheduledThreadPoolExecutor.java:46)
~[thrift/:na]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888)
~[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
~[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) ~[na:1.6.0_29]
> 2013-06-27 16:29:06.743 Exception in thread Thread[ScheduledTasks:1,5,main]
> java.lang.IllegalThreadStateException: null
>        at java.lang.Thread.start(Thread.java:638) [na:1.6.0_29]
>        at org.apache.cassandra.service.CassandraDaemon$2.uncaughtException(CassandraDaemon.java:189)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.handleOrLog(DebuggableThreadPoolExecutor.java:213)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:79)
~[thrift/:na]
>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) ~[na:1.6.0_29]
>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
~[na:1.6.0_29]
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) ~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
~[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29]
> 2013-06-27 16:29:06.743 Exception in thread Thread[EXPIRING-MAP-REAPER:1,5,main]
> java.lang.IllegalThreadStateException: null
>        at java.lang.Thread.start(Thread.java:638) [na:1.6.0_29]
>        at org.apache.cassandra.service.CassandraDaemon$2.uncaughtException(CassandraDaemon.java:189)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.handleOrLog(DebuggableThreadPoolExecutor.java:213)
~[thrift/:na]
>        at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:79)
~[thrift/:na]
>        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) ~[na:1.6.0_29]
>        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
~[na:1.6.0_29]
>        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) ~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
~[na:1.6.0_29]
>        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
~[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_29]
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_29]
>        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29]

--
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

Mime
View raw message