You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Jean-Louis Monteiro <jl...@tomitribe.com> on 2019/08/15 11:32:39 UTC

Javaagent attach issue for Java9+

Hi,

This is a follow up of https://issues.apache.org/jira/browse/TOMEE-2619
When running on Java9+, the JVM does not allow anymore to attach an
instrumentation to the current JVM (self), unless you add the
flag -Djdk.attach.allowAttachSelf which is off by default.

So currently our javaagent required for OpenJPA for instance fail

> Caused by: java.io.IOException: Can not attach to current VM
>  at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.<init>(HotSpotVirtualMachine.java:75)
>  at jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:56)
>  at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
>  at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
>  ... 43 more
> INFO - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested installation of a ClassFileTransformer which requires a JavaAgent.  See http://tomee.apache.org/javaagent.html
>
>
I looked at different options.
Of course short term, I'll go with adding the flag so we can focus on Java
11 support.
Long term, I'm wondering if we should have some trick like bytebuddy which
does a very good job. See discussion
https://github.com/raphw/byte-buddy/issues/295

and the agent attach code
https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent/src/main/java/net/bytebuddy/agent/ByteBuddyAgent.java#L659

What do you guys think?
Anyone willing to contribute that to TomEE?

ByteBuddy is ASL v2, so we can of course reuse some of its code.

--
Jean-Louis Monteiro
http://twitter.com/jlouismonteiro
http://www.tomitribe.com

Re: Javaagent attach issue for Java9+

Posted by Jean-Louis Monteiro <jl...@tomitribe.com>.
Yes it does work. If Java is 9+ then it uses a forked process to attach the
agent. If before then usual attach should work.

Le ven. 16 août 2019 à 14:46, Jonathan Gallimore <
jonathan.gallimore@gmail.com> a écrit :

> Adding the flag seems reasonable. Does the Bytebuddy-style workaround still
> work for earlier Java versions?
>
> Jon
>
> On Thu, Aug 15, 2019 at 12:32 PM Jean-Louis Monteiro <
> jlmonteiro@tomitribe.com> wrote:
>
> > Hi,
> >
> > This is a follow up of https://issues.apache.org/jira/browse/TOMEE-2619
> > When running on Java9+, the JVM does not allow anymore to attach an
> > instrumentation to the current JVM (self), unless you add the
> > flag -Djdk.attach.allowAttachSelf which is off by default.
> >
> > So currently our javaagent required for OpenJPA for instance fail
> >
> > > Caused by: java.io.IOException: Can not attach to current VM
> > >  at
> >
> jdk.attach/sun.tools.attach.HotSpotVirtualMachine.<init>(HotSpotVirtualMachine.java:75)
> > >  at
> >
> jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:56)
> > >  at
> >
> jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
> > >  at
> >
> jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
> > >  ... 43 more
> > > INFO - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
> > installation of a ClassFileTransformer which requires a JavaAgent.  See
> > http://tomee.apache.org/javaagent.html
> > >
> > >
> > I looked at different options.
> > Of course short term, I'll go with adding the flag so we can focus on
> Java
> > 11 support.
> > Long term, I'm wondering if we should have some trick like bytebuddy
> which
> > does a very good job. See discussion
> > https://github.com/raphw/byte-buddy/issues/295
> >
> > and the agent attach code
> >
> >
> https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent/src/main/java/net/bytebuddy/agent/ByteBuddyAgent.java#L659
> >
> > What do you guys think?
> > Anyone willing to contribute that to TomEE?
> >
> > ByteBuddy is ASL v2, so we can of course reuse some of its code.
> >
> > --
> > Jean-Louis Monteiro
> > http://twitter.com/jlouismonteiro
> > http://www.tomitribe.com
> >
>

Re: Javaagent attach issue for Java9+

Posted by Jonathan Gallimore <jo...@gmail.com>.
Adding the flag seems reasonable. Does the Bytebuddy-style workaround still
work for earlier Java versions?

Jon

On Thu, Aug 15, 2019 at 12:32 PM Jean-Louis Monteiro <
jlmonteiro@tomitribe.com> wrote:

> Hi,
>
> This is a follow up of https://issues.apache.org/jira/browse/TOMEE-2619
> When running on Java9+, the JVM does not allow anymore to attach an
> instrumentation to the current JVM (self), unless you add the
> flag -Djdk.attach.allowAttachSelf which is off by default.
>
> So currently our javaagent required for OpenJPA for instance fail
>
> > Caused by: java.io.IOException: Can not attach to current VM
> >  at
> jdk.attach/sun.tools.attach.HotSpotVirtualMachine.<init>(HotSpotVirtualMachine.java:75)
> >  at
> jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:56)
> >  at
> jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
> >  at
> jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
> >  ... 43 more
> > INFO - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
> installation of a ClassFileTransformer which requires a JavaAgent.  See
> http://tomee.apache.org/javaagent.html
> >
> >
> I looked at different options.
> Of course short term, I'll go with adding the flag so we can focus on Java
> 11 support.
> Long term, I'm wondering if we should have some trick like bytebuddy which
> does a very good job. See discussion
> https://github.com/raphw/byte-buddy/issues/295
>
> and the agent attach code
>
> https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent/src/main/java/net/bytebuddy/agent/ByteBuddyAgent.java#L659
>
> What do you guys think?
> Anyone willing to contribute that to TomEE?
>
> ByteBuddy is ASL v2, so we can of course reuse some of its code.
>
> --
> Jean-Louis Monteiro
> http://twitter.com/jlouismonteiro
> http://www.tomitribe.com
>