0 Вопрос: Смещение: диапазон охвата! = Текущий диапазон NoopSpan после обновления весеннего облака

вопрос создан в Wed, May 8, 2019 12:00 AM

После обновления снаряжения весеннего облака с 2.0.0 до 2.1.1 я получаю неудачные тесты с сообщением: Неверное выравнивание: диапазон охвата NoopSpan (dfa5ce53cfd8c8e2 /dfa5ce53cfd8c8e2)! = текущий диапазон NoopSpan (dfa5ce53cfd8c8e2 /e2c09) 7

Вот полная трассировка стека

java.lang.AssertionError: Misalignment: scoped span NoopSpan(dfa5ce53cfd8c8e2/dfa5ce53cfd8c8e2) !=  current span NoopSpan(dfa5ce53cfd8c8e2/e2c617fa7a71a09f)
    at brave.propagation.ThreadLocalSpan.remove(ThreadLocalSpan.java:141)
    at org.springframework.cloud.sleuth.instrument.messaging.TracingChannelInterceptor.finishSpan(TracingChannelInterceptor.java:374)
    at org.springframework.cloud.sleuth.instrument.messaging.TracingChannelInterceptor.afterSendCompletion(TracingChannelInterceptor.java:244)
    at org.springframework.integration.channel.AbstractMessageChannel$ChannelInterceptorList.afterSendCompletion(AbstractMessageChannel.java:637)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:469)
    at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:401)

Неудачный тест -

import org.springframework.messaging.SubscribableChannel;

private SubscribableChannel inputChannel;
    @Test
    public void throw_exception_bad_request() {
      inputChannel.send(message);
}

Из того, что я могу сказать, проблема заключается в том, что «сыщик» создает несколько промежутков для одного и того же метода, а затем сравнивает их, что вызывает конфликт? Есть две записи в журнале, которые четко показывают разные промежутки

{"time":"2019-05-06T18:00:21.663+00:00","sev":"ERROR","app":"app","evt":"dfa5ce53cfd8c8e2:dfa5ce53cfd8c8e2"
{"time":"2019-05-06T18:00:21.668+00:00","sev":"ERROR","app":"app","evt":"dfa5ce53cfd8c8e2:e2c617fa7a71a09f"

Ошибка регистрируется в двух разных местах, но идентификаторы span являются отдельными. Вот два места, где он регистрируется.

   return Mono.error(log.throwing(new CustomException(
                                    "Error")));
        try {
            client.createCustomEvent();
        } catch (Exception e) {
            log.error("Error processing", e);

Опять же, это происходит только с новой версией, когда я возвращаюсь, тесты проходят нормально.

    
- 2
0 ответов                              0                         
источник размещен Вот