昨日、デジタル表示の置き時計が鳴り始めた。

 

電池交換以外では触れない位置にあるので、何も設定していない。

 

電池が少ないと誤動作して鳴ることはあるが、電池交換が必要な状態ではなかった。

 

磨りガラス越しに日光が当たる位置にあるのはよくないのだが、日光(朝日)が当たっている。

 

熱暴走かな?とも思ったが、時計が日光で熱くなっている訳でもない。

 

その後は誤動作していない。

 

こうなると、単発の症状が太陽フレアと重なっていることが偶然とは思えない…

 

macOS のソフトウェア アップデートを行って再起動したら

が出た。アプリ名がなんとも…

 

詳細を見ると

Exception Type:        EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes:       0x0000000000000001, 0x0000000000000000
~~~(略)~~~

Thread 5 Crashed:: ExceptionSafeThread
0   CoreSymbolication                     0x7ff8247666fe invocation function for block in TMachOHeaderIterator<SizeAndEndianness<Pointer64, LittleEndian>>::iterate() + 4
1   CoreSymbolication                     0x7ff824724b13 invocation function for block in TMachOHeaderIterator<SizeAndEndianness<Pointer64, LittleEndian>>::iterate() + 796
2   libdyld.dylib                         0x7ff80d97553b _dyld_process_info_for_each_image + 43

となっているので、リストを反復子で参照中に別スレッドでデータを削除されたと思われる。

 

不完全なマルチスレッド プログラムが原因かな…

昨日は 3月5日 だが、壁掛け時計の日付を見ると 3月6日(金) となっていた。

 

しかし、受信は良好な状態を表示していて時刻に狂いはない。

 

日時の誤受信による誤表示らしい。

 

リセットして強制受信したら直ったが…

 

 

JJY 日付情報は西暦下二桁(年)と元日からの通日、曜日がある。

 

JJY にはエラー検出用として時・分にはパリティがあるが日付にはない。


しかし、年・通日から曜日は計算可能なので、受信した曜日と比較がエラー検出として利用できる。

 

Android 端末に入れた micro SD に対するエラーが出ていた。

 

フォーマットしても利用可能にならないので、外して Ubuntu (Linux) を使って調べる。

  1. 読み込みエラーは発生しない
  2. 書き込みエラーも発生しない
  3. 読み取ると更新されていなかった
書き込みは実行できたフリをするが実際は出来ないという症状だった…