ceskaexpedice / kramerius

System Kramerius
GNU General Public License v3.0
44 stars 27 forks source link

K7 / Kontrolovat stav Solru během jedoucího procesu #1067

Open SPXcz opened 1 week ago

SPXcz commented 1 week ago

Na EODOPEN Krameriovi mi občas padá Solr. Problém ani není pád Solru, ale spíš, že procesy jedou dál a ještě k tomu vrací FINISHED místo FAILED.

Bylo by dobré nějak detekovat pád Solru uvnitř Krameria a přizpůsobit tomu chování procesů (eg. pozastavit procesy nebo procesy označit jako FAILED).

Takto vypadá chybový log údajně úspěšně vykonaného procesu:

Jun 18, 2024 11:06:13 PM cz.kramerius.adapters.impl.krameriusNewApi.ProcessingIndexImplByKrameriusNewApis fetchStructure
SEVERE: IOException occurred when talking to server at: http://solr:8983/solr/processing
org.apache.solr.client.solrj.SolrServerException: IOException occurred when talking to server at: http://solr:8983/solr/processing
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:695)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:266)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:248)
at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient.request(ConcurrentUpdateSolrClient.java:489)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:214)
at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:1003)
at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:1018)
at cz.incad.kramerius.resourceindex.ProcessingIndexFeeder.iterateProcessingWithSort(ProcessingIndexFeeder.java:189)
at cz.incad.kramerius.resourceindex.ProcessingIndexFeeder.iterateProcessingSortedByIndexationDate(ProcessingIndexFeeder.java:144)
at cz.incad.kramerius.repository.RepositoryApiImpl.getTripletSources(RepositoryApiImpl.java:408)
at cz.incad.kramerius.repository.KrameriusRepositoryApiImpl.getParents(KrameriusRepositoryApiImpl.java:200)
at cz.incad.kramerius.repository.ExtractStructureHelper.extractStructureInfo(ExtractStructureHelper.java:41)
at cz.kramerius.adapters.impl.krameriusNewApi.ProcessingIndexImplByKrameriusNewApis.fetchStructure(ProcessingIndexImplByKrameriusNewApis.java:115)
at cz.kramerius.adapters.impl.krameriusNewApi.ProcessingIndexImplByKrameriusNewApis.getStructure(ProcessingIndexImplByKrameriusNewApis.java:100)
at cz.kramerius.adapters.impl.krameriusNewApi.ProcessingIndexImplByKrameriusNewApis.getPidsOfParents(ProcessingIndexImplByKrameriusNewApis.java:53)
at cz.kramerius.krameriusRepositoryAccess.KrameriusRepositoryFascade.getPidsOfParents(KrameriusRepositoryFascade.java:55)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.buildKrameriusNodeFromRepository(RepositoryNodeManager.java:83)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.getKrameriusNodeWithCycleDetection(RepositoryNodeManager.java:54)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.getKrameriusNode(RepositoryNodeManager.java:32)
at cz.kramerius.searchIndex.indexer.execution.Indexer.indexByObjectPid(Indexer.java:109)
at cz.kramerius.searchIndex.NewIndexerProcessIndexObject.main(NewIndexerProcessIndexObject.java:129)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at cz.incad.kramerius.processes.starter.ProcessStarter.main(ProcessStarter.java:132)
Caused by: java.net.UnknownHostException: solr: Name or service not known
at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(Unknown Source)
at java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)
at java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)
at java.base/java.net.InetAddress.getAllByName0(Unknown Source)
at java.base/java.net.InetAddress.getAllByName(Unknown Source)
at java.base/java.net.InetAddress.getAllByName(Unknown Source)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:571)
... 25 more
java.lang.NullPointerException
at cz.kramerius.adapters.impl.krameriusNewApi.ProcessingIndexImplByKrameriusNewApis.getPidsOfParents(ProcessingIndexImplByKrameriusNewApis.java:54)
at cz.kramerius.krameriusRepositoryAccess.KrameriusRepositoryFascade.getPidsOfParents(KrameriusRepositoryFascade.java:55)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.buildKrameriusNodeFromRepository(RepositoryNodeManager.java:83)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.getKrameriusNodeWithCycleDetection(RepositoryNodeManager.java:54)
at cz.kramerius.searchIndex.indexer.nodes.RepositoryNodeManager.getKrameriusNode(RepositoryNodeManager.java:32)
at cz.kramerius.searchIndex.indexer.execution.Indexer.indexByObjectPid(Indexer.java:109)
at cz.kramerius.searchIndex.NewIndexerProcessIndexObject.main(NewIndexerProcessIndexObject.java:129)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at cz.incad.kramerius.processes.starter.ProcessStarter.main(ProcessStarter.java:132)
null
object not found in repository (or found in inconsistent state), ignoring: uuid:7feedb16-57b5-312e-b203-29326fae4e64
object not found in repository (or found in inconsistent state), ignoring it's children: uuid:7feedb16-57b5-312e-b203-29326fae4e64
vlahoda commented 1 week ago

Jakou presne verzi Krameria (jadra) pouzivate?

zabak commented 1 week ago

@vlahoda Teď je tam 7.0.34 - pomůže upgrade?

vlahoda commented 1 week ago

Myslim, ze pomuze. Zrovna osetreni chyb v indexeru (coz je tento konkretni problem) bylo reseno 22.5., tedy pro verzi 7.0.35. Takze prosim zkuste upgrade a pokud se jeste nekde tato potiz objevi, poslete zase stacktrace. Diky!

pavel-stastny commented 1 week ago

@SPXcz @zabak Na mě to působí, že tam je ještě problém se síťováním v dockeru

Caused by: java.net.UnknownHostException: solr: Name or service not known

SPXcz commented 6 days ago

Na mě to působí, že tam je ještě problém se síťováním v dockeru

V EODOPEN aktuálně schedulujeme tisíce procesů denně na limitovaném HW, takže Solr někdy občas spadne (pravděpodobně přetížením, ještě to zkoumám).

Verze K7.0.35 nám v MZK často padá, takže na EOD žádný upgrade neplánuji. K issue se vrátím, až vyjde verze, která v MZK funguje spolehlivě.

vlahoda commented 6 days ago

Verze K7.0.35 nám v MZK často padá

Muzete prosim doplnit nejake podrobnejsi informace? Na caste padani verze 7.0.35 si jeste nikdo z MZK (ani odjinud) nestezoval, jiny release v dohledne dobe neplanujeme.

SPXcz commented 6 days ago

@MichaelTran262 @r2it-git