fix: Catch invalid json pointer error (#40625)

issue: #35528

Signed-off-by: sunby <sunbingyi1992@gmail.com>
This commit is contained in:
Bingyi Sun 2025-03-14 16:56:08 +08:00 committed by GitHub
parent d3adab15ac
commit 6249335859
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -46,10 +46,19 @@ JsonInvertedIndex<T>::build_index_for_json(
value_result<GetType> res = json_column->at<GetType>(nested_path_);
auto err = res.error();
if (err != simdjson::SUCCESS) {
AssertInfo(err == simdjson::INCORRECT_TYPE ||
err == simdjson::NO_SUCH_FIELD,
"Failed to parse json, err: {}",
err);
AssertInfo(
err == simdjson::INCORRECT_TYPE ||
err == simdjson::NO_SUCH_FIELD ||
err == simdjson::INVALID_JSON_POINTER,
"Failed to parse json, err: {}, json: {}, pointer: {}",
err,
*json_column,
nested_path_);
if (err == simdjson::INVALID_JSON_POINTER) {
LOG_WARN("Invalid json pointer, json: {}, pointer: {}",
*json_column,
nested_path_);
}
{
folly::SharedMutex::WriteHolder lock(this->mutex_);
this->null_offset_.push_back(i);