🇺🇸 This site is also available in English — View English page →
S
Sidekick Lab
by Ichiro Murata

AIマスク生成が終わらない原因を、疑わしい順に一つずつ確かめた

SideKick StarのAIマスク生成が、特定の環境で処理途中のまま終わらなくなる不具合が起きた。有力に見えた原因をひとつずつ確かめては違うと分かり、最終的に別の対策で解決した記録。

村田一朗|写真家・SideKick開発者

SideKick Starには、空や被写体をAIで自動判定してマスクを作る機能がある。この処理を裏側で起動する仕組みに、特定の環境で処理が完了しないまま止まってしまう不具合があった。原因は一つではなく、有力に見えた仮説を順番に確かめては違うと分かる、という時間のかかる調査になった。

何が起きていたのか

処理そのものは正しく動くはずなのに、一部の環境で完了の合図がいつまでも返ってこない。処理が固まっているのか、単に時間がかかっているだけなのか、外からは区別がつかない状態だった。

調べていくと、まず日本語を含むファイルパスの環境で、処理を裏側で起動する方法自体が失敗していることが分かった。しかも、その失敗を監視する側の仕組みがそれに気づかず、いつまでも完了を待ち続けてしまう作りになっていた。

疑って、違うと分かったこと

起動方法をより確実な方式に直しても、同じ問題が別の環境で再発した。ここから、いくつかの仮説を順番に検証していくことになった。

最初に疑ったのは、セキュリティソフトによる検疫や監視だった。裏側でファイルを操作するプログラムを実行しようとすると、こうしたソフトに引っかかることがあるためだ。対策を施してみたが、解決しなかった。

次に、処理の起動方法自体を別の方式へ切り替える案を検討した。試してみると、今度はファイルパスに特定の文字が含まれる場合に新しいバグが見つかり、この案は採用しなかった。

ファイルの書き込み自体を監視する仕組みを組み込んで確かめたところ、そもそも書き込みが行われていないケースがあることが分かった。処理が「固まっている」のではなく、「うまく起動できていない」ということが、ここでようやく具体的に見えてきた。

起動の仕方そのものが、セキュリティソフトの検知対象になっている可能性を疑い、Windowsに標準で備わっているタスク管理の仕組みを使って処理を起動する方式に切り替えた。ここまでで一定の改善は見られたが、念のためセキュリティソフトを一時的に停止した状態でも試したところ、同じ問題が再現した。つまり、セキュリティソフトが原因という説は、最終的に撤回することになった。

なぜこの方法を選んだのか

最終的にたどり着いた見立ては、「大量のファイル操作を連続して行った直後に、処理エンジン側が一時的に不安定になる」というものだった。特定の一つの原因を完全に断定できたわけではないが、複数の環境・複数の条件で再現性を確認しながら、この見立てに沿って対処する方が現実的だと判断した。

対策としては、起動に失敗した場合の再試行を強化した。一度や二度の失敗ですぐに諦めるのではなく、間隔を空けながら複数回試すようにしている。特定の原因を一つに絞り込んで根本から断つより、実際に起きている状況に対して粘り強く対処する方針を選んだ形になる。

利用者にとって何が変わるのか

この修正により、AIマスク生成の起動が失敗しても、処理が完全に止まってしまう可能性は下がった。実際に、まとまった枚数の実データで処理が最後まで完了することを確認している。

ただし、起動失敗そのものが起きなくなったわけではない。起きたときに、より確実に回復できるようになった、という位置づけになる。

まだ残っていること

「大量のファイル操作の直後に処理エンジンが不安定になる」という見立ては、今のところ複数の状況証拠から導いたものであり、完全に立証できているわけではない。今後、同じような現象が別の形で出てきた場合は、この見立て自体を見直す可能性がある。

原因の特定に時間がかかった分、有力に見えた仮説を一つずつ確かめては違うと分かる、という地道な過程を経て今の対策にたどり着いた。派手な解決策があったわけではなく、可能性を一つずつ削っていった結果として今の形になっている。

関連するSideKick製品

SideKick Star