mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-28 20:02:00 +03:00
Fixup to previous commit. Since dbsim implies that logger function is
static and global, it cannot use the reporter object, which must be a non-static member of server class.
This commit is contained in:
@ -24,13 +24,11 @@
|
|||||||
#include "db_simulator.hpp"
|
#include "db_simulator.hpp"
|
||||||
|
|
||||||
#include "wsrep/logger.hpp"
|
#include "wsrep/logger.hpp"
|
||||||
#include "wsrep/reporter.hpp"
|
|
||||||
|
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
static wsrep::default_mutex logger_mtx;
|
static wsrep::default_mutex logger_mtx;
|
||||||
static wsrep::reporter* reporter = nullptr;
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
logger_fn(wsrep::log::level l, const char* pfx, const char* msg)
|
logger_fn(wsrep::log::level l, const char* pfx, const char* msg)
|
||||||
@ -50,31 +48,19 @@ logger_fn(wsrep::log::level l, const char* pfx, const char* msg)
|
|||||||
date.tm_year + 1900, date.tm_mon + 1, date.tm_mday,
|
date.tm_year + 1900, date.tm_mon + 1, date.tm_mday,
|
||||||
date.tm_hour, date.tm_min, date.tm_sec, (int)time.tv_nsec/1000000);
|
date.tm_hour, date.tm_min, date.tm_sec, (int)time.tv_nsec/1000000);
|
||||||
|
|
||||||
#define LOG_STR date_str << pfx << wsrep::log::to_c_string(l) << msg
|
std::cerr << date_str << ' ' << pfx << wsrep::log::to_c_string(l) << ' '
|
||||||
if (l >= wsrep::log::error && reporter)
|
<< msg << std::endl;
|
||||||
{
|
|
||||||
std::ostringstream os;
|
|
||||||
os << LOG_STR;
|
|
||||||
std::cerr << os.str() << std::endl;
|
|
||||||
auto const tstamp(double(time.tv_sec) + double(time.tv_nsec)*1.0e-9);
|
|
||||||
reporter->report_log_msg(wsrep::reporter::error, os.str(), tstamp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
std::cerr << LOG_STR << std::endl;
|
|
||||||
}
|
|
||||||
#undef LOG_STR
|
|
||||||
}
|
}
|
||||||
|
|
||||||
db::server::server(simulator& simulator,
|
db::server::server(simulator& simulator,
|
||||||
const std::string& name,
|
const std::string& name,
|
||||||
const std::string& address,
|
const std::string& address)
|
||||||
const std::string& status_file)
|
|
||||||
: simulator_(simulator)
|
: simulator_(simulator)
|
||||||
, storage_engine_(simulator_.params())
|
, storage_engine_(simulator_.params())
|
||||||
, mutex_()
|
, mutex_()
|
||||||
, cond_()
|
, cond_()
|
||||||
, server_service_(*this)
|
, server_service_(*this)
|
||||||
|
, reporter_(mutex_, name + ".json", 4)
|
||||||
, server_state_(server_service_,
|
, server_state_(server_service_,
|
||||||
name, address, "dbsim_" + name + "_data")
|
name, address, "dbsim_" + name + "_data")
|
||||||
, last_client_id_(0)
|
, last_client_id_(0)
|
||||||
@ -84,12 +70,6 @@ db::server::server(simulator& simulator,
|
|||||||
, client_threads_()
|
, client_threads_()
|
||||||
{
|
{
|
||||||
wsrep::log::logger_fn(logger_fn);
|
wsrep::log::logger_fn(logger_fn);
|
||||||
reporter = new wsrep::reporter(mutex_, status_file, 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
db::server::~server()
|
|
||||||
{
|
|
||||||
delete reporter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void db::server::applier_thread()
|
void db::server::applier_thread()
|
||||||
@ -183,5 +163,5 @@ void db::server::log_state_change(enum wsrep::server_state::state from,
|
|||||||
enum wsrep::server_state::state to)
|
enum wsrep::server_state::state to)
|
||||||
{
|
{
|
||||||
wsrep::log_info() << "State changed " << from << " -> " << to;
|
wsrep::log_info() << "State changed " << from << " -> " << to;
|
||||||
if (reporter) reporter->report_state(to, 0);
|
reporter_.report_state(to, 0);
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include "wsrep/gtid.hpp"
|
#include "wsrep/gtid.hpp"
|
||||||
#include "wsrep/client_state.hpp"
|
#include "wsrep/client_state.hpp"
|
||||||
|
#include "wsrep/reporter.hpp"
|
||||||
|
|
||||||
#include "db_storage_engine.hpp"
|
#include "db_storage_engine.hpp"
|
||||||
#include "db_server_state.hpp"
|
#include "db_server_state.hpp"
|
||||||
@ -41,9 +42,7 @@ namespace db
|
|||||||
public:
|
public:
|
||||||
server(simulator& simulator,
|
server(simulator& simulator,
|
||||||
const std::string& name,
|
const std::string& name,
|
||||||
const std::string& address,
|
const std::string& address);
|
||||||
const std::string& status_file);
|
|
||||||
~server();
|
|
||||||
void applier_thread();
|
void applier_thread();
|
||||||
void start_applier();
|
void start_applier();
|
||||||
void stop_applier();
|
void stop_applier();
|
||||||
@ -70,6 +69,7 @@ namespace db
|
|||||||
wsrep::default_mutex mutex_;
|
wsrep::default_mutex mutex_;
|
||||||
wsrep::default_condition_variable cond_;
|
wsrep::default_condition_variable cond_;
|
||||||
db::server_service server_service_;
|
db::server_service server_service_;
|
||||||
|
wsrep::reporter reporter_;
|
||||||
db::server_state server_state_;
|
db::server_state server_state_;
|
||||||
std::atomic<size_t> last_client_id_;
|
std::atomic<size_t> last_client_id_;
|
||||||
std::atomic<size_t> last_transaction_id_;
|
std::atomic<size_t> last_transaction_id_;
|
||||||
|
@ -137,8 +137,7 @@ void db::simulator::start()
|
|||||||
std::make_unique<db::server>(
|
std::make_unique<db::server>(
|
||||||
*this,
|
*this,
|
||||||
name_os.str(),
|
name_os.str(),
|
||||||
address_os.str(),
|
address_os.str()))));
|
||||||
name_os.str() + "_" + params_.status_file))));
|
|
||||||
if (it.second == false)
|
if (it.second == false)
|
||||||
{
|
{
|
||||||
throw wsrep::runtime_error("Failed to add server");
|
throw wsrep::runtime_error("Failed to add server");
|
||||||
|
Reference in New Issue
Block a user