キレたのでブログに書く。ACのネタにはできるけど、そもそも壊れないでほしい。
macOSをSonomaにアップグレードしたらCircuitPythonの挙動がおかしくなった
MacBookを先行でSonomaにアップグレードして、ぱっと触った感じ問題なかったのでMac miniの方もSonomaにアップグレードしました。
原稿執筆とかの休憩にMinecraftをしていて、久々にCircuitPythonでマクロを組んで使いたくなるような気が狂ったタスク(ネザーで組み上げられた数十LCの溶岩をオーバーワールドに移送)が生えたので、先日の甥キーで使用しているPicoのCircuitPython環境でスクリプトを書いていたら、なんだかエディターがクラッシュしてkill -9でも死ななくなりました。なんだ?REPLを見るとInput/output errorとか言う不穏なメッセージも。いろいろ試したりしているうちに、とうとうcode.pyが0バイトになってしまいました。うそん……。せっせと書いた、本ボタンでLCからシュルカーボックスにアイテムを移すマクロが……。
macOS側のバグらしい
すぐに[circuitpython sonoma corrupt]で検索したら、ちゃんとIssueが出てきましたよね。
ここで絶賛議論中で、とは言えmacOS側の問題なので、やれることとしてはAppleにフィードバックを送りまくれ、とのこと。詳細はAdafruitのサイトにまとめられています。
8MB以下のCircuitPython環境のようなドライブで、ファイルの書き込んでもディレクトリの更新に20秒〜1分かかるので、その間に立て続けに保存が発生するとファイルシステムが破損する、ということのようです。きょうび8MBの低速なドライブなどないだろうとナメた実装をしたがるエンジニアがAppleにいるのでしょうが、あるんだよな……。
対策として、再マウントすればOKらしく、デバイス接続時とリセット時に実行するためのシェルスクリプトが案内されています。が、面倒だな……。
前もやってたじゃん
去年の今頃も、Venturaでドライブに変化小細工をしようとしてFinderからファイル操作できなくなるバグが有りました。このときもだいぶ迷惑をしましたが、Sonomaでもやらかしてるの、やってんなあ〜〜!おい!!という気持ちです。