【问题标题】:Cassandra shutdown caused by: java.io.SyncFailedException: sync failedCassandra 关闭导致:java.io.SyncFailedException:同步失败
【发布时间】:2019-04-02 07:16:50
【问题描述】:

我正在使用 Cassnadra 2.1.13 单节点集群,数据库运行良好,没有任何问题。

然后有以下异常,因为 Cassandra 服务被关闭。

在单节点集群中,这些异常的原因可能是什么,特别是同步失败,有什么提示或指针可以找到这个问题的根本原因吗?

INFO [MemtableFlushWriter:22] Memtable.java:347 - 写作 Memtable-compaction_history@1884003282(0.521KiB序列化字节,19 ops, 0%/0% of on/off-heap limit) INFO [MemtableFlushWriter:22] Memtable.java:382 - 完成刷新 /myspace/db/data/system/compaction_history-b4dbb7b4dc493fb5b3bfce6e434832ca/system-compaction_history-tmp-ka-8-Data.db (0.000KiB) 用于提交日志位置 ReplayPosition(segmentId=1540762960100, position=2642365) 错误 [MemtableFlushWriter:21] CassandraDaemon.java:229 - 异常 线程 Thread[MemtableFlushWriter:21,5,main] org.apache.cassandra.io.FSWriteError:java.io.SyncFailedException: 同步失败 在 org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal(SequentialWriter.java:254) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.util.SequentialWriter.syncInternal(SequentialWriter.java:263) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.util.SequentialWriter.close(SequentialWriter.java:451) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.compress.CompressedSequentialWriter.close(CompressedSequentialWriter.java:264) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:503) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:455) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:447) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:442) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:389) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:335) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) ~[guava-16.0.jar:na] 在 org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1120) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_192] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_192] 在 java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_192] 引起:java.io.SyncFailedException:同步失败 在 java.io.FileDescriptor.sync(本机方法)~[na:1.8.0_192] 在 org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal(SequentialWriter.java:250) ~[apache-cassandra-2.1.13.jar:2.1.13] ...省略了15个常用框架

错误 [MemtableFlushWriter:21] StorageService.java:453 - 正在停止 八卦警告 [MemtableFlushWriter:21] StorageService.java:359 - 通过操作员请求 INFO [MemtableFlushWriter:21] 停止八卦 Gossiper.java:1455 - 宣布关闭

重新启动 Cassandra 服务后,没有问题并按预期工作。

【问题讨论】:

  • 通常这可能是提交日志所在的磁盘存在问题。 commitlog_sync 参数的值是多少?
  • 默认的:commitlog_sync: 周期性的 commitlog_sync_period_in_ms: 10000

标签: java cassandra


【解决方案1】:

我怀疑这是:

  • 磁盘问题 - 检查磁盘的/var/log/messages 和 SMART 状态
  • 磁盘已满
  • 文件已被删除(虽然这不太可能,但如果您的系统上有防病毒软件,则可能会发生)

【讨论】:

  • 在数据库崩溃的大约同一时间可以在 /var/log/messages 中看到此错误“localhost logrotate: ALERT exited exceptionly with [1]”,然后进一步查看 logrotate.conf 和“var_log_t”上下文. access.redhat.com/solutions/39006 磁盘已满并非如此,关于防病毒软件,它也没有运行。这也是纯粹的时间问题吗?
  • 是的,这可能是某种时间问题,但我认为监控磁盘是否有错误是有意义的......
  • 也可以查看dmesg
  • 无法通过dmesg 获得任何信息。以后没遇到问题,这里的结论应该是什么?
  • 感谢 Alex 的所有指点。还有什么需要检查的吗 1) commitlog_sync,这是我系统的默认设置。 2)/var/log/messages 错误。如果没有,那么接下来将继续监控任何此类问题。
猜你喜欢
  • 1970-01-01
  • 2013-05-22
  • 2015-08-08
  • 2019-04-07
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
相关资源
最近更新 更多