Javier,

Your minX is slightly greater than maxX, which is interpreted as a line that
wraps nearly the entire globe.  Is that what you intended?

If this is what you intended, then you got bitten by this unfixed bug:
https://issues.apache.org/jira/browse/LUCENE-4550
As a work-around, you could split that horizontal line into two equal pieces
and index them as separate values for the document.

~ David


Javier Molina wrote
> Hi,
> 
> I have been struggling the past days trying to spot what was causing my
> solr 4.0 to go Out Of Memory when doing a dataimport full-import
> 
> After troubleshooting I found that the problem is not related with data
> volume but instead with one particular record in my DB.
> 
> The offending record has a location value of  147.33767500000002 -42.88601
> 147.337675 -42.88601
> 
> As you can see, the min and max latitude have the same value, that is the
> rectangle is indeed a line.
> 
> The location field uses the default definition for field type
> location_rpt,
> extract from schema.xml shown below.
> 
>     
> <fieldType name="location_rpt"
> class="solr.SpatialRecursivePrefixTreeFieldType"^M
>         geo="true" distErrPct="0.025" maxDistErr="0.000009"
> units="degrees"
> />
> 
> We have configured the delta settings for dataimport to take a particular
> id from our db records, and what it is interesting is that if instead of
> doing a full-import I issue a delta-import the operation succeed. Note
> that
> in both cases I am just importing the same particular record, in the case
> of full-import I specify start and rows parameters, as seen in the log.
> 
> My understanding is that defining a rectangle as a line it is still a
> valid
> area (so to speak) so the operation should succeed, nevertheless if those
> values are not a valid there should be a validation in place in order to
> prevent the OutOfMemoryError.
> 
> 
> See log below for an example of the run leading to the Out Of Memory
> Error.
> 
> Thanks in advance for your feedback.
> 
> Regards,
> Javier
> 
> 
> 21/01/2013 12:00:38 PM org.apache.solr.core.SolrCore execute
> INFO: [coreDap] webapp=/solr path=/dataimport
> params={optimize=false&clean=true&commit=true&start=1995&verbose=true&command=full-import&rows=1}
> status=0 QTime=10
> 21/01/2013 12:00:38 PM org.apache.solr.handler.dataimport.DataImporter
> doFullImport
> INFO: Starting Full Import
> 21/01/2013 12:00:38 PM
> org.apache.solr.handler.dataimport.SimplePropertiesWriter
> readIndexerProperties
> INFO: Read dataimport.properties
> 21/01/2013 12:00:38 PM org.apache.solr.core.SolrCore execute
> INFO: [coreDap] webapp=/solr path=/dataimport params={command=status}
> status=0 QTime=1
> 21/01/2013 12:00:38 PM org.apache.solr.core.SolrDeletionPolicy onInit
> INFO: SolrDeletionPolicy.onInit: commits:num=1
> 
> commit{dir=NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/DMS_dev/r01/solr/coreDap/data/index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@616181be;
> maxCacheMB=48.0
> maxMergeSizeMB=4.0),segFN=segments_mq,generation=818,filenames=[_12y_Lucene40_0.tip,
> _12w_Lucene40_0.prx, _12w_nrm.cfe, _12z_Lucene40_0.tim,
> _12z_Lucene40_0.frq, _12z.si, _12y_Lucene40_0.prx, _12z_nrm.cfe,
> _12w_Lucene40_0.frq, _12w.fdx, segments_mq, _12y_nrm.cfs, _12w.fnm,
> _12w_Lucene40_0.tip, _12w.si, _12w_Lucene40_0.tim, _12w.fdt, _12z_nrm.cfs,
> _12z.fnm, _12y.fdx, _12y.fnm, _12z.fdx, _12z_Lucene40_0.prx, _12y.fdt,
> _12z.fdt, _12y_nrm.cfe, _12y.si, _12z_Lucene40_0.tip, _12y_Lucene40_0.frq,
> _12w_nrm.cfs, _12y_Lucene40_0.tim]
> 21/01/2013 12:00:38 PM org.apache.solr.core.SolrDeletionPolicy
> updateCommits
> INFO: newest commit = 818
> 21/01/2013 12:00:38 PM org.apache.solr.search.SolrIndexSearcher 
> <init>
> INFO: Opening Searcher@70f4d063 realtime
> 21/01/2013 12:00:38 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Creating a connection for entity dataCollection with URL:
> jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=
> myserver.mydomain.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=
> myserver.mydomain.com)))
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Time taken for getConnection(): 40
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Creating a connection for entity topic with URL: jdbc:oracle:thin:@
> (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver.mydomain.com
> )(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myserver.mydomain.com)))
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Time taken for getConnection(): 47
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Creating a connection for entity usergroup with URL:
> jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=
> myserver.mydomain.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=
> myserver.mydomain.com)))
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Time taken for getConnection(): 34
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Creating a connection for entity usergroupDNs with URL:
> jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=
> myserver.mydomain.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=
> myserver.mydomain.com)))
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Time taken for getConnection(): 39
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Creating a connection for entity person with URL: jdbc:oracle:thin:@
> (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver.mydomain.com
> )(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=myserver.mydomain.com)))
> 21/01/2013 12:00:39 PM org.apache.solr.handler.dataimport.JdbcDataSource$1
> call
> INFO: Time taken for getConnection(): 33
> 21/01/2013 12:00:39 PM
> org.apache.solr.schema.AbstractSpatialPrefixTreeFieldType
> newSpatialStrategy
> INFO:
> location_rpt{class=org.apache.solr.schema.SpatialRecursivePrefixTreeFieldType,analyzer=org.apache.solr.schema.FieldType$DefaultAnalyzer,args={distErrPct=0.025,
> geo=true, maxDistErr=0.000009, units=degrees}} strat:
> RecursivePrefixTreeStrategy(prefixGridScanLevel:7,SPG:(GeohashPrefixTree(maxLevels:11,ctx:SpatialContext{geo=true,
> calculator=Haversine,
> worldBounds=Rect(minX=-180.0,maxX=180.0,minY=-90.0,maxY=90.0)})))
> maxLevels: 11
> 21/01/2013 12:00:40 PM org.apache.solr.core.SolrCore execute
> INFO: [coreDap] webapp=/solr path=/dataimport params={command=status}
> status=0 QTime=0
> 21/01/2013 12:00:53 PM org.apache.solr.update.DirectUpdateHandler2 commit
> INFO: start
> commit{flags=0,_version_=0,optimize=false,openSearcher=false,waitSearcher=true,expungeDeletes=false,softCommit=false}
> 21/01/2013 12:00:54 PM org.apache.solr.core.SolrDeletionPolicy onCommit
> INFO: SolrDeletionPolicy.onCommit: commits:num=2
> 
> commit{dir=NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/DMS_dev/r01/solr/coreDap/data/index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@616181be;
> maxCacheMB=48.0
> maxMergeSizeMB=4.0),segFN=segments_mq,generation=818,filenames=[_12y_Lucene40_0.tip,
> _12w_Lucene40_0.prx, _12w_nrm.cfe, _12z_Lucene40_0.tim,
> _12z_Lucene40_0.frq, _12z.si, _12y_Lucene40_0.prx, _12z_nrm.cfe,
> _12w_Lucene40_0.frq, _12w.fdx, segments_mq, _12y_nrm.cfs, _12w.fnm,
> _12w_Lucene40_0.tip, _12w.si, _12w_Lucene40_0.tim, _12w.fdt, _12z_nrm.cfs,
> _12z.fnm, _12y.fdx, _12y.fnm, _12z.fdx, _12z_Lucene40_0.prx, _12y.fdt,
> _12z.fdt, _12y_nrm.cfe, _12y.si, _12z_Lucene40_0.tip, _12y_Lucene40_0.frq,
> _12w_nrm.cfs, _12y_Lucene40_0.tim]
> 
> commit{dir=NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/DMS_dev/r01/solr/coreDap/data/index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@616181be;
> maxCacheMB=48.0
> maxMergeSizeMB=4.0),segFN=segments_mr,generation=819,filenames=[segments_mr]
> 21/01/2013 12:00:54 PM org.apache.solr.core.SolrDeletionPolicy
> updateCommits
> INFO: newest commit = 819
> 21/01/2013 12:00:54 PM org.apache.solr.update.DirectUpdateHandler2 commit
> INFO: end_commit_flush
> 
> 21/01/2013 12:05:11 PM org.apache.solr.update.processor.LogUpdateProcessor
> finish
> INFO: [coreDap] webapp=/solr path=/dataimport
> params={optimize=false&clean=true&commit=true&start=1995&verbose=true&command=full-import&rows=1}
> status=0 QTime=10 {deleteByQuery=*:* (-1424731709158457344)} 0 10
> 21/01/2013 12:05:11 PM org.apache.solr.common.SolrException log
> SEVERE: Full Import failed:java.lang.RuntimeException:
> java.lang.RuntimeException:
> org.apache.solr.handler.dataimport.DataImportHandlerException:
> java.lang.OutOfMemoryError: Java heap space
>         at
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:273)
>         at
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:382)
>         at
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:448)
>         at
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:429)
> Caused by: java.lang.RuntimeException:
> org.apache.solr.handler.dataimport.DataImportHandlerException:
> java.lang.OutOfMemoryError: Java heap space
>         at
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:413)
>         at
> org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:326)
>         at
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:234)
>         ... 3 more
> Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException:
> java.lang.OutOfMemoryError: Java heap space
>         at
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:542)
>         at
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:411)
>         ... 5 more
> Caused by: java.lang.OutOfMemoryError: Java heap space
>         at
> com.spatial4j.core.context.SpatialContext.makeRectangle(SpatialContext.java:172)
>         at
> com.spatial4j.core.io.GeohashUtils.decodeBoundary(GeohashUtils.java:150)
>         at
> org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree$GhCell.getShape(GeohashPrefixTree.java:142)
>         at
> org.apache.lucene.spatial.prefix.tree.Node.getSubCells(Node.java:155)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:157)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.recursiveGetNodes(SpatialPrefixTree.java:175)
>         at
> org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree.getNodes(SpatialPrefixTree.java:142)
>         at
> org.apache.lucene.spatial.prefix.tree.GeohashPrefixTree.getNodes(GeohashPrefixTree.java:98)
>         at
> org.apache.lucene.spatial.prefix.PrefixTreeStrategy.createIndexableFields(PrefixTreeStrategy.java:126)
>         at
> org.apache.lucene.spatial.prefix.PrefixTreeStrategy.createIndexableFields(PrefixTreeStrategy.java:121)
>         at
> org.apache.solr.schema.AbstractSpatialFieldType.createFields(AbstractSpatialFieldType.java:110)
>         at
> org.apache.solr.schema.AbstractSpatialFieldType.createFields(AbstractSpatialFieldType.java:55)
>         at
> org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:193)
>         at
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:270)
>         at
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
>         at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:208)
>         at
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61)
>         at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>         at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:432)
>         at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:557)
>         at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:325)
>         at
> org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100)
>         at
> org.apache.solr.handler.dataimport.SolrWriter.upload(SolrWriter.java:70)
>         at
> org.apache.solr.handler.dataimport.DataImportHandler$1.upload(DataImportHandler.java:233)
> 
> 21/01/2013 12:05:11 PM org.apache.solr.update.DirectUpdateHandler2
> rollback
> INFO: start rollback{flags=0,_version_=0}
> 21/01/2013 12:05:11 PM org.apache.solr.update.DefaultSolrCoreState
> newIndexWriter
> INFO: Creating new IndexWriter...
> 21/01/2013 12:05:11 PM org.apache.solr.update.DefaultSolrCoreState
> newIndexWriter
> INFO: Waiting until IndexWriter is unused... core=coreDap
> 21/01/2013 12:05:11 PM org.apache.solr.update.DefaultSolrCoreState
> newIndexWriter
> INFO: Rollback old IndexWriter... core=coreDap
> 21/01/2013 12:05:11 PM org.apache.solr.core.CachingDirectoryFactory get
> INFO: return new directory for /DMS_dev/r01/solr/coreDap/data/index
> forceNew:true
> 21/01/2013 12:05:11 PM org.apache.solr.core.SolrDeletionPolicy onInit
> INFO: SolrDeletionPolicy.onInit: commits:num=1
> 
> commit{dir=NRTCachingDirectory(org.apache.lucene.store.MMapDirectory@/DMS_dev/r01/solr/coreDap/data/index
> lockFactory=org.apache.lucene.store.NativeFSLockFactory@7ab9fcb0;
> maxCacheMB=48.0
> maxMergeSizeMB=4.0),segFN=segments_mr,generation=819,filenames=[segments_mr]
> 21/01/2013 12:05:11 PM org.apache.solr.core.SolrDeletionPolicy
> updateCommits
> INFO: newest commit = 819
> 21/01/2013 12:05:11 PM org.apache.solr.update.DefaultSolrCoreState
> newIndexWriter
> INFO: New IndexWriter is ready to be used.
> 21/01/2013 12:05:11 PM org.apache.solr.update.DirectUpdateHandler2
> rollback
> INFO: end_rollback





-----
 Author: http://www.packtpub.com/apache-solr-3-enterprise-search-server/book
--
View this message in context: 
http://lucene.472066.n3.nabble.com/Spatial-Dataimport-full-import-results-in-OutOfMemory-for-a-rectangle-defining-a-line-tp4034928p4035163.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to