On 28 August 2015 at 18:41, Gary Gregory <[email protected]> wrote:
> On Fri, Aug 28, 2015 at 10:33 AM, Oleg Kalnichevski <[email protected]>
> 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 <[email protected]>
>> >  To: Alexander Bernstein <[email protected]>
>> > Cc: "[email protected]" <[email protected]>
>> >  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: [email protected]
>> > For additional commands, e-mail: [email protected]
>> >
>> >
>> >
>> >
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> --
> E-Mail: [email protected] | [email protected]
> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to