You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Pavel Tupitsyn (JIRA)" <ji...@apache.org> on 2015/11/10 17:36:11 UTC

[jira] [Created] (IGNITE-1884) .Net: JNI local ref can't be accessed from another thread

Pavel  Tupitsyn created IGNITE-1884:
---------------------------------------

             Summary: .Net: JNI local ref can't be accessed from another thread
                 Key: IGNITE-1884
                 URL: https://issues.apache.org/jira/browse/IGNITE-1884
             Project: Ignite
          Issue Type: Bug
          Components: interop
    Affects Versions: 1.1.4
            Reporter: Pavel  Tupitsyn
            Assignee: Pavel  Tupitsyn
             Fix For: 1.5


Documentation: https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html

{code}
Local references are only valid in the thread in which they are created. The native code must not pass local references from one thread to another.
{code}

We have two places where we DO pass local JNI reference to another thread:
* CacheParallelLoadStoreAdapter
* CacheTestStore.LoadCache

For some reason it has worked for us before.
But renamings in IGNITE-1881 have caused test execution order to change, and these store tests cause process crash.

To reproduce, BinaryBuilderSelfTest (former PortableApiSelfTest) has to be executed before store tests. All other tests can be excluded. 100% repro rate: "FATAL ERROR in native method: Bad global or local ref passed to JNI".




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)