[ 
https://issues.apache.org/jira/browse/IGNITE-5966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118185#comment-16118185
 ] 

ASF GitHub Bot commented on IGNITE-5966:
----------------------------------------

GitHub user kukushal opened a pull request:

    https://github.com/apache/ignite/pull/2412

    IGNITE-5966 IgniteCache#get() fails with "Requesting mapping from grid 
failed" when deserialising binary object loaded from CacheJdbcPojoStoreFactory

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-5966

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/2412.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2412
    
----
commit 1e08c3fb5c02ec8acafd71b50b6ad3b749259f1a
Author: Andrey V. Mashenkov <andrey.mashen...@gmail.com>
Date:   2017-07-31T11:14:56Z

    IGNITE-4800: Lucene query may fails with NPE. This closes #2315.

commit 3fdf453e89a7bd76dff6b6d0646e3821ea3921d5
Author: Andrey V. Mashenkov <andrey.mashen...@gmail.com>
Date:   2017-07-31T14:32:12Z

    IGNITE-4800: Lucene query may fails with NPE.
    Test fixed.

commit e255a564985a12113984ec02f15a4443495b8ffc
Author: Nikolay Izhikov <nizhikov....@gmail.com>
Date:   2017-08-02T08:52:44Z

    ignite-5712 Context switching for optimistic transactions

commit 772d462b68c7de8517d1f61e2e05ec8eefb18eac
Author: Alexey Kuznetsov <akuznet...@apache.org>
Date:   2017-08-03T04:55:15Z

    Merge branch ignite-2.1.3 into ignite-2.1.4

commit 0f22223b7ca25313083e4dc35e7842931a655abd
Author: tledkov-gridgain <tled...@gridgain.com>
Date:   2017-08-04T08:46:14Z

    IGNITE-5126: Batch support for this JDBC driver. This closes #2162.

commit d1a74a4be8744528e6ed23706174041ddb0f2618
Author: devozerov <voze...@gridgain.com>
Date:   2017-08-04T09:04:38Z

    Merge remote-tracking branch 'upstream/ignite-2.1.4' into ignite-2.1.4

commit 0b3a9a7176f5ae44a96ecf700c8147193dfbf064
Author: Igor Sapego <isap...@gridgain.com>
Date:   2017-08-04T10:18:00Z

    IGNITE-5923: ODBC: SQLGetTypeInfo now works with SQL_ALL_TYPES
    
    (cherry picked from commit 48c914d)

commit 4e0385fbc0f50548f2da3407fdfdfe939b463c67
Author: Igor Sapego <isap...@gridgain.com>
Date:   2017-08-04T15:34:27Z

    IGNITE-5939: ODBC: SQLColAttributes now works with legacy attribute codes.
    
    (cherry picked from commit 70ffa2c)

commit 4f02504475fd1e5cc3b9f4754856e44d20fdc1cb
Author: Alexey Kuznetsov <akuznet...@apache.org>
Date:   2017-08-07T02:41:22Z

    Merge branch ignite-2.1.3 into ignite-2.1.4.

commit 11d7f437455451efe69ac1a757a103454edb6342
Author: Alexey Kukushkin <alexeykukush...@yahoo.com>
Date:   2017-08-08T10:50:39Z

    fixed

----


> IgniteCache#get() fails with "Requesting mapping from grid failed" when 
> deserialising binary object loaded from CacheJdbcPojoStoreFactory
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-5966
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5966
>             Project: Ignite
>          Issue Type: Bug
>         Environment: Ignite 2.1.4
>            Reporter: Alexey Kukushkin
>            Assignee: Alexey Kukushkin
>             Fix For: 2.2
>
>
> STEPS TO REPRODUCE
> 1. A running MySQL database with at least one table with an Integer key and 
> some data
> 2. Use WebConsole to automatically generate an Ignite project from the RDBMS. 
> In the WebConsole add a cache for the table containing data
> 3. Build the project
> 4. Start the cluster (run ServerNodeSpringStartup)
> 5. Load the data (run LoadCaches)
> 6. Run simple "get data" code against the running cluster with the data 
> loaded. Make sure you do NOT keep binary and do NOT put anything to the cache 
> except loading data on step #5. For example, if the cache is "AircraftCache", 
> the type is "Aircraft" and a row with ID 1 exists in the DB, then:
> IgniteCache<Integer, Aircraft> aircraftCache = 
> ignite.getOrCreateCache("AircraftCache");
> System.out.format("1->%s\n", aircraftCache.get(1));
> EXPECTED:
> 1...5: Project is generated, cluster runs, data is loaded
> 6: The entry with ID 1 is output to the console
> ACTUAL:"
> 1..5: As expected
> 6: javax.cache.CacheException: class 
> org.apache.ignite.IgniteCheckedException: Requesting mapping from grid failed 
> for [platformId=0, typeId=-1267085398]
> ANALYSIS
> The “typeId -> MappedName” mappings are stored in the 
> MarshallerContextImpl$allCaches[platformId] map.
> My understanding is according to the existing implementations it is expected 
> the mapping will always be registered when BinaryContext#descriptorForClass() 
> -> MarshallerContextImpl#registerClassName(typeId) is called either from 
> BinaryWriterExImpl or BinaryReaderExImpl.
> However, that mechanism is never called when 
> CacheJdbcPojoStore@buildBinaryObject builds the object, calling 
> BinaryObjectBuilderImpl#build(). The latter method still requests 
> BinaryContext#updateMetadata, which updates 
> CacheObjectBinaryProcessorImpl#metadataFileStore on all server nodes. But the 
> metadataFileStore is not the place where MarshallerContextImpl get mappings 
> from.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to