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