cassandra-4.0-beta4 Исключение во время запуска Запрошенные разрешения (0) должны быть положительными
- ОС :Ubuntu20.04
- JDK:JDK11
- Версия Cassandra: apache-cassandra-4.0-beta4
Сообщение об ошибке:
ERROR [main] 2021-03-25 14:16:15,561 CassandraDaemon.java:822 - Exception encountered during startup
org.apache.cassandra.exceptions.TruncateException: Error during truncate: java.lang.IllegalArgumentException: Requested permits (0) must be positive
at org.apache.cassandra.cql3.statements.TruncateStatement.executeLocally(TruncateStatement.java:96)
at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:323)
at org.apache.cassandra.db.SystemKeyspace.clearAllEstimates(SystemKeyspace.java:1337)
at org.apache.cassandra.service.StorageService.cleanupSizeEstimates(StorageService.java:3908)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:353)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:676)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:800)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Requested permits (0) must be positive
at org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2329)
at org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2276)
at org.apache.cassandra.db.ColumnFamilyStore.truncateBlocking(ColumnFamilyStore.java:2256)
at org.apache.cassandra.cql3.statements.TruncateStatement.executeLocally(TruncateStatement.java:92)
... 6 common frames omitted
Caused by: java.lang.IllegalArgumentException: Requested permits (0) must be positive
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:189)
at com.google.common.util.concurrent.RateLimiter.checkPermits(RateLimiter.java:430)
at com.google.common.util.concurrent.RateLimiter.reserve(RateLimiter.java:285)
at com.google.common.util.concurrent.RateLimiter.acquire(RateLimiter.java:273)
at org.apache.cassandra.db.ColumnFamilyStore.snapshotWithoutFlush(ColumnFamilyStore.java:1801)
at org.apache.cassandra.db.ColumnFamilyStore.snapshot(ColumnFamilyStore.java:1981)
at org.apache.cassandra.db.ColumnFamilyStore.snapshot(ColumnFamilyStore.java:1957)
at org.apache.cassandra.db.ColumnFamilyStore.snapshot(ColumnFamilyStore.java:1945)
at org.apache.cassandra.db.ColumnFamilyStore$4.run(ColumnFamilyStore.java:2242)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2325)
... 9 common frames omitted
4 ответа
Вопрос также был задан на канале #cassandra в ASF Slack, поэтому я повторно публикую здесь для потомков.
Судя по трассировке стека, похоже, что при попытке доступа к подкаталогам моментальных снимков
system.size_estimates
и
system.table_estimates
.
Возможно, каталоги были повреждены в результате отключения электроэнергии (в первую очередь причина перезапуска узла), хотя у меня нет достаточной информации, чтобы подтвердить это.
В любом случае обходной путь - вручную удалить каталоги моментальных снимков для
size_estimates/
и
table_estimates/
в
data/system/*
. Это позволит Кассандре успешно начать работу. Ваше здоровье!
PS超 подтвердил в ASF Slack, что обходной путь позволил им запустить C* на узле.
Это перезапуск отказавшего узла? Похоже, что-то пытается воспроизвести
TRUNCATE
команда, но что-то необходимое не отправляется (согласно CASSANDRA-14905).
Чтобы обойти это, я бы удалил
system_schema
keypace с диска и перезапустите. Он должен перенаправить схему с другого узла.
Если это не сработает, возможно, вам придется стереть данные и перестроить узел. И если это все еще не сработает, вам, возможно, придется удалить / снова присоединить его к кластеру.
Редактировать:
Согласно ответу Эрика, похоже, проблема была в каталогах снимков для
size_estimates
и
table_esimates
таблицы в
system
пространство клавиш. Удалите их, и все будет хорошо.
я нашел другое решение
rm -rf apache-cassandra-4.0-beta4/data/saved_caches/*
rm -rf apache-cassandra-4.0-beta4/data/data/system/*
Заметил ту же проблему с докер-контейнером. Когда я проверил журналы
логи докера 59d4e2890a34
он выдвинул на первый план эту проблему. то есть
INFO [main] 2022-07-22 09:24:16,961 ColumnFamilyStore.java:2242 - Truncating system.size_estimates
INFO [main] 2022-07-22 09:24:16,964 ColumnFamilyStore.java:2279 - Truncating system.size_estimates with truncatedAt=1658481856962
org.apache.cassandra.exceptions.TruncateException: Error during truncate: java.lang.IllegalArgumentException: Requested permits (0) must be positive
С использованием
докер-контейнер rm 59d4e2890a34
Я удалил существующий контейнер и заново создал его. Новая версия запустилась нормально. Я не уверен, что испорченоsystem.size_estimates
.