Hi,
Yesterday I found out the following exception trying to index from an Oracle
Database in my indexing process:

2009-06-23 14:57:29,205 WARN
 [org.apache.solr.handler.dataimport.JdbcDataSource] Error reading data
java.sql.SQLException: ORA-01555: snapshot too old: rollback segment number
1 with name "_SYSSMU1$" too small

at
oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183)
at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:1000)
at
oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:314)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:228)
at
org.jboss.resource.adapter.jdbc.WrappedResultSet.next(WrappedResultSet.java:1184)
at
org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.hasnext(JdbcDataSource.java:326)
at
org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.access$700(JdbcDataSource.java:223)
at
org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator$1.hasNext(JdbcDataSource.java:258)
at
org.apache.solr.handler.dataimport.EntityProcessorBase.getNext(EntityProcessorBase.java:73)
at
org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
at
org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:231)
at
org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:335)
at
org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:224)
at
org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:167)
at
org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:316)
at
org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:374)
at
org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:355)
2009-06-23 14:57:29,206 INFO
 [org.apache.solr.handler.dataimport.DocBuilder] Full Import completed
successfully
2009-06-23 14:57:29,206 INFO  [org.apache.solr.update.UpdateHandler] start
commit(optimize=true,waitFlush=false,waitSearcher=true)

As you can see, Full Import completed successfully indexing a part (about
70000) of all expected documents (about 150000). I don't know if it is a bug
or not but certainly it's not the behaviour I expect in this situation. It
should have rolled back, shouldn't it?

Reading Solr code I can see that in line 314 of JdbcDataSource.java it
throws a DataImportHandlerException with SEVERE errCode so I can't
understand why my indexing process finishes correctly.

I'm working with Solr trunk version (rev. 785397) and no custom properties
(i.e. onError value is default 'abort') in DataImportHandler.

George

Reply via email to