You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Gunnlaugur Thor Briem (JIRA)" <ji...@apache.org> on 2014/03/26 17:42:19 UTC
[jira] [Updated] (SOLR-5916) DIH datasource init borks if url
attribute contains two property references
[ https://issues.apache.org/jira/browse/SOLR-5916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gunnlaugur Thor Briem updated SOLR-5916:
----------------------------------------
Description:
With a datasource set up like this:
{code:xml}
<dataSource driver="org.postgresql.Driver"
name="meta" url="jdbc:postgresql://${dbhost:foo}.datamarket.net/${solr.core.name}"
user="solr"
password="${dbpassword}"
readOnly="true"
autoCommit="false"
transactionIsolation="TRANSACTION_READ_COMMITTED" holdability="CLOSE_CURSORS_AT_COMMIT"
/>
{code}
(where dbhost and dbpassword are set in solrcore.properties)
... the datasource initialization (and thus any import) fails with:
{code}
1478540 [Thread-6] ERROR org.apache.solr.handler.dataimport.DataImporter – Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:276)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:483)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:464)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:237)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:385)
at org.apache.solr.handler.dataimport.ContextImpl.getDataSource(ContextImpl.java:99)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:53)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:74)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:433)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414)
... 5 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at org.apache.solr.handler.dataimport.VariableResolver.resolve(VariableResolver.java:112)
at org.apache.solr.handler.dataimport.VariableResolver.replaceTokens(VariableResolver.java:155)
at org.apache.solr.handler.dataimport.ContextImpl.replaceTokens(ContextImpl.java:254)
at org.apache.solr.handler.dataimport.JdbcDataSource.resolveVariables(JdbcDataSource.java:229)
at org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:103)
at org.apache.solr.handler.dataimport.JdbcDataSource.init(JdbcDataSource.java:64)
at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:383)
... 10 more
{code}
I changed that url attribute to:
{code}
url="jdbc:postgresql://${dbhost:foo.datamarket.net}/${solr.core.name}"
{code}
and now it runs without problems.
So presumably there's a bug in parsing property references.
was:
With a datasource set up like this:
{code:xml}
<dataSource driver="org.postgresql.Driver"
name="meta" url="jdbc:postgresql://${dbhost:foo}.datamarket.net/${solr.core.name}"
user="solr"
password="${dbpassword}"
readOnly="true"
autoCommit="false"
transactionIsolation="TRANSACTION_READ_COMMITTED" holdability="CLOSE_CURSORS_AT_COMMIT"
/>
{code}
(where dbhost and dbpassword are set in solrcore.properties)
... the datasource initialization (and thus any import) fails with:
{code}
1478540 [Thread-6] ERROR org.apache.solr.handler.dataimport.DataImporter – Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:276)
at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:483)
at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:464)
Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:237)
... 3 more
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:385)
at org.apache.solr.handler.dataimport.ContextImpl.getDataSource(ContextImpl.java:99)
at org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:53)
at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:74)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:433)
at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414)
... 5 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
at org.apache.solr.handler.dataimport.VariableResolver.resolve(VariableResolver.java:112)
at org.apache.solr.handler.dataimport.VariableResolver.replaceTokens(VariableResolver.java:155)
at org.apache.solr.handler.dataimport.ContextImpl.replaceTokens(ContextImpl.java:254)
at org.apache.solr.handler.dataimport.JdbcDataSource.resolveVariables(JdbcDataSource.java:229)
at org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:103)
at org.apache.solr.handler.dataimport.JdbcDataSource.init(JdbcDataSource.java:64)
at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:383)
... 10 more
{code}
I changed that url attribute to:
{code}
url="jdbc:postgresql://${dbhost:hulk.datamarket.net}/${solr.core.name}"
{code}
and now it runs without problems.
So presumably there's a bug in parsing property references.
> DIH datasource init borks if url attribute contains two property references
> ---------------------------------------------------------------------------
>
> Key: SOLR-5916
> URL: https://issues.apache.org/jira/browse/SOLR-5916
> Project: Solr
> Issue Type: Bug
> Components: contrib - DataImportHandler
> Affects Versions: 4.7
> Reporter: Gunnlaugur Thor Briem
> Priority: Minor
>
> With a datasource set up like this:
> {code:xml}
> <dataSource driver="org.postgresql.Driver"
> name="meta" url="jdbc:postgresql://${dbhost:foo}.datamarket.net/${solr.core.name}"
> user="solr"
> password="${dbpassword}"
> readOnly="true"
> autoCommit="false"
> transactionIsolation="TRANSACTION_READ_COMMITTED" holdability="CLOSE_CURSORS_AT_COMMIT"
> />
> {code}
> (where dbhost and dbpassword are set in solrcore.properties)
> ... the datasource initialization (and thus any import) fails with:
> {code}
> 1478540 [Thread-6] ERROR org.apache.solr.handler.dataimport.DataImporter – Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
> at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:276)
> at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:411)
> at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:483)
> at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:464)
> Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
> at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:416)
> at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329)
> at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:237)
> ... 3 more
> Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Failed to initialize DataSource: meta Processing Document # 1
> at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
> at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:385)
> at org.apache.solr.handler.dataimport.ContextImpl.getDataSource(ContextImpl.java:99)
> at org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:53)
> at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:74)
> at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:433)
> at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414)
> ... 5 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
> at org.apache.solr.handler.dataimport.VariableResolver.resolve(VariableResolver.java:112)
> at org.apache.solr.handler.dataimport.VariableResolver.replaceTokens(VariableResolver.java:155)
> at org.apache.solr.handler.dataimport.ContextImpl.replaceTokens(ContextImpl.java:254)
> at org.apache.solr.handler.dataimport.JdbcDataSource.resolveVariables(JdbcDataSource.java:229)
> at org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:103)
> at org.apache.solr.handler.dataimport.JdbcDataSource.init(JdbcDataSource.java:64)
> at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:383)
> ... 10 more
> {code}
> I changed that url attribute to:
> {code}
> url="jdbc:postgresql://${dbhost:foo.datamarket.net}/${solr.core.name}"
> {code}
> and now it runs without problems.
> So presumably there's a bug in parsing property references.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org