nulab/BacklogMigration-Redmine

エクスポートに失敗する

kanryu opened this issue · 8 comments

インポートに失敗する #4 とは別件です。

Redmineの既存プロジェクトからのエクスポート中にタイムアウトが発生し、コンバートできない症状です。

$ java -jar backlog-migration-redmine-0.9.0b26.jar execute \
--backlog.key wM8QwM8QwM8QwM8QwM8QwM8QwM8QwM8QwM8QwM8QwM8Q \
--backlog.url https://XXXXX.backlog.jp \
--redmine.key 06e606e606e606e606e606e606e606e606e606e6 \
--redmine.url http://intraserver.local/redmine \
--projects wi_fi_hosyu : WI_FI_HOSYU
       Wi-Fi社内保守の課題をエクスポートしました。(144/586)
       Wi-Fi社内保守の課題をエクスポートしました。(144/586)
java.util.concurrent.TimeoutException: Await termination timed out after [60 minutes]
       at akka.actor.ActorSystemImpl$TerminationCallbacks.ready(ActorSystem.scala:818)
       at akka.actor.ActorSystemImpl$TerminationCallbacks.ready(ActorSystem.scala:788)
       at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
       at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:169)
       at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
       at scala.concurrent.Await$.ready(package.scala:169)
       at akka.actor.ActorSystemImpl.awaitTermination(ActorSystem.scala:644)
       at com.nulabinc.r2b.actor.redmine.RedmineActor$.apply(RedmineActor.scala:73)
       at com.nulabinc.r2b.core.R2B$.execute(R2B.scala:93)
       at com.nulabinc.r2b.core.R2B$.main(R2B.scala:57)
       at com.nulabinc.r2b.core.R2B.main(R2B.scala)

これは現行のインポートツールの実装でタイムアウト時間が60分としてハードコーディングされていることが原因です。

  • タイムアウト判定を取り除く
  • タイムアウト判定をオプション等でカスタマイズ可能にする

などの対策をしていただければありがたいです。

また、以前試した0.9.0b21と比べて0.9.0b26は処理速度が非常に低下しているように見受けられます。こちらもご対応いただけるようでしたらありがたいです。

@kanryu

通常一時間を超えて遅いことはありませんので他にプログラムに問題があると思われます。
よろしければ、次のサイトからサポートを通してログを送っていただけますか。

https://www.backlog.jp/contact/

実行時のディレクトリ構成が次の通りになり、「backlog-migration-redmine-debug.log」がログファイルとなります。
├── mapping
│ ├── priorities.json
│ ├── statuses.json
│ └── users.json
└── backlog-migration-redmine-debug.log

私の環境では、カレントディレクトリ直下ではなく、log ディレクトリにログが出力されています。

├── log
│ └── backlog-migration-redmine-debug.log

@okinaka 様、ご指摘ありがとうございます。

私の方が間違っておりました。
@okinaka 様のご指摘の通りログのあるディレクトリは次の通りとなります。

.
├── backlog-migration-redmine
├── log
│   └── backlog-migration-redmine-debug.log
└── mapping
├── priorities.json
├── statuses.json
└── users.json

この問題は結局タイムアウトの問題だったのでしょうか?
v0.9.0b27 は、タイムアウトを 300分に伸ばしただけのように見えます。
コミット: 663bea5

@okinaka
別の問題で移行に時間がかかりタイムアウトしてしまうため、タイムアウト時間を修正しております。

ハードコーディングをやめてオプションで指定できるようにすべき。

@kanryu 確かに、オプションで設定できたほうがいい項目だと思いますので、オプションで指定できるように修正します。

こちらの件、内部的な実装が変わって現在は改善されておりますのでクローズしたいと思います。