2015-05-19 3 views
1

Я был ошибкой при компиляции тестовых примеров блока cassandra. Иногда один из тестов время от времени прерывается. В то время как https://issues.apache.org/jira/browse/CASSANDRA-8981 заявляет, что эта проблема была решена в версии 2.1.5, я все еще получаю эту проблему. Построение cassandra 2.1.5 из источника с использованием jdk1.8. Ниже приведены детали:cassandra IndexSummaryManagerTest unit test time timeout error

[junit] Testsuite: org.apache.cassandra.io.sstable.IndexSummaryManagerTest 
[junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec 
[junit] 
[junit] Testcase: org.apache.cassandra.io.sstable.IndexSummaryManagerTest:testCompactionRace: Caused an ERROR 
[junit] Timeout occurred. Please note the time in the report does not reflect the time until the timeout. 
[junit] junit.framework.AssertionFailedError: Timeout occurred. Please note the time in the report does not reflect the time until the timeout. 
[junit]  at java.lang.Thread.run(Thread.java:745) 
[junit] 
[junit] 
[junit] Test org.apache.cassandra.io.sstable.IndexSummaryManagerTest FAILED (timeout) 
[junit] Testsuite: org.apache.cassandra.io.sstable.IndexSummaryTest 
[junit] Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.193 sec 

ответ

1

Лучшее место для участия в обсуждении тестирования Cassandra, вероятно, на IRC канале # Кассандры разработчика на irc.freenode.net [0] - Кассандры разработчики и инженеры-испытатели все тусуются там и обсуждать такие вещи каждый день :) Я просто случайно просматриваю тег Cassandra, и вы поймали последние несколько последних тестовых вопросов.

Что касается вашей конкретной ошибки теста, я быстро просмотрел историю CI [1] и не вижу никаких последних тайм-аутов - это не означает, что с вашей помощью нельзя улучшить тест, если вы нашли проблему.

Я не уверен, почему тип системы, на которую вы тестируете, но, возможно, медленный ввод-вывод, что может привести к тому, что тест займет больше времени, чем 60-секундный тайм-аут теста. Начните настройку тайм-аут в build.xml выше, чтобы увидеть, если тест по крайней мере, в конце концов, проходит - давайте удвоить:

(cassandra-2.1 *)[email protected]:~/git/cassandra$ git diff 
diff --git a/build.xml b/build.xml 
index e197696..2d5e20a 100644 
--- a/build.xml 
+++ b/build.xml 
@@ -91,7 +91,7 @@ 
    <property name="maven-repository-url" value="https://repository.apache.org/content/repositories/snapshots"/> 
    <property name="maven-repository-id" value="apache.snapshots.https"/> 

- <property name="test.timeout" value="60000" /> 
+ <property name="test.timeout" value="120000" /> 
    <property name="test.long.timeout" value="600000" /> 

    <!-- default for cql tests. Can be override by -Dcassandra.test.use_prepared=false --> 

Сложение и тест еще раз (выход пропущено):

(cassandra-2.1 *)[email protected]:~/cassandra$ ant clean jar 
<...> 
(cassandra-2.1 *)[email protected]:~/cassandra$ ant test -Dtest.name=IndexSummaryManagerTest 
<...> 
testlist: 
    [echo] running test bucket 0 tests 
    [mkdir] Created dir: /home/mshuler/cassandra/build/test/cassandra 
    [mkdir] Created dir: /home/mshuler/cassandra/build/test/output 
    [junit] WARNING: multiple versions of ant detected in path for junit 
    [junit]   jar:file:/usr/share/ant/lib/ant.jar!/org/apache/tools/ant/Project.class 
    [junit]  and jar:file:/home/mshuler/cassandra/build/lib/jars/ant-1.6.5.jar!/org/apache/tools/ant/Project.class 
    [junit] Testsuite: org.apache.cassandra.io.sstable.IndexSummaryManagerTest 
    [junit] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 14.737 sec 
    [junit] 

BUILD SUCCESSFUL 
Total time: 18 seconds 

Если вы все еще есть проблемы, посмотрите файл test.log и посмотрите, можете ли вы решить, что может быть с вашей проблемой. Вы найдете этот файл журнала по адресу build/test/logs/system.log.

Если вы можете идентифицировать проблему и можете предоставить шаги воспроизведения, откройте билет JIRA ... на самом деле, похоже, что я повторно открыл другую JIRA для этого тайм-аута теста во время цели тестирования всех муравьев: https://issues.apache.org/jira/browse/CASSANDRA-9271

Я пошлю этот ответ, поскольку приведенные выше - это, по крайней мере, несколько инструментов, которые вы должны иметь в своем тестовом наборе инструментов. Не стесняйтесь приходить в чат в IRC!

[0] http://freenode.net/

[1] http://cassci.datastax.com/job/cassandra-2.1_utest/lastCompletedBuild/testReport/org.apache.cassandra.io.sstable/IndexSummaryManagerTest/history/

+0

Большое спасибо за вашу помощь. Я продолжал увеличивать тайм-аут, и тест, наконец, преуспел, и для теста потребовалось 6 минут. Я запускаю его в докере, который работает на VM на моем mac. Как вы предположили, я присоединяюсь к каналу IRC и получаю оттуда. – Sandeep

+0

Кроме того, я заметил, что эти строки повторяются в журнале в течение большей части времени выполнения теста: DEBUG [пул-3-нить-1] 2015-05-19 18: 16: 07,136 Завершено изменение размера сводок индексов; текущая приблизительная используемая память: 0.09203243255615234 MB DEBUG [пул-3-нить-2] 2015-05-19 18: 16: 07,137 Завершено изменение размеров сводок индексов; текущая приблизительная используемая память: 0.09203243255615234 MB DEBUG [пул-3-нить-1] 2015-05-19 18: 16: 07,137 Начало перераспределения сводных индексов для 65 сэблей с размером пула памяти 7 МБ; используемый текущий интервал 0.09203243255615234 МБ – Sandeep