Project

General

Profile

Bug #21831

beast: frontend hangs on pause for multisite reconfiguration

Added by Casey Bodley about 1 year ago. Updated about 1 year ago.

Status:
Resolved
Priority:
High
Assignee:
Target version:
-
Start date:
10/18/2017
Due date:
% Done:

0%

Source:
Tags:
beast multisite
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

Description

The beast frontend handles pause_for_new_config() by calling boost::asio::tcp::acceptor::cancel(), which unblocks any threads that were only waiting on boost::asio::tcp::acceptor::async_accept().

However, existing keepalive connections will also be waiting to read the next message header with beast::http::async_read_some(), and that prevents boost::asio::io_service::run() from returning to complete the pause.

This means that keepalive connections will cause pause_for_new_config() to hang until all such connections are closed by the clients.

History

#1 Updated by Casey Bodley about 1 year ago

  • Tags set to beast multisite

#2 Updated by Casey Bodley about 1 year ago

  • Status changed from New to Need Review

#3 Updated by Casey Bodley about 1 year ago

  • Status changed from Need Review to Resolved

Also available in: Atom PDF