LoginSignup
1

More than 1 year has passed since last update.

yum update したら perforce が死んだ話

Posted at

久しぶりに AWS サーバーにログインして yum update したら P4 が繋がんなくなったお話です。死ぬかと思った。

インスタンスを再起動 ~ p4d 復旧まで

ひとまず EC2 インスタンスを再起動するかー、とコンソールから実行。
あれ、でも P4 サーバーってどうやって起動したんだっけ・・・?としばらくググる。
P4 コマンドさえも $P4PORT を設定していないので通らない状態でした。

Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to perforce:1666 failed.
perforce: host unknown.

備忘録として残しておきます。

p4 set P4USER=username
p4 set P4PORT=1666

p4d コマンドの実行

まずは P4 サーバーのルートディレクトリ探しから。
自分の場合は /opt/perforce/servers/master/root に構築してました。
何のドキュメントを見ながら作ったのか、全く覚えてないのだが perforce ユーザー権限で作成されていた。こういうのはメモしておくべきだと激しく後悔。

-bash-4.2$ ls
db.bodresolve   db.graphindex  db.logger    db.revpx      db.templatesx
db.bodresolvex  db.graphperm   db.message   db.revsh      db.templatewx
db.bodtext      db.group       db.monitor   db.revstg     db.ticket

こういった db ファイルがたくさん並んでいるのがルートディレクトリのようです。
さっそく再起動コマンドを実行する。

-bash-4.2$ p4d -r /opt/perforce/servers/master/root -p 1666
-bash-4.2$

しかし、なにもおこらなかった!

ログ調査

/opt/perforce/servers/master/logs/log

cd コマンドを唯々繰り返していると logs ディレクトリが存在していることに気づく。

Perforce server error:
        Database is at old upgrade level 36.  Use 'p4d -r /opt/perforce/servers/master/root -xu' to upgrade to level 39.

これだ!これだよ!

-bash-4.2$ p4d -r /opt/perforce/servers/master/root -xu
Upgrades will be applied at server startup.

そして再び起動コマンドを実行。

-bash-4.2$ p4d -r /opt/perforce/servers/master/root -p 1666 -d
Perforce Server starting...

-r で P4ROOT の指定、-p でポートの指定、-d でバックグラウンド実行となります。

P4V からの接続テスト

ssl:{address}:1666

いつも通り SSL での接続を試みる。

SSL connect to ssl:dev.nanae.online:1666 failed (既存の接続はリモート ホストに強制的に切断されました。 ).
Remove SSL protocol prefix from P4PORT or fix the TLS settings.

??? SSL プロトコルで繋がんない?

tcp:{address}:1666

繋がったァァァ!?!??

TLS 設定とはなんぞや?

ついにTLS 1.0/1.1の無効化が決定!影響や確認・対応方法とは?

簡単に説明すると、TLSは「暗号化通信をするための手順書」のようなものですが、TLS 1.0/1.1などの古いバージョンには脆弱性がある(一定の条件下であれば暗号解読が可能である)ため、利用は非推奨とされていました。

どうやら脆弱性のある規格のようで。もしかすると yum update でその辺も更新されちゃったのかもしれないですね。

Perforce の設定

Perforce を調べるにもなかなかに文献が少なく苦労します。
SSL and TLS Protocol Versions

p4d -r /opt/perforce/servers/master/root -c"set ssl.tls.version.min=10"

ブログにある通り、一旦 TLS v1.0 でも接続できるように設定。"p4 admin restart" だけじゃ反映されないそうな。めんどくさいので sudo reboot しました。ここでようやく SSL でも接続可能に。

P4V クライアントの更新

Version: P4V/NTX64/2020.2/2028073

って書いてあるんで
bec1d9557fbcc8d97e156c2f473258f9.png
更新ポチ。TLS 1.1 に戻しても無事繋がるようになりました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1