Bug 1231303
Summary: | Unable to query Modeshape using ModeShape.vdb | ||
---|---|---|---|
Product: | [JBoss] JBoss Data Virtualization 6 | Reporter: | Van Halbert <vhalbert> |
Component: | Integration, Teiid, ModeShape | Assignee: | Horia Chiorean <hchiorea> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 6.2.0 | CC: | aszczucz, felias, jolee, jstastny, vhalbert |
Target Milestone: | CR1 | Keywords: | QA-Closed |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-02-10 08:55:35 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1231758 | ||
Bug Blocks: |
Comment 1
Horia Chiorean
2015-06-15 11:08:18 UTC
Note that there is a workaround for the Hibernate Search issue, but it requires Teiid to change its main module descriptor and add either: <module name="org.hibernate.search.engine" /> or <module name="org.modeshape" /> as a dependency. Since Teiid/main already has org.jgroups as a dependency, adding either of the above dependencies to the module descriptor would ensure that in the "effective" classpath chain JGroups would be available to Hibernate Search. I personally consider this a hack though, since the correct solution is for EAP to fix Hibernate Search's module descriptor. The relevant ModeShape fix (which caused the original exception) has been merged in the DV 6.2 branch: https://github.com/jboss-integration/modeshape/commit/eb79d2766382175ced2f3118b15c9e5c6e5ccf9f For this to be fully fixed however, either: a) EAP has to fix the Hibernate Search issue (see above) b) Teiid has to patch their main module.xml both of which are not controlled by ModeShape. On DV 6.2.0 ER3 there is different exception thrown when querying. Enclosing example of a query which causes it, but the same happens for all the queries tested: Connected via: "jdbc:teiid:ModeShape@mm://localhost:31000;useJDBC4ColumnNameAndLabelSemantics=false" user:password - user:user Query sent to Modeshape.vdb: "Select * From ddl_addTableConstraintDefinition" Exception thrown: org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 ModeShape: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135) at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71) at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:667) at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:63) at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:515) at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135) at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40) at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79) at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:264) at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:302) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98) at com.sun.proxy.$Proxy6.read(Unknown Source) at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:401) at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:524) at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:1033) at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:312) at org.jboss.bqt.framework.AbstractQuery.execute(AbstractQuery.java:208) at org.jboss.bqt.client.testcase.ProcessResults.executeTest(ProcessResults.java:280) at org.jboss.bqt.client.testcase.ProcessResults.runTestCase(ProcessResults.java:160) at org.jboss.bqt.client.TestClient.runScenario(TestClient.java:209) at org.jboss.bqt.client.TestClient.runTest(TestClient.java:132) at org.jboss.bqt.client.TestClient.runTest(TestClient.java:113) at org.jboss.qe.bqt.BQTHelper.startTest(BQTHelper.java:59) at org.jboss.dv.test.bqt.Utils.runScenarioTest(Utils.java:197) at org.jboss.dv.test.bqt.TestPassFour.test(TestPassFour.java:150) at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) at org.testng.TestRunner.privateRun(TestRunner.java:767) at org.testng.TestRunner.run(TestRunner.java:617) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) at org.testng.TestNG.run(TestNG.java:1031) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:108) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70) Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 ModeShape: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:381) at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:154) at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:369) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:136) at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151) at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:159) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:141) at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:444) at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:326) at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:254) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.teiid.core.TeiidException: 0 Remote org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) ... 6 more Caused by: java.sql.SQLException: Remote java.sql.SQLException: Error at org.jboss.jca.adapters.jdbc.WrappedConnection.checkException(WrappedConnection.java:1648) at org.jboss.jca.adapters.jdbc.WrappedStatement.checkException(WrappedStatement.java:1267) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:349) at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:119) ... 12 more Caused by: java.lang.NullPointerException: Remote java.lang.NullPointerException: null at org.modeshape.jcr.txn.Transactions$NestableThreadLocalTransaction.cleanup(Transactions.java:413) at org.modeshape.jcr.txn.Transactions$NestableThreadLocalTransaction.rollback(Transactions.java:397) at org.modeshape.jcr.cache.RepositoryCache.runInTransaction(RepositoryCache.java:492) at org.modeshape.jcr.cache.RepositoryCache.workspace(RepositoryCache.java:915) at org.modeshape.jcr.cache.RepositoryCache.getWorkspaceCache(RepositoryCache.java:1148) at org.modeshape.jcr.JcrSession.<init>(JcrSession.java:189) at org.modeshape.jcr.JcrXaSession.<init>(JcrXaSession.java:49) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:699) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:620) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:156) at org.modeshape.jdbc.delegate.LocalSession.getLocalSession(LocalSession.java:74) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.getLocalSession(LocalRepositoryDelegate.java:91) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.execute(LocalRepositoryDelegate.java:139) at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:429) at org.modeshape.jdbc.JcrStatement.executeQuery(JcrStatement.java:479) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:344) ... 13 more Linked a separate JIRA for tracking this latest problem. The problem is still caused by the Hibernate Search issue, but because of a bug in the ModeShape code the original HibernateSearch exception is hidden. Added a fix for this latest exception in the DV 6.2 branch. With DV 6.2.0 ER4 I get yet another exception stack trace when querying ModeShape vdb. query: SELECT * FROM VDBs log: D11004 Error executing statement(s): [SQL: SELECT g_0."jcr:name", g_0."jcr:path", g_0."jcr:primaryType", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName", g_0."mode:sha1", g_0."vdb:description", g_0."vdb:originalFile", g_0."vdb:preview", g_0."vdb:version" FROM "vdb:virtualDatabase" AS g_0] at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:329) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_79] at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79] Caused by: java.sql.SQLException: Error while starting 'dv' repository: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:433) at org.modeshape.jdbc.JcrStatement.executeQuery(JcrStatement.java:479) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:344) at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:119) ... 12 more Caused by: javax.jcr.RepositoryException: Error while starting 'dv' repository: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:656) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:620) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:156) at org.modeshape.jdbc.delegate.LocalSession.getLocalSession(LocalSession.java:74) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.getLocalSession(LocalRepositoryDelegate.java:91) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.execute(LocalRepositoryDelegate.java:139) at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:429) ... 15 more Caused by: org.modeshape.jcr.cache.WrappedException: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:555) at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:439) at org.modeshape.jcr.cache.RepositoryCache$7.call(RepositoryCache.java:973) at org.modeshape.jcr.cache.RepositoryCache$7.call(RepositoryCache.java:938) at org.modeshape.jcr.cache.RepositoryCache.runInTransaction(RepositoryCache.java:503) at org.modeshape.jcr.cache.RepositoryCache.workspace(RepositoryCache.java:938) at org.modeshape.jcr.cache.RepositoryCache.getWorkspaceCache(RepositoryCache.java:1171) at org.modeshape.jcr.JcrSession.<init>(JcrSession.java:188) at org.modeshape.jcr.JcrRepository$RunningState.loginInternalSession(JcrRepository.java:1841) at org.modeshape.jcr.JcrRepository$RunningState.loginInternalSession(JcrRepository.java:1832) at org.modeshape.jcr.Sequencers.initialize(Sequencers.java:214) at org.modeshape.jcr.JcrRepository$RunningState.completeInitialization(JcrRepository.java:1267) at org.modeshape.jcr.JcrRepository.doStart(JcrRepository.java:407) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:654) ... 21 more Caused by: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_79] at java.lang.Class.forName(Class.java:274) [rt.jar:1.7.0_79] at org.hibernate.search.util.impl.ClassLoaderHelper.classForName(ClassLoaderHelper.java:315) at org.hibernate.search.util.impl.ClassLoaderHelper.classForName(ClassLoaderHelper.java:282) at org.hibernate.search.engine.impl.StandardServiceManager.listAndInstantiateServiceProviders(StandardServiceManager.java:82) at org.hibernate.search.engine.impl.StandardServiceManager.<init>(StandardServiceManager.java:65) at org.hibernate.search.spi.SearchFactoryBuilder.createCleanFactoryState(SearchFactoryBuilder.java:296) at org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:204) at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:143) at org.modeshape.jcr.RepositoryQueryManager.queryEngine(RepositoryQueryManager.java:185) at org.modeshape.jcr.RepositoryQueryManager.getIndexes(RepositoryQueryManager.java:171) at org.modeshape.jcr.JcrRepository$RepositoryMonitorFactory.indexingMonitor(JcrRepository.java:1930) at org.modeshape.jcr.JcrRepository$RepositoryMonitorFactory.createMonitor(JcrRepository.java:1924) at org.modeshape.jcr.txn.Transactions.newMonitor(Transactions.java:272) at org.modeshape.jcr.txn.Transactions$BaseTransaction.createMonitor(Transactions.java:286) at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:466) ... 34 more Caused by: java.lang.ClassNotFoundException: org.jgroups.MessageListener from [Module "org.hibernate.search.engine:main" from local module loader @31843ea1 (finder: local module finder @612bd56c (roots: /home/jstastny/tmp-workspaces/workspace/modules,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/dv,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base))] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1] ... 50 more This last exception is caused by the Hibernate Search bug which is linked to the issue and which is explained here https://bugzilla.redhat.com/show_bug.cgi?id=1231303#c1 This issue has to be validated against a version of EAP 6.4 which contains the Hibernate Search fix. I am sorry I missed the fix earlier. |