[
https://issues.apache.org/jira/browse/IGNITE-12271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16947541#comment-16947541
]
Alexey Goncharuk commented on IGNITE-12271:
-------------------------------------------
[~ilyak], I do not think the suggested change is correct. Instead of using a
native byte order all over the code, we need to have a single place where byte
order is specified (via configuration or system property) and use this value in
the places you changed.
The reason for this is that it would be good to have persistence files created
on one architecture, copied to another architecture, and a node should
successfully start. This can be done only if we have the same byte order for
both runs.
> Persistence can't read pages from disk on Big Endian architectures
> ------------------------------------------------------------------
>
> Key: IGNITE-12271
> URL: https://issues.apache.org/jira/browse/IGNITE-12271
> Project: Ignite
> Issue Type: Bug
> Components: persistence
> Reporter: Ilya Kasnacheev
> Assignee: Ilya Kasnacheev
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> So we are trying to start master on Big Endian, and we get the following
> exceptions:
> {code}
> Runtime failure on row: Row@5bf1ee15[ snip, ver: GridCacheVersion
> [topVer=180723326, order=1569259166164, nodeOrder=1] ][ 1307496, 32211, 3, 0
> ]" [50000-197]
> at
> org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
> ... 41 more
> Caused by: class
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
> Runtime failure on row: Row@5bf1ee15[ snip], ver: GridCacheVersion
> [topVer=180723326, order=1569259166164, nodeOrder=1] ][ 1307496, 32211, 3, 0 ]
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2320)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putx(BPlusTree.java:2267)
> at
> org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:323)
> ... 38 more
> Caused by: java.lang.IllegalStateException: Failed to get page IO instance
> (page content is corrupted)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forVersion(IOVersions.java:84)
> at
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forPage(IOVersions.java:96)
> at
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:153)
> at
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:107)
> at
> org.apache.ignite.internal.processors.query.h2.database.H2RowFactory.getRow(H2RowFactory.java:61)
> at
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.createRowFromLink(H2Tree.java:221)
> at
> org.apache.ignite.internal.processors.query.h2.database.io.AbstractH2ExtrasLeafIO.getLookupRow(AbstractH2ExtrasLeafIO.java:153)
> at
> org.apache.ignite.internal.processors.query.h2.database.io.AbstractH2ExtrasLeafIO.getLookupRow(AbstractH2ExtrasLeafIO.java:35)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)