TCP RST ao iniciar o handshake AMQP [rabbitmq-c]

1

Estou executando o rabbitmq-c v0.8.0 em um OpenWRT (ar71xx), em um dispositivo que atua como um cliente em uma LAN. O mesmo sistema parece se comportar de maneira diferente por meio de diferentes roteadores.

Os problemas que estou vendo são (isso faz parte do meu código):

_socket  = amqp_tcp_socket_new( _connection );

if( _socket == NULL )
{
    log_error( "connect(): can't create a new socket");
    return false;
}

status = amqp_socket_open_noblock( _socket, _host.c_str(), _port, &_openTimeOut);

if( status  !=  AMQP_STATUS_OK  )
{
    log_error( "connect(): can't open socket: %d", status);
    return false;
}

E aqui, não tenho certeza dependendo do que, o erro retornado é -13 o -9. Depois de cavar o código rabbitmq-c, eu entendo que esses dois códigos de retorno dependem principalmente de chamadas poll () ou connect (), mas não consigo ver qual dos possíveis casos poderia estar acontecendo aqui.

Por outro lado, como mencionei, isso acontece por trás de dois roteadores diferentes; em um deles (o bem-sucedido), vejo que após as consultas do DNS para obter o IP do host o servidor tem, o cliente envia TCP SYN e ACK'ed pelo servidor, enquanto no outro, o cliente envia o SYN, servidor ACKs e cliente envia RST logo após, o que pode significar que ele está fechando a conexão.

Gostaria de entender em quais casos um cliente rabbitmq poderia estar emitindo um RST para o servidor.

    
por Pipetus 22.03.2018 / 23:42

0 respostas