[jdk17u-dev] RFR: 8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak

Martin Doerr mdoerr at openjdk.java.net
Mon May 16 09:41:53 UTC 2022


On Fri, 13 May 2022 14:10:39 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

> I would like to backport this patch to 17u, to fix a memory leak, also eliminates dangerous memset call, could potentially result in fatal crash.
> 
> The original patch does not apply cleanly, due to [JDK-8261455](https://bugs.openjdk.java.net/browse/JDK-8261455), where it changed FileMapInfo's constructor signature to pass in full_path as a parameter. The conflict is resolved manually by initializing _full_path to nullptr.
> 
> I also bought down following code from [JDK-8261455](https://bugs.openjdk.java.net/browse/JDK-8261455), given it is a P4 enhancement, I don't see it is a candidate for backport itself. But following code obviously fixes a bug that leaves file open after use. 
> 
> ``` 
>   if (_file_open) {
>     os::close(_fd);
>   }
> 
> 
> Test:
>   - [x] hotspot_cds on Linux x86_64
>   - [x]  GHA

Backport lgtm. Please add empty line before integrating.

src/hotspot/share/cds/filemap.cpp line 195:

> 193:     assert(_dynamic_archive_info == this, "must be singleton"); // not thread safe
> 194:     _dynamic_archive_info = NULL;
> 195:   }

Original change adds an empty line here. Please insert.

-------------

Marked as reviewed by mdoerr (Reviewer).

PR: https://git.openjdk.java.net/jdk17u-dev/pull/397


More information about the jdk-updates-dev mailing list