You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2018/02/12 10:39:05 UTC

[jira] [Updated] (JENA-1485) tdb CLI tools don't work with OpenJDK 8

     [ https://issues.apache.org/jira/browse/JENA-1485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Seaborne updated JENA-1485:
--------------------------------
    Description: 
I have a Debian guest VM running on MacOSX host. Running any `tdb*` utility works on MacOSX but doesn't work on Debian:

{{$ tdbstats --loc=tdb}}

{noformat}
org.apache.jena.tdb.base.file.FileException: BlockMgrMapped.segmentAllocate: Segment = 0
 at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:231)
 at org.apache.jena.tdb.base.file.BlockAccessMapped.getByteBuffer(BlockAccessMapped.java:157)
 at org.apache.jena.tdb.base.file.BlockAccessMapped.allocate(BlockAccessMapped.java:85)
 at org.apache.jena.tdb.base.block.BlockMgrFileAccess.allocate(BlockMgrFileAccess.java:50)
 at org.apache.jena.tdb.base.block.BlockMgrBase.allocate(BlockMgrBase.java:44)
 at org.apache.jena.tdb.base.block.BlockMgrWrapper.allocate(BlockMgrWrapper.java:46)
 at org.apache.jena.tdb.base.block.BlockMgrFreeChain.allocate(BlockMgrFreeChain.java:48)
 at org.apache.jena.tdb.base.page.PageBlockMgr.create(PageBlockMgr.java:51)
 at org.apache.jena.tdb.index.bplustree.BPTreeRecordsMgr.create(BPTreeRecordsMgr.java:79)
 at org.apache.jena.tdb.index.bplustree.BPTreeNodeMgr.createEmptyBPT(BPTreeNodeMgr.java:52)
 at org.apache.jena.tdb.index.bplustree.BPlusTree.createIfAbsent(BPlusTree.java:213)
 at org.apache.jena.tdb.index.bplustree.BPlusTree.create(BPlusTree.java:139)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.createBPTree(DatasetBuilderStd.java:114)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.buildRangeIndex(DatasetBuilderStd.java:80)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.buildIndex(DatasetBuilderStd.java:86)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.buildNodeTable(DatasetBuilderStd.java:353)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable$(DatasetBuilderStd.java:345)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable(DatasetBuilderStd.java:338)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.buildWorker(DatasetBuilderStd.java:215)
 at org.apache.jena.tdb.setup.DatasetBuilderStd._build(DatasetBuilderStd.java:209)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:198)
 at org.apache.jena.tdb.setup.DatasetBuilderStd.create(DatasetBuilderStd.java:143)
 at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:213)
 at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:220)
 at org.apache.jena.tdb.transaction.DatasetGraphTransaction.<init>(DatasetGraphTransaction.java:70)
 at org.apache.jena.tdb.sys.TDBMaker._create(TDBMaker.java:55)
 at org.apache.jena.tdb.sys.TDBMaker.createDatasetGraphTransaction(TDBMaker.java:42)
 at org.apache.jena.tdb.TDBFactory._createDatasetGraph(TDBFactory.java:89)
 at org.apache.jena.tdb.TDBFactory.createDatasetGraph(TDBFactory.java:71)
 at org.apache.jena.tdb.TDBFactory.createDataset(TDBFactory.java:55)
 at tdb.cmdline.ModTDBDataset.createDataset(ModTDBDataset.java:103)
 at arq.cmdline.ModDataset.getDataset(ModDataset.java:36)
 at tdb.cmdline.CmdTDB.getDataset(CmdTDB.java:80)
 at tdb.cmdline.CmdTDB.getDatasetGraph(CmdTDB.java:71)
 at tdb.cmdline.CmdTDB.getDatasetGraphTDB(CmdTDB.java:75)
 at tdb.tdbstats.exec(tdbstats.java:98)
 at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
 at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
 at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
 at tdb.tdbstats.main(tdbstats.java:44)
Caused by: java.io.IOException: Invalid argument
 at sun.nio.ch.FileChannelImpl.map0(Native Method)
 at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:926)
 at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:223)
 ... 39 more
{noformat}

The only difference I could spot was the JDK versions:
 * Debian (64-bit) 

{{openjdk version "1.8.0_131"}}

{{OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)}}

{{OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)}}
 * MacOSX (64-bit)

{{java version "1.8.0_51"}}

{{Java(TM) SE Runtime Environment (build 1.8.0_51-b16)}}

{{Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)}}


  was:
I have a Debian guest VM running on MacOSX host. Running any `tdb*` utility works on MacOSX but doesn't work on Debian:

{{$ tdbstats --loc=tdb}}

{{org.apache.jena.tdb.base.file.FileException: BlockMgrMapped.segmentAllocate: Segment = 0}}{{ at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:231)}}{{ at org.apache.jena.tdb.base.file.BlockAccessMapped.getByteBuffer(BlockAccessMapped.java:157)}}{{ at org.apache.jena.tdb.base.file.BlockAccessMapped.allocate(BlockAccessMapped.java:85)}}{{ at org.apache.jena.tdb.base.block.BlockMgrFileAccess.allocate(BlockMgrFileAccess.java:50)}}{{ at org.apache.jena.tdb.base.block.BlockMgrBase.allocate(BlockMgrBase.java:44)}}{{ at org.apache.jena.tdb.base.block.BlockMgrWrapper.allocate(BlockMgrWrapper.java:46)}}{{ at org.apache.jena.tdb.base.block.BlockMgrFreeChain.allocate(BlockMgrFreeChain.java:48)}}{{ at org.apache.jena.tdb.base.page.PageBlockMgr.create(PageBlockMgr.java:51)}}{{ at org.apache.jena.tdb.index.bplustree.BPTreeRecordsMgr.create(BPTreeRecordsMgr.java:79)}}{{ at org.apache.jena.tdb.index.bplustree.BPTreeNodeMgr.createEmptyBPT(BPTreeNodeMgr.java:52)}}{{ at org.apache.jena.tdb.index.bplustree.BPlusTree.createIfAbsent(BPlusTree.java:213)}}{{ at org.apache.jena.tdb.index.bplustree.BPlusTree.create(BPlusTree.java:139)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.createBPTree(DatasetBuilderStd.java:114)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.buildRangeIndex(DatasetBuilderStd.java:80)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.buildIndex(DatasetBuilderStd.java:86)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.buildNodeTable(DatasetBuilderStd.java:353)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable$(DatasetBuilderStd.java:345)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable(DatasetBuilderStd.java:338)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.buildWorker(DatasetBuilderStd.java:215)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd._build(DatasetBuilderStd.java:209)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:198)}}{{ at org.apache.jena.tdb.setup.DatasetBuilderStd.create(DatasetBuilderStd.java:143)}}{{ at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:213)}}{{ at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:220)}}{{ at org.apache.jena.tdb.transaction.DatasetGraphTransaction.<init>(DatasetGraphTransaction.java:70)}}{{ at org.apache.jena.tdb.sys.TDBMaker._create(TDBMaker.java:55)}}{{ at org.apache.jena.tdb.sys.TDBMaker.createDatasetGraphTransaction(TDBMaker.java:42)}}{{ at org.apache.jena.tdb.TDBFactory._createDatasetGraph(TDBFactory.java:89)}}{{ at org.apache.jena.tdb.TDBFactory.createDatasetGraph(TDBFactory.java:71)}}{{ at org.apache.jena.tdb.TDBFactory.createDataset(TDBFactory.java:55)}}{{ at tdb.cmdline.ModTDBDataset.createDataset(ModTDBDataset.java:103)}}{{ at arq.cmdline.ModDataset.getDataset(ModDataset.java:36)}}{{ at tdb.cmdline.CmdTDB.getDataset(CmdTDB.java:80)}}{{ at tdb.cmdline.CmdTDB.getDatasetGraph(CmdTDB.java:71)}}{{ at tdb.cmdline.CmdTDB.getDatasetGraphTDB(CmdTDB.java:75)}}{{ at tdb.tdbstats.exec(tdbstats.java:98)}}{{ at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)}}{{ at jena.cmd.CmdMain.mainRun(CmdMain.java:58)}}{{ at jena.cmd.CmdMain.mainRun(CmdMain.java:45)}}{{ at tdb.tdbstats.main(tdbstats.java:44)}}{{Caused by: java.io.IOException: Invalid argument}}{{ at sun.nio.ch.FileChannelImpl.map0(Native Method)}}{{ at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:926)}}{{ at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:223)}}{{ ... 39 more}}

The only difference I could spot was the JDK versions:
 * Debian (64-bit) 

{{openjdk version "1.8.0_131"}}

{{OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)}}

{{OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)}}
 * MacOSX (64-bit)

{{java version "1.8.0_51"}}

{{Java(TM) SE Runtime Environment (build 1.8.0_51-b16)}}

{{Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)}}

 

 


> tdb CLI tools don't work with OpenJDK 8
> ---------------------------------------
>
>                 Key: JENA-1485
>                 URL: https://issues.apache.org/jira/browse/JENA-1485
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Cmd line tools
>    Affects Versions: Jena 3.4.0, Jena 3.6.0
>         Environment: Debian:
>  * Debian GNU/Linux 8.10 (jessie)
>  * openjdk-8-jdk:amd64 (8u131-b11-1~bpo8+1)
> openjdk version "1.8.0_131"
> OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
> OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
> MacOSX:
>  * 10.13.3
>  * java version "1.8.0_51"
> Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
> Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
>            Reporter: Slava Krauchanka
>            Priority: Major
>
> I have a Debian guest VM running on MacOSX host. Running any `tdb*` utility works on MacOSX but doesn't work on Debian:
> {{$ tdbstats --loc=tdb}}
> {noformat}
> org.apache.jena.tdb.base.file.FileException: BlockMgrMapped.segmentAllocate: Segment = 0
>  at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:231)
>  at org.apache.jena.tdb.base.file.BlockAccessMapped.getByteBuffer(BlockAccessMapped.java:157)
>  at org.apache.jena.tdb.base.file.BlockAccessMapped.allocate(BlockAccessMapped.java:85)
>  at org.apache.jena.tdb.base.block.BlockMgrFileAccess.allocate(BlockMgrFileAccess.java:50)
>  at org.apache.jena.tdb.base.block.BlockMgrBase.allocate(BlockMgrBase.java:44)
>  at org.apache.jena.tdb.base.block.BlockMgrWrapper.allocate(BlockMgrWrapper.java:46)
>  at org.apache.jena.tdb.base.block.BlockMgrFreeChain.allocate(BlockMgrFreeChain.java:48)
>  at org.apache.jena.tdb.base.page.PageBlockMgr.create(PageBlockMgr.java:51)
>  at org.apache.jena.tdb.index.bplustree.BPTreeRecordsMgr.create(BPTreeRecordsMgr.java:79)
>  at org.apache.jena.tdb.index.bplustree.BPTreeNodeMgr.createEmptyBPT(BPTreeNodeMgr.java:52)
>  at org.apache.jena.tdb.index.bplustree.BPlusTree.createIfAbsent(BPlusTree.java:213)
>  at org.apache.jena.tdb.index.bplustree.BPlusTree.create(BPlusTree.java:139)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.createBPTree(DatasetBuilderStd.java:114)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.buildRangeIndex(DatasetBuilderStd.java:80)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.buildIndex(DatasetBuilderStd.java:86)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.buildNodeTable(DatasetBuilderStd.java:353)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable$(DatasetBuilderStd.java:345)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.makeNodeTable(DatasetBuilderStd.java:338)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.buildWorker(DatasetBuilderStd.java:215)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd._build(DatasetBuilderStd.java:209)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:198)
>  at org.apache.jena.tdb.setup.DatasetBuilderStd.create(DatasetBuilderStd.java:143)
>  at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:213)
>  at org.apache.jena.tdb.StoreConnection.make(StoreConnection.java:220)
>  at org.apache.jena.tdb.transaction.DatasetGraphTransaction.<init>(DatasetGraphTransaction.java:70)
>  at org.apache.jena.tdb.sys.TDBMaker._create(TDBMaker.java:55)
>  at org.apache.jena.tdb.sys.TDBMaker.createDatasetGraphTransaction(TDBMaker.java:42)
>  at org.apache.jena.tdb.TDBFactory._createDatasetGraph(TDBFactory.java:89)
>  at org.apache.jena.tdb.TDBFactory.createDatasetGraph(TDBFactory.java:71)
>  at org.apache.jena.tdb.TDBFactory.createDataset(TDBFactory.java:55)
>  at tdb.cmdline.ModTDBDataset.createDataset(ModTDBDataset.java:103)
>  at arq.cmdline.ModDataset.getDataset(ModDataset.java:36)
>  at tdb.cmdline.CmdTDB.getDataset(CmdTDB.java:80)
>  at tdb.cmdline.CmdTDB.getDatasetGraph(CmdTDB.java:71)
>  at tdb.cmdline.CmdTDB.getDatasetGraphTDB(CmdTDB.java:75)
>  at tdb.tdbstats.exec(tdbstats.java:98)
>  at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
>  at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
>  at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
>  at tdb.tdbstats.main(tdbstats.java:44)
> Caused by: java.io.IOException: Invalid argument
>  at sun.nio.ch.FileChannelImpl.map0(Native Method)
>  at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:926)
>  at org.apache.jena.tdb.base.file.BlockAccessMapped.allocSegment(BlockAccessMapped.java:223)
>  ... 39 more
> {noformat}
> The only difference I could spot was the JDK versions:
>  * Debian (64-bit) 
> {{openjdk version "1.8.0_131"}}
> {{OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)}}
> {{OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)}}
>  * MacOSX (64-bit)
> {{java version "1.8.0_51"}}
> {{Java(TM) SE Runtime Environment (build 1.8.0_51-b16)}}
> {{Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)