mirror of
https://github.com/ceph/ceph
synced 2025-03-06 00:10:04 +00:00
Merge pull request #15033 from rzarzynski/wip-rgw-19831
rgw: fix segfault in RevokeThread during its shutdown procedure. Reviewed-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
commit
1de6bc26db
@ -16,6 +16,8 @@
|
||||
#ifndef CEPH_DOUT_H
|
||||
#define CEPH_DOUT_H
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
#include "global/global_context.h"
|
||||
#include "common/config.h"
|
||||
#include "common/likely.h"
|
||||
@ -50,10 +52,13 @@ public:
|
||||
if (0) { \
|
||||
char __array[((v >= -1) && (v <= 200)) ? 0 : -1] __attribute__((unused)); \
|
||||
} \
|
||||
static size_t _log_exp_length=80; \
|
||||
static size_t _log_exp_length = 80; \
|
||||
ceph::logging::Entry *_dout_e = cct->_log->create_entry(v, sub, &_log_exp_length); \
|
||||
ostream _dout_os(&_dout_e->m_streambuf); \
|
||||
CephContext *_dout_cct = cct; \
|
||||
static_assert(std::is_convertible<decltype(&*cct), \
|
||||
CephContext* >::value, \
|
||||
"provided cct must be compatible with CephContext*"); \
|
||||
auto _dout_cct = cct; \
|
||||
std::ostream* _dout = &_dout_os;
|
||||
|
||||
#define lsubdout(cct, sub, v) dout_impl(cct, ceph_subsys_##sub, v) dout_prefix
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "rgw_common.h"
|
||||
#include "rgw_http_client.h"
|
||||
#include "common/Cond.h"
|
||||
#include "global/global_init.h"
|
||||
|
||||
#include <atomic>
|
||||
|
||||
@ -224,7 +225,7 @@ class TokenCache {
|
||||
friend class TokenCache;
|
||||
typedef RGWPostHTTPData RGWGetRevokedTokens;
|
||||
|
||||
CephContext * const cct;
|
||||
CephContext* const cct;
|
||||
TokenCache* const cache;
|
||||
const rgw::keystone::Config& config;
|
||||
|
||||
@ -239,12 +240,13 @@ class TokenCache {
|
||||
config(config),
|
||||
lock("rgw::keystone::TokenCache::RevokeThread") {
|
||||
}
|
||||
|
||||
void *entry() override;
|
||||
void stop();
|
||||
int check_revoked();
|
||||
} revocator;
|
||||
|
||||
CephContext * const cct;
|
||||
const boost::intrusive_ptr<CephContext> cct;
|
||||
|
||||
std::string admin_token_id;
|
||||
std::string barbican_token_id;
|
||||
|
Loading…
Reference in New Issue
Block a user