[ https://issues.apache.org/jira/browse/LUCENE-7595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15779982#comment-15779982 ]
Dawid Weiss commented on LUCENE-7595: ------------------------------------- Looks good to me overall. A few notes and ideas. There is a separate RUE impl. inside randomized runner just for the sake of {{StaticFieldsInvariantRule}}... perhaps we could simply copy over this rule's source code to Lucene to make use of the local ram estimator -- then you'd have full control to tweak it as needed. Perhaps it'd also simplify the static rule initialization block. {code} + a(String.class, v -> charArraySize(v.length())); // may not be correct with Java 9's compact strings! {code} Yup, this is overestimating based on the patch (https://bugs.openjdk.java.net/browse/JDK-8054307). But I think it's ok -- better to overestimate here and blow up early and there's no way to check which representation (byte or char-based) was actually chosen by the jvm. Yes, we could reimplement the Latin1 vs. UTF16 heuristic, but it seems like an overkill. :) > RAMUsageTester in test-framework and static field checker no longer works > with Java 9 > ------------------------------------------------------------------------------------- > > Key: LUCENE-7595 > URL: https://issues.apache.org/jira/browse/LUCENE-7595 > Project: Lucene - Core > Issue Type: Bug > Components: general/test > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Labels: Java9 > Attachments: LUCENE-7595.patch > > > Lucene/Solr tests have a special rule that records memory usage in static > fields before and after test, so we can detect memory leaks. This check dives > into JDK classes (like java.lang.String to detect their size). As Java 9 > build 148 completely forbids setAccessible on any runtime class, we have to > change or disable this check: > - As first step I will only add the rule to LTC, if we not have Java 8 > - As a second step we might investigate how to improve this > [~rcmuir] had some ideas for the 2nd point: > - Don't dive into classes from JDK modules and instead "estimate" the size > for some special cases (like Strings) > - Disallow any static field in tests that is not final (constant) and points > to an Object except: Strings and native (wrapper) types. > In addition we also have RAMUsageTester, that has similar problems and is > used to compare estimations of Lucene's calculations of > Codec/IndexWriter/IndexReader memory usage with reality. We should simply > disable those tests. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org