RFR: 8245455: Remove alternative StringConcatFactory strategies
Aleksey Shipilev
shade at redhat.com
Fri May 22 21:31:42 UTC 2020
On 5/22/20 3:55 PM, Claes Redestad wrote:
> There are no guarantees any particular fallback is not going to break in
> similar ways or - more likely - bit rot and break sooner. Seeing how all
> but the default strategy sees rather superficial testing in practice, I
> think you are exaggerating the value they provide as a safety net
> against future unknowns.
See below:
> Fixing some bootstrap robustness issues of late has me convinced that
> maintaining and verifying the fallback strategies is not worth our
> while. See e.g. https://bugs.openjdk.java.net/browse/JDK-8218173 -
> fixing this for the fallback strategies might be straightforward (or
> not), but to then verify it's actually fixed would require we add runs
> with $chosen_fallback_strategy to our entire testing for weeks.
The purpose of fallback strategy is to carry users until the fix for default strategy propagates.
Therefore, I believe fallback strategy does not need to fix JDK-8218173. The same way we do not
thoroughly test JVM with changed values of diagnostic flags and instead hoping that switching the
flag in the field would be robust enough to dissect/workaround the bug until the proper fix arrives.
The same way as with diagnostic flags, fallback strategy is tested with simple unit tests, so we
know it is not badly broken.
> So no, I'm not particularly worried about reducing this down to a single
> strategy here and now. We should of course keep investing in SCF to
> ensure it's as robust, performant and well-tested as can be. And of
> course promptly fix any bugs that we discover.
This is a noble goal.
My point is that in pursuing that goal in the one of the most widely deployed pieces of software in
the world, we also need to consider what happens when that pursuit fails. Fallback strategy carries
users until "promptly" happens, which might take days, weeks, months.
I believe not providing a fallback strategy at this time is a mistake. It would be a good time to
drop fallback strategy somewhere after target=11 becomes as ubiquitous as target=8 today. That time
is not now. You can consider this my non-binding dissenting opinion on the issue, if you need formal
consensus to move forward.
--
Thanks,
-Aleksey
More information about the core-libs-dev
mailing list