RFR: 8271003: hs_err improvement: handle CLASSPATH env setting longer than O_BUFLEN

David Holmes dholmes at openjdk.java.net
Mon Aug 2 02:38:30 UTC 2021


On Fri, 30 Jul 2021 18:17:54 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:

> Please review this small enhancement for addressing the problem of the CLASSPATH env variable setting being truncated in a hs err log.
> 
> For printing a char string, it doesn't need to go through `do_vsnprintf()` which does the truncation based on the input buffer length. The change is local to the code path pertaining to hs err log.
> 
> Testing:
> 
> - [x] tiers 1, 2 (including the new test)

Hi Calvin,

Not sure about this ... still thinking.

In the meantime see couple of comments below.

Thanks,
David

src/hotspot/share/utilities/ostream.cpp line 140:

> 138:       str = format;
> 139:       len = strlen(str);
> 140:   } else if (format[0] == '%' && format[1] == 's' && format[2] == '\0') {

Why are you assuming the %s must be at the beginning rather than "blah blah %s blah" ?

test/hotspot/jtreg/runtime/ErrorHandling/ClassPathEnvVar.java line 53:

> 51:     private static final String end_path = "end-path";
> 52: 
> 53:     private static class Crasher {

Can't you just use one of the existing -XX:ErrorHandlerTest=n values to trigger the crash?

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

PR: https://git.openjdk.java.net/jdk/pull/4947


More information about the hotspot-runtime-dev mailing list