Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-19 Thread Ron Pressler
I fully understand why authors of (truly excellent, in your case!) advanced serviceability agents would see any feature that could affect their area of interest as a problem, but you surely understand that our responsibility is toward a far larger ecosystem. Even the ultimate restriction — which

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-19 Thread Andrei Pangin
Hi Ron, I reviewed integrity JEPs once again along with this email thread and I think there are several flaws in the proposal that need to be addressed before implementation. 1. First, the JEP draws equality between an agent and an instrumenting agent, which is not true. Instrumentation i

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-19 Thread Ron Pressler
Because the discussion of this JEP has veered in many directions, let me summarise where we are: This JEP proposes to emit a suppressible warning when a JVM TI or Java agent is loaded into a JVM sometime after startup through the Attach mechanism. The warning helps make users aware that an agen

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
> On 18 May 2023, at 23:52, Kirk Pepperdine wrote: > >> >> By “restricted” we mean “disallowed by default unless the application allows >> it.” We try to use that terminology consistently. In this JEP we’re just >> “preparing to restrict”, which means that unless explicitly allowed by the >

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Kirk Pepperdine
> On May 18, 2023, at 2:55 PM, Ron Pressler wrote: > > >> On 18 May 2023, at 21:45, Kirk Pepperdine wrote: >> >> Hi Ron, >> >> And in that JEP there is... >> >> "To attain our goal of integrity by default, we will gradually restrict >> these APIs and close all loopholes in a series of up

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
> On 18 May 2023, at 21:45, Kirk Pepperdine wrote: > > Hi Ron, > > And in that JEP there is... > > "To attain our goal of integrity by default, we will gradually restrict these > APIs and close all loopholes in a series of upcoming JEPs, ensuring that no > library can assume superpowers with

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Kirk Pepperdine
Hi Ron, And in that JEP there is... "To attain our goal of integrity by default, we will gradually restrict these APIs and close all loopholes in a series of upcoming JEPs, ensuring that no library can assume superpowers without the application's consent. Libraries that rely on these APIs shou

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
The explanation is given in the informational JEP: https://openjdk.org/jeps/8305968 The problem is not any superpowered functionality, but superpowered functionality that isn’t explicitly allowed by the application and used by libraries without the application’s explicit consent. Both the -java

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Kirk Pepperdine
Hi Ron, Thanks for the reply. The way I see this is that we have functionality that can be accessed either via a dynamic attach pathway and a direct attach pathway. What I’m trying to reconcile is how shutting down the dynamic attach pathway helps with code integrity given that I can use the di

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Jack Shirazi
Let's actually see whether my reports are helpful or not, since you ignored at least four out six. I'll focus on one at a time so that we can exactly identify the consequences. Scenario 1 (it's still in the thread below) are customers who CAN change their command line. But they are inexperienc

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
Look, we have two goals: 1. Due to the reasons explained in the informational JEP, libraries must not be allowed to grant themselves superpowers by means of injecting agents into their host application. 2. We’d like to minimise the impact on honest-to-god serviceability tools that actually *ha

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
You will be able to perform dynamic attach even without the flag (the flag is *not* required for dynamic attach, only for using dynamic attach to load agents). With the flag, your dynamic attach will be able load an agent into the target VM. BTW, LTS is something that’s governed by Oracle Sales

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Kirk Pepperdine
Hi All, With this change, will I be able to perform a dynamic attach if I opt in using the command line switch in JDK 25 (which I believe is the next LTS). Kind regards, Kirk > On May 18, 2023, at 9:31 AM, Ron Pressler wrote: > > First, you will need to accept that no one is as invested in t

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Jack Shirazi
I have repeatedly suggested, on the original jdk-dev thread, that this needs to be taken to a wider audience. Each time that request was ignored. These email lists are niche, and are popuated by subscribers who are interested in technical development of the JVM, which is entirely the wrong audi

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
First, you will need to accept that no one is as invested in the user experience of the Java ecosystem as a whole as much as OpenJDK’s maintainers, and no one is as incentivised to work toward its continued success. If you don’t believe it, you will still need to accept it axiomatically if you w

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Jack Shirazi
You asked for reports of common uses of dynamically loaded agents for serviceability and difficulties setting a flag. I have provided several. You have ignored most of the examples, and categorized the remainder as "incorrect uses of Java" (by which I assume you mean incorrect uses of JVMs), as

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
It is simply untenable to accommodate many incorrect uses of Java on top of the correct ones, and, for example, allowing the dynamic loading of agents but disallowing loading them at startup is an incorrect use of Java. The solution to people using Java incorrectly is to educate them — which thi

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Jack Shirazi
That's a strange analysis, two out of the six examples of well known real world applications, systems and platforms has that claim. And these are well known. I'm not sure where most of your comments come from, but let me assume this isn't just a blanket dismissal because you're the JEP sponsor

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
> On 18 May 2023, at 14:27, Mike Hearn wrote: > > Right, for agent loading it probably doesn't matter. I think the reaction is > to the general direction of travel. Panama also requires a command line flag, > JNI may do so in future, maybe other features. The latter would cause any fat > jar

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Mike Hearn
Right, for agent loading it probably doesn't matter. I think the reaction is to the general direction of travel. Panama also requires a command line flag, JNI may do so in future, maybe other features. The latter would cause any fat jar app that does self-extraction of native code to break. That's

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Ron Pressler
Just to be clear, the abilities of executable JARs have not been limited in recent years any more than they had been before. When JEP 261 added the --add-exports and --add-opens options and disabled self-attach it also added the Add-Opens, Add-Exports, and Launcher-Agent-Class manifest attribute

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-18 Thread Mike Hearn
The JDK *allows* bundling a JVM since 9 and makes it *possible* since about 15 (jpackage), but still doesn't make it *easy* like throwing a JAR around was easy. Although you discuss market demand here, the market isn't really united on what it wants in this case. Eliminating deployment complexity

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Ron Pressler
> On 17 May 2023, at 23:01, Gregg Wonderly wrote: > > Again, the supposition here, is that somehow anyone who once built an > application into a jar file that is in use today, can somehow cause a release > of a new version of the JDK that appears in a user’s environment, to > correlate with

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Gregg Wonderly
> On May 17, 2023, at 4:33 PM, Ron Pressler wrote: > > But keep in mind that since Java has shifted away from the JRE model, > self-contained Java applications are encouraged to use jlink to embed their > own runtime and pick their arbitrary command-line options rather than rely on > execut

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Ron Pressler
> On 17 May 2023, at 20:34, Gregg Wonderly wrote: > > The first thrust of Java deployment was Applets which used no “command line” > and automatically deployed and “secured” the Java environment. Next was the > automatic recognition of .jar files on the Windows environment (file type > mapp

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Gregg Wonderly
> On May 16, 2023, at 12:22 PM, Ron Pressler wrote: > > At the core of your arguments is the claim — that we’ve heard told > second-hand but rarely if ever reported first-hand — that the inability to > control the command line is common. This claim is very important because its > implicatio

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Gregg Wonderly
> On May 15, 2023, at 8:56 AM, Ron Pressler wrote: > >> >> The issue is that release-specific code may need to use deep reflection to >> fix bugs or compensate for limitations in a specific set of JDK releases. > > But mucking about with JDK internals requires the application’s approval as

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Brice Dutheil
> > For white-box testing of code in user modules, build tools and testing frameworks should automatically emit --add-exports, --add-opens, and --patch-module for the module under test, as appropriate (for example, patching the module under test with the contents of the test module allows the testi

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-17 Thread Ron Pressler
> On 15 May 2023, at 23:24, Brice Dutheil wrote: > > Hi, > > I do share some concerns of the community, however many have voiced it with a > better english that I could ever do. But I'd like to mention two things: > > 1. There is another usage that I think will be visibly impacted : in tests

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-16 Thread Gregg G Wonderly
I appreciate your feedback. But I still contend that there is little understanding of all the doors that changes to the Java and problems with changes to the platform have closed. I’ve invested a large part of my career to the use of Java. But, because of numerous things, I can no longer get

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-16 Thread Ron Pressler
At the core of your arguments is the claim — that we’ve heard told second-hand but rarely if ever reported first-hand — that the inability to control the command line is common. This claim is very important because its implications go well beyond the relatively niche issue of dynamically loaded

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-16 Thread Jack Shirazi
Here I refer to anyone who is operating the JVM as a customer. Scenarios where this JEP will (when moved from deprecation to fully applied) onerously adversely impact customers include: 1. Most obviously, those customers who have running JVMs, decide they want to add an observability agent, bu

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-15 Thread Brice Dutheil
Hi, I do share some concerns of the community, however many have voiced it with a better english that I could ever do. But I'd like to mention two things: 1. There is another usage that I think will be visibly impacted : in tests it's often necessary to alter part of the system to stress some par

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-15 Thread Ron Pressler
> On 14 May 2023, at 21:28, Alan Snyder wrote: > > >> On May 14, 2023, at 6:07 PM, Ron Pressler wrote: >> >> You can continue using JNI, but the application on newer releases will need >> to allow it. But the way to target multiple releases in a general and >> elegant way is with multi-rel

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-14 Thread Alan Snyder
> On May 14, 2023, at 6:07 PM, Ron Pressler wrote: > > You can continue using JNI, but the application on newer releases will need > to allow it. But the way to target multiple releases in a general and elegant > way is with multi-release JARs. Multi-release JARs may be better than conditiona

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-14 Thread Ron Pressler
> On 14 May 2023, at 19:45, Alan Snyder wrote: > > Interesting discussion. > > I’m more worried about JNI. Can you say anything about how you see JNI being > restricted? Probably in the exact same was as FFM, i.e. with the --enable-native-access flag. > > I use JNI not only to access nati

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-14 Thread Alan Snyder
Interesting discussion. I’m more worried about JNI. Can you say anything about how you see JNI being restricted? I use JNI not only to access native services but also to work around bugs or limitations in the JDK using its unrestricted reflection. As a library developer, I want my library to wo

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-14 Thread Ron Pressler
> On 12 May 2023, at 18:01, Kirk Pepperdine wrote: > > Hi Ron, > > I’m trying to work through some confusion and past 3 levels of discomfort. > The confusion is, the JEP talks about code integrity and that agents (both > directly and dynamically attached) have the ability to alter loaded cod

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-14 Thread Andrew Dinn
On 13/05/2023 00:42, Gregg G Wonderly wrote: I find it petty that “we know best” or “it’s our way of the highway” becoming a pretty common thing in the “evolution” of Java “by Oracle”. The open-JDK community ultimately can end up quite distances from “Oracle Java”. It seems there is an agend

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-12 Thread Alex Buckley
On 5/12/2023 4:42 PM, Gregg G Wonderly wrote: The removal of the security manager is a big deal. Jini, now River has counted on mobile code, controlled by the security manager for decades. Visibility of many of the uses has always been problematic because of the benefits the speed of the platform

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-12 Thread Gregg G Wonderly
Sent from my iPhone > On May 12, 2023, at 1:29 PM, Ron Pressler wrote: > > (Moving to the appropriate mailing lists for the discussion of this JEP) …. > By physical necessity we sometimes inconvenience some users because users > have contradictory requirements. What we’re trying to estimat

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-12 Thread Kirk Pepperdine
Hi Ron, I’m trying to work through some confusion and past 3 levels of discomfort. The confusion is, the JEP talks about code integrity and that agents (both directly and dynamically attached) have the ability to alter loaded code. That the JEP paints the capability in a “bad light” is judgment

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-12 Thread Ron Pressler
(Moving to the appropriate mailing lists for the discussion of this JEP) We want reports of common uses of dynamically loaded agents for serviceability and difficulties setting a flag. Our judgment will sway if we learn that the use of dynamically loaded agents for serviceability is very common

Re: [External] : Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-11 Thread Ron Pressler
> On 10 May 2023, at 07:07, Volker Simonis wrote: > > > I still wonder why this JEP has scope "SE"? During the discussion > about the draft (which was initially about "disallowing by default") > it was mentioned that once dynamic loading will be disabled by > default, this will be mandated in

Re: New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-10 Thread Volker Simonis
On Mon, May 8, 2023 at 9:17 PM Mark Reinhold wrote: > > https://openjdk.org/jeps/451 > > Summary: Issue warnings when agents are loaded dynamically into a > running JVM. These warnings aim to prepare users for a future release > which disallows the dynamic loading of agents by default in ord

New candidate JEP: 451: Prepare to Disallow the Dynamic Loading of Agents

2023-05-08 Thread Mark Reinhold
https://openjdk.org/jeps/451 Summary: Issue warnings when agents are loaded dynamically into a running JVM. These warnings aim to prepare users for a future release which disallows the dynamic loading of agents by default in order to improve integrity by default. Serviceability tools that