SERVER-113382 Reserve location codes for extension errors and logs (#43533)

GitOrigin-RevId: d3e28a680d3859f938280edaf54dc861f220ca91
This commit is contained in:
Finley Lau 2025-11-04 15:27:17 -06:00 committed by MongoDB Bot
parent 1116122883
commit 66dfaac3cb
2 changed files with 13 additions and 1 deletions

View File

@ -24,6 +24,8 @@ except ImportError:
import re # type: ignore import re # type: ignore
MAXIMUM_CODE = 99999999 # JIRA Ticket + XX MAXIMUM_CODE = 99999999 # JIRA Ticket + XX
MIN_EXTENSION_RESERVED_CODE = 65000
MAX_EXTENSION_RESERVED_CODE = 71000
codes = [] # type: ignore codes = [] # type: ignore
@ -162,6 +164,7 @@ def read_error_codes(src_root="src/mongo"):
dups = defaultdict(list) dups = defaultdict(list)
skips = [] skips = []
malformed = [] # type: ignore malformed = [] # type: ignore
reserved = []
# define validation callbacks # define validation callbacks
def check_dups(assert_loc): def check_dups(assert_loc):
@ -181,11 +184,14 @@ def read_error_codes(src_root="src/mongo"):
errors.append(assert_loc) errors.append(assert_loc)
def validate_code(assert_loc): def validate_code(assert_loc):
"""Check for malformed codes.""" """Check for malformed codes or pre-reserved codes."""
code = int(assert_loc.code) code = int(assert_loc.code)
if code > MAXIMUM_CODE: if code > MAXIMUM_CODE:
malformed.append(assert_loc) malformed.append(assert_loc)
errors.append(assert_loc) errors.append(assert_loc)
elif code >= MIN_EXTENSION_RESERVED_CODE and code < MAX_EXTENSION_RESERVED_CODE:
reserved.append(assert_loc)
errors.append(assert_loc)
def callback(assert_loc): def callback(assert_loc):
validate_code(assert_loc) validate_code(assert_loc)
@ -217,6 +223,11 @@ def read_error_codes(src_root="src/mongo"):
print("MALFORMED ID: %s" % loc.code) print("MALFORMED ID: %s" % loc.code)
print(" %s:%d:%d:%s" % (loc.sourceFile, line, col, loc.lines)) print(" %s:%d:%d:%s" % (loc.sourceFile, line, col, loc.lines))
for loc in reserved:
line, col = get_line_and_column_for_position(loc)
print("USE OF ALREADY RESERVED ID: %s" % loc.code)
print(" %s:%d:%d:%s" % (loc.sourceFile, line, col, loc.lines))
return (codes, errors, seen) return (codes, errors, seen)

View File

@ -1053,6 +1053,7 @@ error_codes:
} }
- {code: 56846, name: ConfigServerUnreachable} - {code: 56846, name: ConfigServerUnreachable}
- {code: 57986, name: RetryableInternalTransactionNotSupported} - {code: 57986, name: RetryableInternalTransactionNotSupported}
# Codes 65000-70999 are reserved for extension-developed logs and errors. Do not use these unless they are used for writing an extension.
- {code: 640570, name: IllegalChangeToExpectedShardVersion} - {code: 640570, name: IllegalChangeToExpectedShardVersion}
- {code: 640571, name: IllegalChangeToExpectedDatabaseVersion} - {code: 640571, name: IllegalChangeToExpectedDatabaseVersion}
- { - {