legacy-knowledge-base
公開されました Jul. 2, 2025

セグメントを保存すると Elasticsearch で StackOverflowError が発生する

written-by

Sivakumar Perumal

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • サブ組織がさらにある場合、組織セグメントの寄稿者で親組織として条件を選択しても機能しない

    再現する手順:

    1. 組織を作成する
    2. 上記で作成した組織に対して、1800-2000 サブ組織を作成します。
    3. 「親組織」プロパティをドラッグして、セグメントを作成します。 次に、フィールドを「等しい」として選択し、親組織を選択して、[保存] をクリックします。

    予期される動作: セグメントの保存は問題なく機能します。

    実際の動作: セグメントを保存すると StackOverflowError が発生する

    In Liferay:
    
    2020-04-06 12:31:09.219 ERROR [liferay/search_writer/SYSTEM_ENGINE-35][ElasticsearchIndexWriter:143] java.lang.RuntimeException: org.elasticsearch.client.transport.NoNodeAvailableException: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{2IwRrBrbSUulEqEDniVznA}{localhost}{127.0.0.1:9300}]]
    java.lang.RuntimeException: org.elasticsearch.client.transport.NoNodeAvailableException: NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{2IwRrBrbSUulEqEDniVznA}{localhost}{127.0.0.1:9300}]]
     at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:349)
     at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:247)
     at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:60)
     at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:382)
     at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:395)
     at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:384)
     at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1242)
     at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:46)
     at org.elasticsearch.action.ActionRequestBuilder.get(ActionRequestBuilder.java:53)
     at com.liferay.portal.search.elasticsearch6.internal.search.engine.adapter.index.RefreshIndexRequestExecutorImpl.execute(RefreshIndexRequestExecutorImpl.java:47)
     at com.liferay.portal.search.elasticsearch6.internal.search.engine.adapter.index.ElasticsearchIndexRequestExecutor.executeIndexRequest(ElasticsearchIndexRequestExecutor.java:140)
     at com.liferay.portal.search.engine.adapter.index.RefreshIndexRequest.accept(RefreshIndexRequest.java:36)
     at com.liferay.portal.search.engine.adapter.index.RefreshIndexRequest.accept(RefreshIndexRequest.java:22)
     at com.liferay.portal.search.elasticsearch6.internal.search.engine.adapter.ElasticsearchSearchEngineAdapterImpl.execute(ElasticsearchSearchEngineAdapterImpl.java:78)
     at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchIndexWriter.commit(ElasticsearchIndexWriter.java:139)
     at sun.reflect.GeneratedMethodAccessor376.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:498)
     at com.liferay.portal.kernel.messaging.proxy.ProxyRequest.execute(ProxyRequest.java:82)
     at com.liferay.portal.kernel.messaging.proxy.ProxyMessageListener.receive(ProxyMessageListener.java:58)
     at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
     at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:52)
     at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:752)
     at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:664)
     at java.lang.Thread.run(Thread.java:748) 
    
    In Elastic search server:
    
    [2020-04-06T17:30:32,742][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [qMwTfT8] fatal error in thread [Thread-51], exiting
    java.lang.StackOverflowError: null
     at org.elasticsearch.common.io.stream.NamedWriteableRegistry.getReader(NamedWriteableRegistry.java:105) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:45) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:39) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.index.query.AbstractQueryBuilder.readQueries(AbstractQueryBuilder.java:277) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.index.query.BoolQueryBuilder.<init>(BoolQueryBuilder.java:95) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:46) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:39) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.index.query.AbstractQueryBuilder.readQueries(AbstractQueryBuilder.java:277) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.index.query.BoolQueryBuilder.<init>(BoolQueryBuilder.java:95) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:46) ~[elasticsearch-6.8.0.jar:6.8.0]
     at org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput.readNamedWriteable(NamedWriteableAwareStreamInput.java:39) ~[elasticsearch-6.8.0.jar:6.8.0]

Environment

  • Liferay DXP 7.2

解決策

  • 観察された動作は、既知の 問題 LPS-111522 LPS-114512 であり、フィックスパック dxp-7-7210で修正されています。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base