Hituzi Ando's Blog

日々のアプリ開発についてや雑記など。

/tmpのパーミッションが原因だった(?)

2日間くらい以下の事象に悩まされていました。とても時間を浪費した気がするので、また同じ事象が生じたとき用に備忘録を残しておきます。

いずれもいつの間にかできなくなっていました。ちなみに、使っているPCはMacBook Air (Retina, 13-inch, 2018)でOSバージョンはmacOS 10.15.2です。

結論から言うと

タイトルにもあるように、/tmpのパーミッションが原因だったようです

曖昧な表現なのは、色々やっていて、いつの間にか治った感があり、結局、/tmpのパーミッションが原因だったか確認できていないためです。けっこう焦っていたのでBefore/Afterの状態遷移を確認していなかったです…

事象

VPN接続できない!

これは非常に焦りました。VPN接続できないと仕事に支障をきたすためです。

最初は接続先の設定が変わったのかな、と疑いましたが、他の人は接続できているのと、iOS版のCisco AnyConnectアプリを使えば自分のアカウントでも接続できたため、これは自分のMacBookに原因があるのだなと切り分けはできました。

App StoreiOSアプリをアップロードできない!

このiOSアプリは個人開発しているアプリなので、緊急性は低かったのですが、早くリリースしたいという思いもあり、アップロードできないことにイライラしていました。

f:id:hituziando:20200124001051p:plain
App Store Connect Operation Error

ERROR ITMS-90725は、iOS12.1以上をターゲットにビルドされたアプリでないとアップロードできないというエラーなのですが、いや、Deployment Target=iOS12.1でやっているし…

Xcodeの再起動、クリーンビルド、Provisioning Profileの更新など思いつくことは一通りやってみたのですが、いずれもダメでした。

Photoshopが起動できない!

起動しようとすると、100%応答なしになる。何故だ…

やってダメだったこと

  • アプリの再起動
  • MacBookの再起動
  • ディスクユーティリティのFirst Aid
  • セーフモードでの起動からの再起動
  • SMCリセット

Macがおかしいかな、というときに試すことはやってみましたが、いずれも効果なしでした。

突然、光が見えてくる

事象が解消されず悶々としていましたが、他の仕事も進めないといけないため、その作業をしているとき、偶々、以下のMySQLが起動できないとうエラーに遭遇しました。

ERROR: for mysql  Cannot start service mysql: failed to create OCI runtime console socket: mkdir /tmp/pty250188720: permission denied: unknown
Encountered errors while bringing up the project.

mkdir /tmp/pty250188720 の権限が無いというエラーなので、以下のコマンドで権限を与えてやりました。

sudo chmod 1777 /private/tmp

# /tmpが無いときは作ればいいみたい
sudo mkdir /private/tmp
sudo chown root:wheel /private/tmp
sudo chmod 1777 /private/tmp
sudo ln -s /private/tmp /tmp

これでMySQLは無事起動できました。

この時、ふと思ったのです。/tmpって上記の事象のときにも使ったりするんじゃないかと。そこで試してみたところ、全事象がキレイに解消されているではないですか! (これか、これが原因なのか!?)

/tmpのパーミッションなんて自分で変更することはまず無いので、いったいいつ誰が変更したのか…

結局、何かよくわからないですが、もしまた同じような事象が発生したとき、チェックポイントの一つとして覚えておこうと思います。