You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After upgrading to v4.6.1 we found that our workers are caught in an endless loop when there are no messages left in the queue.
It only seems to happen when using a server heartbeat lower than the read timeout.
Here is a self contained example showcasing the issue:
<?phprequire __DIR__ . '/../vendor/autoload.php';
$connection = new \Stomp\Network\Connection('tcp://127.0.0.1:61613');
$client = new \Stomp\Client($connection);
$stomp = new \Stomp\StatefulStomp($client);
$connection->setReadTimeout(10);
$client->setHeartbeat(0, 5000);
$observer = new \Stomp\Network\Observer\ServerAliveObserver();
$connection->getObservers()->addObserver($observer);
$stomp->subscribe('empty_queue');
var_dump($frame = $stomp->read());// frame will never get printed$stomp->unsubscribe();
It seems that the issue was introduced in #137. We just downgraded to v4.6.0 for now, but using a heartbeat > readTimeout seems to work too. We are using ActiveMQ.
Regards.
The text was updated successfully, but these errors were encountered:
Hi @jmglsn, I found that using heartbeat > readTimeout doesn't work after 5.0.0 release. Now in this case the HeartbeatException "The server failed to send expected heartbeats" is always thrown. It seems it was introduced in #149.
After upgrading to v4.6.1 we found that our workers are caught in an endless loop when there are no messages left in the queue.
It only seems to happen when using a server heartbeat lower than the read timeout.
Here is a self contained example showcasing the issue:
It seems that the issue was introduced in #137. We just downgraded to v4.6.0 for now, but using a heartbeat > readTimeout seems to work too. We are using ActiveMQ.
Regards.
The text was updated successfully, but these errors were encountered: