Срок действия инкремента истек; установка всегда завершается успешно после повторной попытки

Я получаю странное поведение в memcached, в частности, поведение, которое является странным по своей последовательности. Вот мой тест:

@Test
public void testMemc() {
    logger.info("Setting head.");
    memc.set(env.memcachedQueueKeys().head, 3600, 0);
    logger.info("Set head; incrementing.");
    memc.incr(env.memcachedQueueKeys().head, 1);
    logger.info("Incremented.");
}

И вот результат:

28 11:04:52.932 ИНФОРМАЦИЯ; Настройка головы.

28-01-2014 11:04:52.933 ПРЕДУПРЕЖДЕНИЕ net.spy.memcached.MemcachedConnection: не удалось перераспределить на другой узел, повторная попытка основного узла для q:unittest:scannedemails:w.

28 11:04:52.933 ИНФОРМАЦИЯ; Установить голову; увеличение.

28-01-2014 11:04:52.935 ПРЕДУПРЕЖДЕНИЕ net.spy.memcached.MemcachedConnection: не удалось перераспределить на другой узел, повторная попытка основного узла для q:unittest:scannedemails:w.

FAILED: testMemc net.spy.memcached.OperationTimeoutException: время ожидания операции мутации истекло, невозможно изменить счетчик [q:unittest:scannedemails:w]
в net.spy.memcached.MemcachedClient.mutate(MemcachedClient.java:1484)
at net.spy.memcached.MemcachedClient.incr(MemcachedClient.java:1529)
at me.unroll.emailroller.ActOnScanResultsTest.testMemc(ActOnScanResultsTest.java:295)

Большая часть моей интуиции для такого рода ошибок подводит меня здесь. Следующие вещи странны:

  1. Почему всегда не получается ровно один раз установить?
  2. Почему он постоянно не увеличивается после того, как кажется успешным при установке?

Это на высоконагруженном сервере (да, немного неправильно запускать тест на нагруженном сервере, но если он выявляет такие проблемы, есть по крайней мере некоторое преимущество). Что может вызвать этот постоянный сбой? Есть только один узел.


person djechlin    schedule 28.01.2014    source источник


Ответы (1)


Проблема в том, что я вообще не могу подключиться. Это ошибка в spymemcached, так как операция set не вызывала исключения, даже если у нее не было сервера memcached для выполнения set.

person djechlin    schedule 28.01.2014