RFR(M): 8206977: Minor improvements of runtime code.

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Tue Jul 10 12:32:41 UTC 2018


Hi David, 

Take your time (within the RDP1 timeframe ��) to look at the issues themselves. 
Just for the basic comments on this:
> I see some asserts changed to guarantees which is unnecessary in general
> - but again appeases static checkers looking at product builds.
This has been done to a large extend for parfait:
 http://hg.openjdk.java.net/jdk/jdk/search/?rev=parfait&revcount=40

> I also don't see this as a P3 bug, as there seems only 1 potential real
> bug there (you yourself call these "minor improvements"). So this seems
> unsuitable for JDK 11 now we are in RDP1. But fine for 12.
When else should I do this? I can only do this when development
is closed, else I have to re-run and do fixes again and again for 
incoming changes. 
We are required to run the checker and fix issues before releasing
a VM.

Best regards,
  Goetz.







http://hg.openjdk.java.net/jdk/jdk/search/?rev=parfait&revcount=40

> -----Original Message-----
> From: David Holmes [mailto:david.holmes at oracle.com]
> Sent: Dienstag, 10. Juli 2018 14:10
> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; hotspot-runtime-
> dev at openjdk.java.net
> Subject: Re: RFR(M): 8206977: Minor improvements of runtime code.
> 
> Hi Goetz,
> 
> On 10/07/2018 8:53 PM, Lindenmaier, Goetz wrote:
> > Hi,
> >
> > I ran coverity on the jdk11 hotspot sources and want to propose the
> > following fixes to the runtime code. I scanned the linux x86_64 build.
> > Some issues are similar to previous parfait fixes (check for NULL, add
> > guarantees etc.) I also identified some issues I consider real problems.
> > http://cr.openjdk.java.net/~goetz/wr18/8206977-covRuntime/01/
> 
> It will take a while to go through these. I see some false positives
> caused by too local an examination - which is typical of code checkers.
> For example in os_linux.cpp
> 
> +     if (buflen > 7) {
> 
> we know the buffer coming in is O_BUFLEN in size. Add an assert if you
> like but no need for a hard-wired guard.
> 
> I see some asserts changed to guarantees which is unnecessary in general
> - but again appeases static checkers looking at product builds.
> 
> I also don't see this as a P3 bug, as there seems only 1 potential real
> bug there (you yourself call these "minor improvements"). So this seems
> unsuitable for JDK 11 now we are in RDP1. But fine for 12.
> 
> Will try to go through in more detail tomorrow, but it is somewhat
> tedious to have to work through these in detail to refute the code
> checkers claims of incorrectness.
> 
> Thanks,
> David
> -----
> 
> 
> > In detail:
> >
> > Real issues:
> > ------------
> >
> > jvmtiEnvBase.cpp
> >    || should be &&.
> >    Attention, this is the only change that really will change behaviour.
> >    But if thr == NULL we will see a crash below.
> >
> > perfMemory_linux.cpp:
> >    Wrong buffer length used.
> >
> > systemDictionary.cpp:
> >    Move code dereferencing ik under if (ik != NULL).
> >
> > virtualspace.cpp
> >    Initialization is missing. Moved constructor up to the other
> >    constructors.
> >
> >
> > Useful code improvements:
> > -------------------------
> >
> > vm_version_ext_x86.cpp
> >    Assure buffer is not accessed at offset -1.
> >
> > os_linux.cpp
> >    Numa_max_node returns int, and a -1 in some cases.
> >
> > moduleEntry.cpp
> >    name might be NULL. Just a fix for tracing.
> >
> > systemDictionaryShared.cpp
> >    clearify code.
> >    It would be wrong if only entry == NULL would hold, one
> >    would hit the assertion below.
> >
> > verifier.cpp
> >    Fix tracing.
> >    Illegal opcode is -1 and should not be passed to name array.
> >
> > logOutput.cpp
> >    If n_selections == 0, best_selection would be NULL.
> >    Move up the assertion and turn into a guarantee.
> >
> > filemap.cpp
> >    Either base can be NULL, or parts of the code before are dead.
> >
> > metaspace.cpp
> >    We now an exception is pending.
> >
> > klassVtable.cpp
> >    Coverity does not like the format in a variable.
> >    Anyways this is quite rough coding, transformed to use stringStream
> >    as with other similar exceptions.
> >
> > jvmFlag.cpp
> >    match might be NULL.
> >
> > writableFlags.cpp
> >    name might be NULL.
> >
> > ostream.cpp
> >    If ftell returns error code -1, we need not continue.
> >    Especially we should not fseek(-1).
> >
> > logTestUtils.inline.hpp
> >    ftell returns -1.
> >
> > test_metachunk.cpp
> >    wrong datatype.
> >


More information about the hotspot-runtime-dev mailing list