Map Failed

Support für Fragen zu Solr im Allgemeinen und der Verwendung des in YaCy eingebetteten Solr
Forumsregeln
Hier sind Fragen zu Solr im Allgemeinen und der Verwendung des in YaCy eingebetteten Solr im speziellen gewünscht!

Map Failed

Beitragvon sixcooler » Do Okt 18, 2012 2:23 pm

Hallo,

ich habe ein Problem beim Laden des Solt-Index:
Code: Alles auswählen
I 2012/10/18 15:11:34 org.apache.solr.core.RequestHandlers adding lazy requestHandler: solr.SearchHandler
I 2012/10/18 15:11:34 org.apache.solr.core.RequestHandlers created /elevate: solr.SearchHandler
D 2012/10/18 15:11:34 org.apache.solr.handler.XmlUpdateRequestHandler Unable to set the 'reuse-instance' property for the input chain: com.ctc.wstx.stax.WstxInputFactory@126ba64
I 2012/10/18 15:11:37 org.apache.solr.core.SolrCore []  CLOSING SolrCore org.apache.solr.core.SolrCore@893969
E 2012/10/18 15:11:37 org.apache.solr.core.SolrCore java.lang.NullPointerException
        at org.apache.solr.core.SolrCore.close(SolrCore.java:712)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:599)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
        at org.apache.solr.core.CoreContainer.<init>(CoreContainer.java:109)
        at net.yacy.cora.federate.solr.connector.EmbeddedSolrConnector.<init>(EmbeddedSolrConnector.java:100)
        at net.yacy.search.index.Fulltext.connectLocalSolr(Fulltext.java:122)
        at net.yacy.search.Switchboard.<init>(Switchboard.java:417)
        at net.yacy.yacy.startup(yacy.java:207)
        at net.yacy.yacy.main(yacy.java:636)

I 2012/10/18 15:11:37 org.apache.solr.core.SolrCore [] Closing main searcher on request.
E 2012/10/18 15:11:37 org.apache.solr.core.CoreContainer org.apache.solr.common.SolrException
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:600)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332)
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216)
        at org.apache.solr.core.CoreContainer.<init>(CoreContainer.java:109)
        at net.yacy.cora.federate.solr.connector.EmbeddedSolrConnector.<init>(EmbeddedSolrConnector.java:100)
        at net.yacy.search.index.Fulltext.connectLocalSolr(Fulltext.java:122)
        at net.yacy.search.Switchboard.<init>(Switchboard.java:417)
        at net.yacy.yacy.startup(yacy.java:207)
        at net.yacy.yacy.main(yacy.java:636)
Caused by: java.lang.RuntimeException: java.io.IOException: Map failed
        at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1104)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:585)
        ... 9 more
Caused by: java.io.IOException: Map failed
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:803)
        at org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:270)
        at org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:220)
        at org.apache.lucene.index.FieldsReader.<init>(FieldsReader.java:131)
        at org.apache.lucene.index.SegmentCoreReaders.openDocStores(SegmentCoreReaders.java:234)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:118)
        at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:94)
        at org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:105)
        at org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:27)
        at org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:78)
        at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:709)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:72)
        at org.apache.lucene.index.IndexReader.open(IndexReader.java:375)
        at org.apache.solr.core.StandardIndexReaderFactory.newReader(StandardIndexReaderFactory.java:38)
        at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1093)
        ... 10 more
Caused by: java.lang.OutOfMemoryError: Map failed
        at sun.nio.ch.FileChannelImpl.map0(Native Method)
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:800)
        ... 24 more

E 2012/10/18 15:11:37 STARTUP YaCy cannot start: null
java.lang.NullPointerException
        at org.apache.solr.handler.component.SearchHandler.inform(SearchHandler.java:118)
        at net.yacy.cora.federate.solr.connector.EmbeddedSolrConnector.<init>(EmbeddedSolrConnector.java:111)
        at net.yacy.search.index.Fulltext.connectLocalSolr(Fulltext.java:122)
        at net.yacy.search.Switchboard.<init>(Switchboard.java:417)
        at net.yacy.yacy.startup(yacy.java:207)
        at net.yacy.yacy.main(yacy.java:636)

Etwas in der Art hatte ich schon mal in den ersten Versuchen mit Solr.

Der OOM ist, glaube ich, nur ein Folgefehler. Der Peer läuft sonst mit 768M versuche mit 2048M bringen ihn nicht zum laufen.

Wie debugt man den embedded Solr am besten?

Hat jemand eine Idee zu diesem Problem?

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Map Failed

Beitragvon sixcooler » Sa Okt 20, 2012 5:05 pm

Hallo,

zu diesem meinen Problem habe ich endlich ene Lösung gefunden!

Angeregt durch http://php-solr-lucene.blogspot.de/2011 ... chive.html habe ich den Heap etwas heruntergesetzt und das Ding rennt wieder!

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Map Failed

Beitragvon Orbiter » So Okt 21, 2012 12:47 am

ulimit -v unlimited ?
wenn das die Lösung ist, ists ja einfach. Ich hab aber mal mit ulimit -v geguckt, das stand bei mir schon auf unlimited.
Wie auch immer, wie genau hast du das Problem gelöst?
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Map Failed

Beitragvon sixcooler » So Okt 21, 2012 6:40 pm

Hallo,

'ulimit -v unlimited' war bei mir auch schon - aber der betreffende Peer llauft auf einer Maschine mit 2G Physischen Speicher und hatte sonst 768M für YaCy zugewiesen wo das Problem auftauchte.
Mit 512M für YaCy ging es auf ein Mal.

Da der Peer nur eine sehr kleine Index hat langt das auch für YaCy.

Einen OOM mit weniger Heap-Speicher zu begegener ist erst mal etwas unerwartetes :-)

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Map Failed

Beitragvon sixcooler » Mo Jan 21, 2013 2:24 pm

Hallo,

nun hatte ich das besagte Problem mal wieder auf dem gleichen Peer.
Woanders hier im Forum hatte ich schon erwähnt das ich leider nicht mehr weiss was denn genau die Lösung war.
Hier scheint es aber eine andere Ursache zu haben

Nach langem Probieren stellte ich fest das die Änderung in der solrconfig die Ursache waren.
Code: Alles auswählen
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.MMapDirectoryFactory}"/>

Das benötigt weiteren Virtuellen Speicher.
Was normalerweise kein Problem ist - nur dieser Peer ist noch ein 32Bitter und da ist das halt Mangelware.

Auch in der Quelle zu dieser Änderung https://issues.apache.org/jira/browse/SOLR-2247 ist erwähnt das es nur mit 64bit-JVMs läuft.

Wer also ebenfalls noch 32Bitter einsetzt sollte mal probieren
Code: Alles auswählen
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
zu nutzen.

@Orbiter: Deine Änderungen zu 'ramBufferSizeMB' und 'mergeFactor' in der solrconfig sind auskommentiert - ist das so gewollt?

Cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Map Failed

Beitragvon Orbiter » Mo Jan 21, 2013 6:15 pm

Ui!
sixcooler hat geschrieben:Nach langem Probieren stellte ich fest das die Änderung in der solrconfig die Ursache waren.
Code: Alles auswählen
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.MMapDirectoryFactory}"/>

Das benötigt weiteren Virtuellen Speicher.
Was normalerweise kein Problem ist - nur dieser Peer ist noch ein 32Bitter und da ist das halt Mangelware.

Auch in der Quelle zu dieser Änderung https://issues.apache.org/jira/browse/SOLR-2247 ist erwähnt das es nur mit 64bit-JVMs läuft.

Wer also ebenfalls noch 32Bitter einsetzt sollte mal probieren
Code: Alles auswählen
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
zu nutzen.

ich hab dazu auch noch einen super Artikel gefunden: http://blog.thetaphi.de/2012/07/use-luc ... 64bit.html
Da drin ist erklärt dass man mit der MMapDirectoryFactory den Heap für Java möglichst klein stellen sollte! Das erklärt dann auch einige Probleme die wir hatten wenn der Heap wohl zu großzügig war...
Also habe ich die Änderung wieder rückgängig gemacht, den NRTCachingDirectoryFactory wieder reingeschrieben aber in das startYACY.sh einen Test auf 64 bit gemacht der dann eine Systemvariable setzt um die MMapDirectoryFactory wieder zu aktivieren. Bin gespannt ob das klappt...

sixcooler hat geschrieben:@Orbiter: Deine Änderungen zu 'ramBufferSizeMB' und 'mergeFactor' in der solrconfig sind auskommentiert - ist das so gewollt?

Oh je das ist wohl dann schon aufkommende Senilität. Hab den Merge Factor nun auskommentiert aber die ramBufferSizeMB wieder rückgängig gemacht bzw. auskommentiert gelassen weil diese Größe für embedded Dinge wie beim RPi zu groß sind.
Mal schauen wie es jetzt läuft.
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Solr Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast