Skip to content

Commit 91ad4ad

Browse files
committed
[refactor]mds: print the error code
Signed-off-by: NopeDl <h2012497638@outlook.com>
1 parent 92f1e1a commit 91ad4ad

File tree

5 files changed

+76
-31
lines changed

5 files changed

+76
-31
lines changed

src/mds/common/mds_define.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,27 @@ const int kCsClientReturnFail = -5;
4747
// error code: chunkserver offline
4848
const int kCsClientCSOffline = -6;
4949

50+
inline const char* PrintMdsDescByErrorCode(int code) {
51+
switch (code) {
52+
case kMdsSuccess:
53+
return "MDS execution succeeded";
54+
case kMdsFail:
55+
return "MDS execution failed";
56+
case kCsClientInternalError:
57+
return "chunkserverclient internal error";
58+
case kCsClientNotLeader:
59+
return "chunkserverclient request is not from the leader";
60+
case kRpcChannelInitFail:
61+
return "brpc channel init fail";
62+
case kRpcFail:
63+
return "RPC fail or Chunkserverclient request return fail";
64+
case kCsClientCSOffline:
65+
return "chunkserver offline";
66+
default:
67+
return "undefied code";
68+
}
69+
}
70+
5071
// kStaledRequestTimeIntervalUs indicates the expiration time of the request
5172
// to prevent the request from being intercepted and played back
5273
const uint64_t kStaledRequestTimeIntervalUs = 15 * 1000 * 1000u;

src/mds/nameserver2/clean_core.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ StatusCode CleanCore::CleanSnapShotFile(const FileInfo & fileInfo,
6565
correctSn);
6666
if (ret != 0) {
6767
LOG(ERROR) << "CleanSnapShotFile Error: "
68-
<< "DeleteChunkSnapshotOrCorrectSn Error"
69-
<< ", ret = " << ret
70-
<< ", inodeid = " << fileInfo.id()
71-
<< ", filename = " << fileInfo.filename()
72-
<< ", correctSn = " << correctSn;
68+
<< "DeleteChunkSnapshotOrCorrectSn Error"
69+
<< ", ret = " << PrintMdsDescByErrorCode(ret)
70+
<< ", inodeid = " << fileInfo.id()
71+
<< ", filename = " << fileInfo.filename()
72+
<< ", correctSn = " << correctSn;
7373
progress->SetStatus(TaskStatus::FAILED);
7474
return StatusCode::kSnapshotFileDeleteError;
7575
}
@@ -81,7 +81,8 @@ StatusCode CleanCore::CleanSnapShotFile(const FileInfo & fileInfo,
8181
StoreStatus ret = storage_->DeleteSnapshotFile(fileInfo.parentid(),
8282
fileInfo.filename());
8383
if (ret != StoreStatus::OK) {
84-
LOG(INFO) << "delete snapshotfile error, retCode = " << ret;
84+
LOG(INFO) << "delete snapshotfile error, retCode = "
85+
<< PrintStoreStatusByErrorCode(ret);
8586
progress->SetStatus(TaskStatus::FAILED);
8687
return StatusCode::kSnapshotFileDeleteError;
8788
} else {
@@ -123,7 +124,7 @@ StatusCode CleanCore::CleanFile(const FileInfo & commonFile,
123124
int ret = DeleteChunksInSegment(segment, commonFile.seqnum());
124125
if (ret != 0) {
125126
LOG(ERROR) << "Clean common File Error: "
126-
<< ", ret = " << ret
127+
<< ", ret = " << PrintMdsDescByErrorCode(ret)
127128
<< ", inodeid = " << commonFile.id()
128129
<< ", filename = " << commonFile.filename()
129130
<< ", sequenceNum = " << commonFile.seqnum();
@@ -153,7 +154,8 @@ StatusCode CleanCore::CleanFile(const FileInfo & commonFile,
153154
StoreStatus ret = storage_->DeleteFile(commonFile.parentid(),
154155
commonFile.filename());
155156
if (ret != StoreStatus::OK) {
156-
LOG(INFO) << "delete common file error, retCode = " << ret;
157+
LOG(INFO) << "delete common file error, retDesc = "
158+
<< PrintStoreStatusByErrorCode(ret);
157159
progress->SetStatus(TaskStatus::FAILED);
158160
return StatusCode::kCommonFileDeleteError;
159161
} else {
@@ -185,7 +187,8 @@ StatusCode CleanCore::CleanDiscardSegment(
185187
int ret = DeleteChunksInSegment(segment, seq);
186188
if (ret != 0) {
187189
LOG(ERROR) << "CleanDiscardSegment failed, DeleteChunk Error, ret = "
188-
<< ret << ", filename = " << fileInfo.filename()
190+
<< PrintMdsDescByErrorCode(ret)
191+
<< ", filename = " << fileInfo.filename()
189192
<< ", inodeid = " << fileInfo.id()
190193
<< ", segment offset = " << segment.startoffset();
191194
progress->SetStatus(TaskStatus::FAILED);
@@ -229,7 +232,8 @@ int CleanCore::DeleteChunksInSegment(const PageFileSegment& segment,
229232
seq);
230233

231234
if (ret != 0) {
232-
LOG(ERROR) << "DeleteChunk failed, ret = " << ret
235+
LOG(ERROR) << "DeleteChunk failed, ret = "
236+
<< PrintMdsDescByErrorCode(ret)
233237
<< ", logicalpoolid = " << logicalPoolId
234238
<< ", copysetid = " << segment.chunks()[i].copysetid()
235239
<< ", chunkid = " << segment.chunks()[i].chunkid()

src/mds/nameserver2/clean_manager.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ bool CleanManager::RecoverCleanTasks(void) {
8989
std::vector<FileInfo> snapShotFiles;
9090
StoreStatus ret = storage_->LoadSnapShotFile(&snapShotFiles);
9191
if (ret != StoreStatus::OK) {
92-
LOG(ERROR) << "Load SnapShotFile error, ret = " << ret;
92+
LOG(ERROR) << "Load SnapShotFile error, ret = "
93+
<< PrintStoreStatusByErrorCode(ret);
9394
return false;
9495
}
9596

@@ -104,7 +105,8 @@ bool CleanManager::RecoverCleanTasks(void) {
104105
StoreStatus ret1 = storage_->ListFile(RECYCLEBININODEID,
105106
RECYCLEBININODEID + 1, &commonFiles);
106107
if (ret1 != StoreStatus::OK) {
107-
LOG(ERROR) << "Load recylce bin file error, ret = " << ret1;
108+
LOG(ERROR) << "Load recylce bin file error, ret = "
109+
<< PrintStoreStatusByErrorCode(ret1);
108110
return false;
109111
}
110112

src/mds/nameserver2/curvefs.cpp

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ bool CurveFS::InitRecycleBinDir() {
115115
return true;
116116
} else {
117117
// internal error
118-
LOG(INFO) << "InitRecycleBinDir error ,ret = " << ret;
118+
LOG(INFO) << "InitRecycleBinDir error ,ret = "
119+
<< PrintStoreStatusByErrorCode(ret);
119120
return false;
120121
}
121122
}
@@ -206,7 +207,8 @@ StatusCode CurveFS::WalkPath(const std::string &fileName,
206207
} else if (ret == StoreStatus::KeyNotExist) {
207208
return StatusCode::kFileNotExists;
208209
} else {
209-
LOG(ERROR) << "GetFile error, errcode = " << ret;
210+
LOG(ERROR) << "GetFile error, errcode = "
211+
<< PrintStoreStatusByErrorCode(ret);
210212
return StatusCode::kStorageError;
211213
}
212214
// assert(fileInfo->parentid() != parentID);
@@ -680,7 +682,7 @@ StatusCode CurveFS::DeleteFile(const std::string & filename, uint64_t fileId,
680682
if (ret != StoreStatus::OK) {
681683
LOG(ERROR) << "delete file, file is directory and delete fail"
682684
<< ", filename = " << filename
683-
<< ", ret = " << ret;
685+
<< ", ret = " << PrintStoreStatusByErrorCode(ret);
684686
return StatusCode::kStorageError;
685687
}
686688

@@ -728,8 +730,8 @@ StatusCode CurveFS::DeleteFile(const std::string & filename, uint64_t fileId,
728730
storage_->MoveFileToRecycle(fileInfo, recycleFileInfo);
729731
if (ret1 != StoreStatus::OK) {
730732
LOG(ERROR) << "delete file, move file to recycle fail"
731-
<< ", filename = " << filename
732-
<< ", ret = " << ret1;
733+
<< ", filename = " << filename
734+
<< ", ret = " << PrintStoreStatusByErrorCode(ret1);
733735
return StatusCode::kStorageError;
734736
}
735737
LOG(INFO) << "file delete to recyclebin, fileName = " << filename
@@ -877,7 +879,8 @@ StatusCode CurveFS::RecoverFile(const std::string & originFileName,
877879

878880
auto ret1 = storage_->RenameFile(recycleFileInfo, recoverFileInfo);
879881
if ( ret1 != StoreStatus::OK ) {
880-
LOG(ERROR) << "storage_ recoverfile error, error = " << ret1;
882+
LOG(ERROR) << "storage_ recoverfile error, error = "
883+
<< PrintStoreStatusByErrorCode(ret1);
881884
return StatusCode::kStorageError;
882885
}
883886
return StatusCode::kOK;
@@ -1122,9 +1125,9 @@ StatusCode CurveFS::RenameFile(const std::string & sourceFileName,
11221125
recycleFileInfo);
11231126
if (ret1 != StoreStatus::OK) {
11241127
LOG(ERROR) << "storage_ ReplaceFileAndRecycleOldFile error"
1125-
<< ", sourceFileName = " << sourceFileName
1126-
<< ", destFileName = " << destFileName
1127-
<< ", ret = " << ret1;
1128+
<< ", sourceFileName = " << sourceFileName
1129+
<< ", destFileName = " << destFileName
1130+
<< ", ret = " << PrintStoreStatusByErrorCode(ret1);
11281131

11291132
return StatusCode::kStorageError;
11301133
}
@@ -1138,7 +1141,8 @@ StatusCode CurveFS::RenameFile(const std::string & sourceFileName,
11381141

11391142
auto ret = storage_->RenameFile(sourceFileInfo, destFileInfo);
11401143
if ( ret != StoreStatus::OK ) {
1141-
LOG(ERROR) << "storage_ renamefile error, error = " << ret;
1144+
LOG(ERROR) << "storage_ renamefile error, error = "
1145+
<< PrintStoreStatusByErrorCode(ret);
11421146
return StatusCode::kStorageError;
11431147
}
11441148
return StatusCode::kOK;
@@ -1385,8 +1389,8 @@ StatusCode CurveFS::DeAllocateSegment(const std::string& fileName,
13851389
storeRet = storage_->DiscardSegment(fileInfo, segment);
13861390
if (storeRet != StoreStatus::OK) {
13871391
LOG(WARNING) << "Storage CleanSegment return error, filename = "
1388-
<< fileName << ", offset = " << offset
1389-
<< ", error = " << storeRet;
1392+
<< fileName << ", offset = " << offset
1393+
<< ", error = " << PrintStoreStatusByErrorCode(storeRet);
13901394
return StatusCode::kStorageError;
13911395
}
13921396

@@ -1508,7 +1512,8 @@ StatusCode CurveFS::ListSnapShotFile(const std::string & fileName,
15081512
storeStatus == StoreStatus::OK) {
15091513
return StatusCode::kOK;
15101514
} else {
1511-
LOG(ERROR) << fileName << ", storage ListFile return = " << storeStatus;
1515+
LOG(ERROR) << fileName << ", storage ListFile return = "
1516+
<< PrintStoreStatusByErrorCode(storeStatus);
15121517
return StatusCode::kStorageError;
15131518
}
15141519
}
@@ -1702,10 +1707,10 @@ StatusCode CurveFS::GetSnapShotFileSegment(
17021707
<< ", offset = " << offset;
17031708
return StatusCode::kSegmentNotAllocated;
17041709
} else {
1705-
LOG(ERROR) << "get segment fail, KInternalError, ret = " << storeRet
1706-
<< ", fileInfo.id() = "
1707-
<< fileInfo.id()
1708-
<< ", offset = " << offset;
1710+
LOG(ERROR) << "get segment fail, KInternalError, ret = "
1711+
<< PrintStoreStatusByErrorCode(storeRet)
1712+
<< ", fileInfo.id() = " << fileInfo.id()
1713+
<< ", offset = " << offset;
17091714
return StatusCode::KInternalError;
17101715
}
17111716
}
@@ -2038,7 +2043,8 @@ StatusCode CurveFS::CheckPathOwnerInternal(const std::string &filename,
20382043
LOG(WARNING) << paths[i] << " not exist";
20392044
return StatusCode::kFileNotExists;
20402045
} else {
2041-
LOG(ERROR) << "GetFile " << paths[i] << " error, errcode = " << ret;
2046+
LOG(ERROR) << "GetFile " << paths[i] << " error, errcode = "
2047+
<< PrintStoreStatusByErrorCode(ret);
20422048
return StatusCode::kStorageError;
20432049
}
20442050
tempParentID = fileInfo.id();
@@ -2393,7 +2399,7 @@ StatusCode CurveFS::ListCloneSourceFileSegments(
23932399
"filename = "
23942400
<< fileInfo->filename()
23952401
<< ", source file name = " << fileInfo->clonesource()
2396-
<< ", ret = " << status;
2402+
<< ", ret = " << PrintStoreStatusByErrorCode(status);
23972403
return StatusCode::kStorageError;
23982404
}
23992405

src/mds/nameserver2/namespace_storage.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@ enum class StoreStatus {
5151
};
5252
std::ostream& operator << (std::ostream & os, StoreStatus &s);
5353

54+
inline const char* PrintStoreStatusByErrorCode(StoreStatus status) {
55+
switch (status) {
56+
case StoreStatus::OK:
57+
return "OK";
58+
case StoreStatus::KeyNotExist:
59+
return "KeyNotExist";
60+
case StoreStatus::InternalError:
61+
return "InternalError";
62+
default:
63+
return "unknown status";
64+
}
65+
}
5466
// TODO(hzsunjianliang): may be storage need high level abstraction
5567
// put the encoding internal, not external
5668

0 commit comments

Comments
 (0)