I wonder if the JNA handles we track need to be volatile. What if disposed
gets called more than once from different threads?

We should get rid of the finalize method unless we know we cannot manage
the object ourselves properly.

Gary

On Fri, Aug 28, 2015 at 11:16 AM, sebb <seb...@gmail.com> wrote:

> On 28 August 2015 at 18:41, Gary Gregory <garydgreg...@gmail.com> wrote:
> > On Fri, Aug 28, 2015 at 10:33 AM, Oleg Kalnichevski <ol...@apache.org>
> > wrote:
> >
> >> On Fri, 2015-08-28 at 17:05 +0000, Alexander Bernstein wrote:
> >> > JNA people suggested I report this against Http Client. What should I
> >> do? Can you tell me where the defects should be submitted?
> >> > Thanks , Oleg
> >> >
> >>
> >> Really? What can we possibly do about GPF caused by native code in JNA?
> >> If we do something stupid on our end JNA should throw a meaningful
> >> exception telling us that we attempted to do something stupid.
>
> Exactly; it should not be possible to crash the JVM from Java code.
> [Though if one plays with the "unsafe" package that might not be true]
>
> >>
> >
> > But how could JNA know that a pointer passed to any API is bogus?
>
> JNA needs to check everything sent to it and throw a suitable
> exception if there are problems.
> Native code must be ultra-defensive.
>
> Most of the pointer manipulation is going to be in JNA anyway.
> Java does not deal in pointers directly, that is the JVM's job.
>
> > I could
> > see that JNA's Win32 coverage of these APIs might be faulty though... We
> > need better unit tests perhaps.
>
> Not our problem, though of course if we can reliably crash the JVM the
> JNA developers ought to be happy that we have found a good test case.
>
> > Gary
> >
> >
> >>
> >> Oleg
> >>
> >> >       From: Oleg Kalnichevski <ol...@apache.org>
> >> >  To: Alexander Bernstein <alexbernstein1...@yahoo.com>
> >> > Cc: "httpclient-users@hc.apache.org" <httpclient-users@hc.apache.org>
> >> >  Sent: Thursday, August 27, 2015 4:18 AM
> >> >  Subject: Re: GPF in WindowsNegotiateScheme.dispose()
> >> >
> >> > On Wed, 2015-08-26 at 20:07 +0000, Alexander Bernstein wrote:
> >> >
> >> >
> >> > > Hello,
> >> > > I am new here, please pardon if this is not the right place for this
> >> kind of question.
> >> > > I am using httpclient-win-4.5 from httpClient 4.5 and
> >> jna-4.1.0/jna-platform-4.1.0 JNA libraries to authenticate to Kerberos
> >> server from Eclipse-based application.
> >> > > I create my client from WinHttpClients.custom(). The authentication
> is
> >> successful, but sooner or later, when JVM calls
> >> WindowsNegotiateScheme.dispose() my Eclipse crashes with GPF.
> >> > > I noticed that WindowsNegotiateSchemeFactory.create() is called
> twice,
> >> for some reason. Not sure if this is a normal flow and/or is relevant to
> >> the problem.
> >> > >
> >> > > 1XMCURTHDINFO  Current thread
> >> > > NULL          ----------------------
> >> > > 3XMTHREADINFO      "Finalizer thread" J9VMThread:0x0000000003FD1B00,
> >> j9thread_t:0x00000000050C1F10, java/lang/Thread:0x000007FFDE5E2800,
> >> state:R, prio=5
> >> > > 3XMJAVALTHREAD            (java/lang/Thread getId:0x15,
> isDaemon:true)
> >> > > 3XMTHREADINFO1            (native thread ID:0xCBC, native
> >> priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread
> flags:0x00000000)
> >> > > 3XMTHREADINFO3          Java callstack:
> >> > > 4XESTACKTRACE                at com/sun/jna/Native.setPointer(Native
> >> Method)
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Pointer.setPointer(Pointer.java:1195)
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Memory.setPointer(Memory.java:658)
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Pointer.setValue(Pointer.java:937)
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Structure.writeField(Structure.java:800)
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Structure.write(Structure.java:718(Compiled Code))
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Structure.autoWrite(Structure.java:1923(Compiled Code))
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Function.convertArgument(Function.java:505(Compiled Code))
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Function.invoke(Function.java:297(Compiled Code))
> >> > > 4XESTACKTRACE                at
> >> com/sun/jna/Library$Handler.invoke(Library.java:212)
> >> > > 4XESTACKTRACE                at
> >> com/sun/proxy/$Proxy13.FreeCredentialsHandle(Bytecode PC:18)
> >> > > 4XESTACKTRACE                at
> >>
> org/apache/http/impl/auth/win/WindowsNegotiateScheme.dispose(WindowsNegotiateScheme.java:99)
> >> > > 4XESTACKTRACE                at
> >>
> org/apache/http/impl/auth/win/WindowsNegotiateScheme.finalize(WindowsNegotiateScheme.java:117)
> >> > > 4XESTACKTRACE                at
> >> java/lang/J9VMInternals.runFinalize(J9VMInternals.java:436)
> >> > > 3XMTHREADINFO3          No native callstack available on this
> platform
> >> > > NULL
> >> > > Appreciate any help and suggestions.Thank you
> >> > > Alex Bernstein
> >> >
> >> > No matter what we might be doing wrong on our end this still looks
> like
> >> > something that should not be happening.
> >> >
> >> > You probably should report the issue to JNA developers.
> >> >
> >> > https://github.com/java-native-access
> >> >
> >> > Oleg
> >> >
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> >> > For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> >> >
> >> >
> >> >
> >> >
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> >> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> >>
> >>
> >
> >
> > --
> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> > Java Persistence with Hibernate, Second Edition
> > <http://www.manning.com/bauer3/>
> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> > Spring Batch in Action <http://www.manning.com/templier/>
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to