運営者からのお知らせ

運営者のつぶやき

カレンダー

サイトカレンダをスキップ

October 2020
«
»
Su M Tu W Th F Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

サイトシール


i降りつぶし ver.1.0 既知の不具合

リリースされたばかりなのに不具合がわかっているっていうのはどういうこったい…ユーザーのみなさまにはご迷惑をおかけしております。

  1. メモリが枯渇してきた状態で、「路線」の全事業者画面・「都道府県」の都道府県画面・「読み」の一覧画面上部の、「×駅中×駅」の部分に何も表示されなくなることがある
  2. メモリが枯渇してきた状況で、画面を切り替える操作により落ちることがある
  3. メモリが枯渇してきた状況で、地図との連動ボタン(駅詳細画面での下部にあるボタンや、各一覧画面で右上に表示されることがあるボタン)をタップすると落ちることがある
  4. メモリが枯渇してきた状況で、乗下車記録を更新した直後に落ちることがある(この場合、乗下車記録は正しく更新されています)
  5. メモリが枯渇してきた状況で、サーバーとの同期が完了する直前に落ちることがある(この場合、同期自体は正常に完了しています)

以下に、技術的な詳細情報を記しました。

(1)メモリが枯渇してきた状態で、「路線」の全事業者画面・「都道府県」の都道府県画面・「読み」の一覧画面上部の、「×駅中×駅」の部分に何も表示されなくなることがある

この問題は、メモリ枯渇によりかなりの確率でアプリが落ちていた問題を緊急避難的に解消するための改良により発生してしまいました。原因は、画面がいったん削除され改めて再表示されるケース(メモリ枯渇状況でしばしば生じます)において、情報の再ロードが行われていないことによります。
次期バージョンでは確実に修正されます。

(2)メモリが枯渇してきた状況で、画面を切り替える操作により落ちることがある
(3)メモリが枯渇してきた状況で、地図との連動ボタン(駅詳細画面での下部にあるボタンや、各一覧画面で右上に表示されることがあるボタン)をタップすると落ちることがある
(4)メモリが枯渇してきた状況で、乗下車記録を更新した直後に落ちることがある(この場合、乗下車記録は正しく更新されています)
(5)メモリが枯渇してきた状況で、サーバーとの同期が完了する直前に落ちることがある(この場合、同期自体は正常に完了している)

前述の問題を修正したことにより、落ちるケースはかなり減りましたが、それでも落ちるパターンが2つ確認できています。

まず1つは、地図画面がメモリ枯渇で削除され再表示されるまでの間に、地図への何らかの更新を要求される場合の不具合です。(3)(4)(5)が該当します。
データが更新された場合、地図上のピンの色を変えねばならないことがあるため、強制的にデータベースの再検索を行っています。また、地図上の選択を変更する操作でも、検索は行われます。そしてこれらは、ユーザーによる画面操作を妨害しないよう、作業用スレッドにて行われます。
しかし現在のバージョンでは、この時点で地図画面が削除されているとき、既に解放した作業用スレッドに対して更新要求を行なってしまっています。そのためアプリが落ちてしまいます。
これは純然たるバグですので、次期バージョンでは修正される予定です。
なおこれらの場合、データベースが更新された後の検索で発生しているため、更新自体は完了しています。

一方、もう1つのケース(2)では、メモリ枯渇によりiOSが自動的に「表示されていない画面の削除処理」を行いますが、これによって2重開放されてることがあるようです。
いわばiOSの不具合ではないかと思われますが、こちらのアプリが画面切り替えのタイミングでデータベース検索を行うため、すなわちメモリ要求を行うために発生するものだとも言えます。
なんとかこのあたりを回避できないか、研究を続けたいと考えています。