4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have 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 に戻しても無事繋がるようになりました。

4
1
0

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
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?