group_id unexpected condition
This commit is contained in:
parent
860a67d2fc
commit
f5c8989764
23
deps/oblib/src/lib/worker.cpp
vendored
23
deps/oblib/src/lib/worker.cpp
vendored
@ -85,6 +85,29 @@ Worker::Status Worker::check_wait()
|
||||
return ret_status;
|
||||
}
|
||||
|
||||
const uint64_t OBCG_DEFAULT_GROUP_ID = 0;
|
||||
const uint64_t USER_RESOURCE_GROUP_START_ID = 10000;
|
||||
const uint64_t OB_INVALID_GROUP_ID = UINT64_MAX;
|
||||
OB_INLINE bool is_user_group(const uint64_t group_id)
|
||||
{
|
||||
return group_id >= USER_RESOURCE_GROUP_START_ID && group_id != OB_INVALID_GROUP_ID;
|
||||
}
|
||||
|
||||
OB_INLINE bool is_valid_resource_group(const uint64_t group_id)
|
||||
{
|
||||
// other group or user group
|
||||
return group_id == OBCG_DEFAULT_GROUP_ID || is_user_group(group_id);
|
||||
}
|
||||
|
||||
void Worker::set_group_id(int32_t group_id)
|
||||
{
|
||||
const int64_t USER_RESOURCE_GROUP_START_ID = 10000;
|
||||
if (OBCG_DEFAULT_GROUP_ID == group_id_ || (is_user_group(group_id_) && is_valid_resource_group(group_id))) {
|
||||
group_id_ = group_id;
|
||||
} else {
|
||||
LOG_ERROR_RET(OB_INNER_STAT_ERROR, "group_id is unexpected", K(group_id_), K(group_id));
|
||||
}
|
||||
}
|
||||
|
||||
bool Worker::sched_wait()
|
||||
{
|
||||
|
2
deps/oblib/src/lib/worker.h
vendored
2
deps/oblib/src/lib/worker.h
vendored
@ -81,7 +81,7 @@ public:
|
||||
OB_INLINE void set_curr_request_level(const int32_t level) { curr_request_level_ = level; }
|
||||
OB_INLINE int32_t get_curr_request_level() const { return curr_request_level_; }
|
||||
|
||||
OB_INLINE void set_group_id(int32_t group_id) { group_id_ = group_id; }
|
||||
void set_group_id(int32_t group_id);
|
||||
OB_INLINE int32_t get_group_id() const { return group_id_; }
|
||||
|
||||
OB_INLINE void set_rpc_stat_srv(void *rpc_stat_srv) { rpc_stat_srv_ = rpc_stat_srv; }
|
||||
|
@ -170,7 +170,11 @@ ObIOMode ObIOFlag::get_mode() const
|
||||
|
||||
void ObIOFlag::set_resource_group_id(const uint64_t group_id)
|
||||
{
|
||||
group_id_ = group_id;
|
||||
if (!is_valid_resource_group(group_id)) {
|
||||
group_id_ = USER_RESOURCE_OTHER_GROUP_ID;
|
||||
} else {
|
||||
group_id_ = group_id;
|
||||
}
|
||||
}
|
||||
|
||||
void ObIOFlag::set_wait_event(int64_t wait_event_id)
|
||||
|
@ -177,12 +177,6 @@ TEST_F(TestIOStruct, IOFlag)
|
||||
flag2.set_mode((ObIOMode)88);
|
||||
ASSERT_FALSE(flag2.is_valid());
|
||||
|
||||
// test io group
|
||||
flag2 = flag;
|
||||
ASSERT_TRUE(flag2.is_valid());
|
||||
flag2.set_resource_group_id(OB_INVALID_GROUP_ID);
|
||||
ASSERT_FALSE(flag2.is_valid());
|
||||
|
||||
// test wait event number
|
||||
flag2 = flag;
|
||||
ASSERT_TRUE(flag2.is_valid());
|
||||
|
Loading…
x
Reference in New Issue
Block a user