Page tree

 コンテンツ

質問

Helix Swarmをインストールし、当日は使用できました。
翌日アクセスしたところ、以下のエラーメッセージが表示されました。

対応方法を教えてください。

表示されるメッセージ

Swarm has detected an error

Please investigate the below PHP error:
Command failed: Your session has expired, please login again.

回答

「Your session has expired」はHelix Swarm管理用ユーザのチケット有効期限が失効した場合に表示されます。

以下の手順で設定をご確認ください。

手順

1.グループ仕様の編集

Helix Swarmの管理用ユーザが所属しているグループで、"Timeout"フィールドを"unlimited"に変更し、
チケットの有効期限を無期限に変更します。

実行コマンド例

p4 -p server:port -u super group swarm_group

 ※ server:port:接続先のHelixサーバの情報を指定します
 ※ super:Helixのスーパー権限ユーザを指定します
 ※ swarm_group:Helix Swarmの管理用ユーザが所属しているグループ名を指定します

フィールド編集例

Timeout: 43200 (デフォルト値)
 ↓
Timeout: unlimited


■ P4Adminを使用して編集を行う場合

[ ユーザとグループ ]タブでHelix Swarm管理用ユーザが所属しているグループを右クリックし、[ グループ"グループ名"を編集 ]を選択します。
編集画面の"ログインセッションが期限切れとなるまでの期間"で[ Unlimited ]を選択して[ OK ]をクリックします。


2.チケットの確認

Helix Swarm サーバマシンにアクセスし、ログインを行った後、チケットの確認を行います。

ログインコマンド例

p4 -p server:port -u swarm login

チケット期限確認コマンド例

p4 -p server:port -u swarm login -s

 ※ server:port:Helix Swarmが参照するHelixサーバの情報を指定します
 ※ swarm:Helix Swarmの管理用ユーザを指定します
   "-s"オプション:現在のチケットのステータスを表示します 

チケット期限表示例

User swarm ticket expires in 166496 hours 29 minutes.

次に、チケットの値を確認します。

実行コマンド例

p4 -p server:port -u swarm login -p

コマンド結果例:パスワード入力後

Enter password:
6024B04A0FBE066AC2A85B0AXXXXD21A

チケット値をテキストファイルなどにコピーし、一時的に記録します。


3.Helix Swarmにチケット値を設定する

Helix Swarmの設定ファイル(config.php)に手順2で取得したチケット値を設定します。
以下ファイルの"password"フィールドを編集して保存します。

設定ファイル格納先: /opt/perforce/swarm/data/
設定ファイル: config.php

編集例

'p4' => array(
'port' => 'server:port',
'user' => 'swarm',
'password' => '6024B04A0FBE066AC2A85B0AXXXXD21A',
),


4.Swarmキャッシュファイルの削除

"config.php"を変更したので、キャッシュ情報をリセットします。

キャッシュのリセットコマンド例

curl -u "username:password" -X DELETE "https://myswarm.url/api/v9/cache/config/"

 ※ username:password:Helixサーバの管理者ユーザIDとパスワードを指定します
 ※ myswarm.url:Helix SwarmURLを指定します


5.Apacheの再起動

設定変更を反映させるため、Apacheの再起動を行います。

実行コマンド例

apachectl restart