Project

General

Profile

Bug(バグ) #1780

php ./symfony openpne:install時にエラーが出る

Added by pnetan   over 8 years ago. Updated over 3 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Assignee:
Target version:
Start date:
2010-11-11
Due date:
% Done:

100%

3.6 で発生するか:
No
3.8 で発生するか:
Unknown (未調査)

Description

http://sns.openpne.jp/diary/25547 より転記

サーバ:試験用のWindows XPの普通のノートPC

下記インストール済み、動作確認OK
Apacche 2.2.17
MySQL 5.1.52
PHP 5.3.3

OpenPNEは3.4.8をDLして、D:\OpenPNEに展開した。
あとは、セットアップなんだけど

php ./symfony openpne:install

でエラーが出て先に進めず。エラー内容解析中。

Related issues

Related to OpenPNE 3 - Backport(バックポート) #2308: php ./symfony openpne:install時にエラーが出る Fixed(完了) 2011-07-27
Related to OpenPNE 3 - Backport(バックポート) #2682: php ./symfony openpne:install時にエラーが出る Invalid(無効) 2010-11-11 2012-01-12
Related to OpenPNE 3 - Bug(バグ) #3603: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る Fixed(完了) 2017-05-26

Associated revisions

Revision fa428214 (diff)
Added by Yuya Watanabe almost 8 years ago

(fixes #1780) fixed to continue the install process whether can access to channel server or not

History

#1 Updated by Kousuke Ebihara over 8 years ago

  • 3.6 で発生するか set to No

#2 Updated by Mutsumi Imamura almost 8 years ago

  • Priority changed from Normal(通常) to High(高め)
  • Target version set to OpenPNE 3.7.0

報告元の追加報告を転記します。

pnetanさん、kit.tさん

すみません、しばらくこのサイトにこられず放置状態でしたm(_ _)m

kit.tさん
config以下のファイルのコピーはすませて、base_urlとhttp_proxyの設定は書き換えてあります。

エラーの内容は

=============ここから=============
The DBMS : mysql
The Database Username : xxxxxxxx
The Database Password : ******
The Database Hostname : localhost
The Database Port Number :
The Database Name : openpne
The Database Socket :

Is it OK to start this task? (Y/n)

Y
>> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"...
>> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com
"...

Unable to register channel "pear.symfony-project.com" 
=============ここまで=============

なので、pear.symfony-project.comでchannel登録が出来ません。ですね、サーバーはイントラネット内に置いてあるので、PROXYの問題が考えられます。試験的にネット環境を変えて再度トライしてみようと思います。

#3 Updated by isao sano almost 8 years ago

  • Subject changed from 作業日記 to php ./symfony openpne:install時にエラーが出る

#4 Updated by Shingo Yamada almost 8 years ago

  • 360対象 set to RC1

#5 Updated by Shingo Yamada almost 8 years ago

  • Assignee set to Yuya Watanabe

プラグインチャンネルサーバに繋げない環境でも、何らかの形でインストールが正常に行える様に修正をお願いします。

#6 Updated by Yuma Sakata almost 8 years ago

  • 360対象 deleted (RC1)

#7 Updated by Shingo Yamada almost 8 years ago

  • 360対象 set to RC1

#8 Updated by Yuya Watanabe almost 8 years ago

  • Status changed from New(新規) to Accepted(着手)

#9 Updated by Yuya Watanabe almost 8 years ago

処理の流れ

問題であると思われるまでの処理の流れを記述する.

  1. OpenPNEインストール時にlib/task/opPluginSyncTask.class.phpが実行される.
  2. opPluginSyncTaskクラスにおいて
    1. config/OpenPNE.yml内plugin_list_base_urlの値にあるURLからプラグインリストを取得する,
    2. それぞれのプラグインのlib/task/opPluginInstallTask.class.phpのインスタンスが生成され,実行される.
  3. opPluginInstallTaskクラスexecute()メソッドにおいて
    1. チャンネルサーバの設定を確認する.設定はconfig/OpenPNE.yml内default_plugin_channel_serverの値を用いる.
    2. lib/plugin/opPluginManager.class.phpを生成する.
  4. opPluginManagerクラス__construct()において
    1. lib/vendor/symfony/lib/plugin/sfPearEnvironment.class.phpのregisterChannel()を用いてチャンネルサーバを登録しようとする.
    2. 同クラス内registerOpenPNEPackage()を呼び出す.

原因

処理の流れ4-2の部分でチャンネルサーバに接続できないためOpenPNEのパッケージ登録に失敗することで発生しているsfPluginExceptionを拾う部分がないためOpenPNEインストールタスク全体が停止する.

原因の発生源

上記問題箇所は以下のような流れで発生している.

  1. 7c851276 チャンネル登録部分が追加される.
  2. 7b2d8f45 チャンネル登録時の例外処理を追加される.
  3. 3c19fa17 OpenPNEのパッケージ登録部分の追加(本チケットにおける問題を発生する例外を投げる部分)

実装方針

本チケットの問題を解決するにはOpenPNEインストールタスク全体が停止しないようにする必要がある.
ここではプラグインインストールが失敗するという粒度にすることが適切であると思われるため,処理の流れ2-2の呼び出し部分より深い部分で例外処理を行うべきである.
プラグインチャンネルサーバにつながらないという原因の場合,例外の発生源として以下の場所が考えられる.
  • 処理の流れ4-2でOpenPNEのパッケージ登録に失敗すること投げられるsfPluginException
  • 処理の流れ4-1でチャンネルを登録できないときに投げられるsfPluginException(対処済み)

後者の発生源は例外に対して処理が施されているが 7b2d8f45 において何らかの問題を解決するためにすでに深い階層部分で例外処理を行う修正が行われている.
そのため例外を拾う部分はopPluginManagerクラス__construct()内となる4-2で例外処理を行うことが妥当であると思われる.

#10 Updated by wa ta almost 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 fa42821448ce1ecaef508140fca28463827beee9 で適用されました。

#11 Updated by Yuya Watanabe almost 8 years ago

note-10適用後では処理の流れ2-2においてsfCommandExceptionが発生し,これを拾う処理がなされるようになる.
これは引数のoptionに--force-licenceを付与することで発生しないようにすることもできるが,適切かどうかの判断はまだ行っていない.

#12 Updated by Yuya Watanabe almost 8 years ago

記述順が前後するが,本チケットの問題の確認方法を記載する.

確認方法

  1. OpenPNE3のソースを取得し,セットアップの準備を行う.
  2. config/OpenPNE.yml内default_plugin_channel_serverの設定をlocalhostにする(チャンネルサーバがつながらない状態にする)
  3. 「symfony openpne:install」を実行する

特記事項

単純にネットワークに繋げない状態にするだけではconfig/OpenPNE.yml内plugin_list_base_urlの設定にあるURL先からプラグインリストが得られず,本チケットでの修正部分を実行しない.

#13 Updated by Kousuke Ebihara almost 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#14 Updated by Mutsumi Imamura over 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

#15 Updated by kaoru n about 5 years ago

  • Related to Bug(バグ) #3603: pear.symfony-project.com に接続できない時、php ./symfony openpne:install時にエラーが出る added

#16 Updated by kaoru n over 3 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF