10.7で複数のロボットを同時実行すると実行に失敗したり実行中のまま停止できなくなる

フォローする

事象

複数のロボットを同時に実行すると、次のような障害が発生するケースが確認されています。
・スケジュールからロボットの実行に失敗し、MCログ上では「No Runs(実行がありません)」が記録される。
・MCの実行中ステップ(Current Step)表示が「(特定の場所がありません)」のまま実行中になる。
・ロボットが「Queued」ステータスのまま実行されない。

エラーメッセージ

本事象が発生している場合、RSのログレベルをDEBUGにする事で以下のメッセージがRoboServer.logに出力されます。

メッセージ例

DEBUG org.apache.http.impl.client.DefaultHttpClient - Authentication required
DEBUG org.apache.http.impl.client.DefaultHttpClient - {MCサーバホスト名orIPアドレス:ポート番号} requested authentication

DEBUG org.apache.http.impl.client.DefaultHttpClient - Authorization challenge processed
DEBUG org.apache.http.impl.client.DefaultHttpClient - Authentication failed


また、ロボットの実行に失敗した場合、次のような例外が記録される事があります。

<日付> ERROR kapow.robot.rqlserver.rql.ExecuteRQLRequest - Could not establish repository access for device reservations
com.kapowtech.robosuite.api.java.repository.engine.RepositoryClientException: Connection has been shut down
 at com.kapowtech.robosuite.api.java.repository.engine.RepositoryClientImpl.sendPing(RepositoryClientImpl.java:227)
 at com.kapowtech.robosuite.api.java.repository.engine.RepositoryClientImpl.pingRepository(RepositoryClientImpl.java:252)
 at com.kapowtech.robosuite.api.java.repository.engine.ExecutionEngineRepositoryClient.pingRepository(ExecutionEngineRepositoryClient.java:30)
 at kapow.robot.rqlserver.RoboServer.getRepositoryClient(RoboServer.java:343)
 at kapow.robot.rqlserver.RoboServer.getRepositoryClient(RoboServer.java:329)
 at kapow.robot.rqlserver.rql.ExecuteRQLRequest.execute(ExecuteRQLRequest.java:235)
 at kapow.robot.rqlserver.engine.RQLEngine.exceptionThrowingExecute(RQLEngine.java:258)
 at kapow.robot.rqlserver.engine.RQLEngine.execute(RQLEngine.java:207)
 at com.kapowtech.robosuite.service.server.RoboServerBridgeSimpleRQLEngine.request(RoboServerBridgeSimpleRQLEngine.java:134)
 at com.kapowtech.robosuite.service.socket.multiplexing.MultiplexingResponseHandler.run(MultiplexingResponseHandler.java:52)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.InterruptedIOException: Connection has been shut down
 at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:599)
 at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:855)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)
 at com.kapowtech.robosuite.api.java.repository.engine.RepositoryClientImpl.sendPing(RepositoryClientImpl.java:224)
 ... 12 more
Caused by: org.apache.http.impl.conn.ConnectionShutdownException
 at org.apache.http.impl.conn.AbstractPooledConnAdapter.assertValid(AbstractPooledConnAdapter.java:97)
 at org.apache.http.impl.conn.AbstractPooledConnAdapter.getRoute(AbstractPooledConnAdapter.java:124)
 at org.apache.http.client.protocol.RequestProxyAuthentication.process(RequestProxyAuthentication.java:76)
 at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:133)
 at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:167)
 at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:505)
 ... 16 more

原因

ロボ実行時、ロボットの処理が始まる前に内部コンポーネントの初期化動作が発生しますが、
複数のロボットを同時実行する際、この初期化処理において競合が発生する場合がある事が原因です。
本問題は内部処理のタイミング依存の問題であり、手動実行、スケジュール実行、API実行などの
ロボット実行方法やロボットの処理内容に依存せず、全てのロボットで再現する可能性があります。

発生条件

以下の条件を全て満たす場合に本不具合が発生する場合があります。

  • バージョン10.7.0.4もしくは11.1.0.4を使用する
  • 同じ実行開始時刻で複数のロボットを実行する※

※本問題はタイミング依存の問題であるため、再現率は100%ではありません。
 実行開始時刻が同じスケジュールが複数ある場合などに
、競合が発生するタイミングが
    重なる可能性が高くなり、本事象が発生してしまう恐れがあります。

対処方法

以下のいずれかの対処をご検討下さい。

  • 修正済みバージョンを使用する
  • バージョン10.7未満を使用する
  • 事象が発生するバージョンを使用する場合は、
    実行スケジュールを調整し、ロボット毎の実行開始時刻をずらす

    本不具合により実行中のままになったロボットはMCから停止する事ができませんので、

    RSを再起動して実行中のロボットを強制停止下さいますようお願い致します。
区分 発生Ver 改修ID 修正Ver
不具合 10.7.0.4,11.1.0.4


1617869
※リリースノートに記載されるID
   10.7:1633073
   11.1:1633071

10.7.0.9,11.1.0.6