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. 読み取ると更新されていなかった
書き込みは実行できたフリをするが実際は出来ないという症状だった…
 

macOS 14.2 (Sonoma) を(再)起動する度に出る。

クラッシュ ログでは原因が分からなかったが、ネットワークの設定を弄っていて原因が分かった。

 

「システム環境設定 → ネットワーク → フィルタ」で「ESET Firewall」を無効にしようとする。

これだけの操作で「launchctlが予期しない理由で終了しました。」が出る。

 

原因は ESET でした...

macOS をアップデートして再起動したら

が出た。レポートの詳細を見ると

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)

Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000bad

Exception Codes:       0x0000000000000001, 0x0000000000000bad

~~~(略)~~~

Thread 1::  Dispatch queue: */CoreSpotl

0   libsystem_kernel.dylib            0x7ff8088bd60e __psynch_cvwait + 10

1   libsystem_pthread.dylib           0x7ff8088fa76b _pthread_cond_wait + 1211

2   SpotlightIndex                    0x7ff8225c7c4c iterateTermsForIndexes + 777

3   SpotlightIndex                    0x7ff82264f70b mergeIndexData + 3094

4   SpotlightIndex                    0x7ff82264e940 _ContentIndexMergeIndexes + 290

5   SpotlightIndex                    0x7ff8225c69d1 InnerMerge + 2329

6   SpotlightIndex                    0x7ff82264e345 OuterMerge + 2285

7   SpotlightIndex                    0x7ff8225c5ea1 MergeIndexes + 579

8   SpotlightIndex                    0x7ff822659c90 si_mergeIndex + 2825

9   SpotlightIndex                    0x7ff8226447e6 compaction_runLoop + 110

10  SpotlightIndex                    0x7ff8225fcc7e work_fun + 859

11  libdispatch.dylib                 0x7ff80875f002 _dispatch_block_async_invoke2 + 85

~~~(略)~~~

Thread 7 Crashed::  Dispatch queue: */CoreSpotlight

0   SpotlightIndex                    0x7ff8225bcc77 compressPostings + 4423

1   SpotlightIndex                    0x7ff822624cd1 index_FlushCache + 6769

2   SpotlightIndex                    0x7ff8226383b0 indexPrepareForSyncBulk + 809

3   SpotlightIndex                    0x7ff82259e0a8 _CISyncContextSync + 522

4   SpotlightIndex                    0x7ff8226370a1 _ContentIndexSyncIndexBulk + 319

5   SpotlightIndex                    0x7ff822635bfb syncIndex + 2896

6   SpotlightIndex                    0x7ff8226227a8 flush_runLoop + 110

7   SpotlightIndex                    0x7ff8225fcc7e work_fun + 859

8   libdispatch.dylib                 0x7ff80875f002 _dispatch_block_async_invoke2 + 85

他のスレッドは動作していないので、Thread 1 で開放した領域を Thread 7 がアクセスした風に見える。

 

マルチスレッド プログラムの不具合の再現性が低いのでなかなか直らない。

 

前回のクラッシュは約1年前。