github-actions[bot] commented on code in PR #66018:
URL: https://github.com/apache/doris/pull/66018#discussion_r3704644113
##########
be/src/format_v2/jni/paimon_jni_reader.cpp:
##########
@@ -94,6 +95,12 @@ Status
PaimonJniReader::build_scanner_params(std::map<std::string, std::string>*
(*params)["paimon_split"] = paimon_params.paimon_split;
(*params)["paimon_predicate"] = *paimon_predicate;
Review Comment:
[P2] Release the native loader payloads after constructing the Java scanner.
This assignment leaves every V2 reader holding its own `serialized_table`
string in `_scanner_params`, and the options loop likewise copies
`paimon.doris.serialized-system-source`; V1 moves the same per-reader copies
into `JniReader::_scanner_params`. `convert_to_java_map()` creates separate
Java strings, so the new `params.remove(...)` calls release only the Java
copies. The native maps survive until split close/reset (or V1 reader
destruction), so N concurrent warm scanners still retain N full Base64 payloads
even though they share the deserialized `Table`. This is distinct from the
existing serialized-table and system-source threads, which cover Java-map
retention. Erase the loader-only native keys (or clear the native parameter
map) once Java object construction succeeds in both paths, and add lifecycle
coverage.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]