パッケージインストール失敗時の挙動について
2014年3月14日 at 15:02
パッケージインストール失敗時の挙動がおかしいので報告します。
現象:
パッケージのインストールに失敗すると、マーケットプレイスと通信不能になる。
解決方法:
データベース内のテーブルblocksにbtCachedBlockRecordがNULLの行が追加されるので、それを削除する。
修正方法:
内部の挙動が不明なので分かりませんが、ブロックのインストール失敗時、blocksテーブルにのこったゴミを削除するように修正すべきと思います。
詳しい状況:
パッケージ開発の練習台として開発した、空のブロック(basic_testのようなもの)二つを含むパッケージをインストールしたところ、二つ目のブロックのインストール時、エラーとなりました。どうやら、/package/blocksの下ではなく、/concrete/blocks以下を探して失敗した様子です。このあたりConcrete5の挙動がまだわかっていないので、どうなっているのかわかりませんが、真っ白の画面に、PHPのトレースのみが二行表示されるという感じでした。
多分、存在しないパス(ブロック名)を指定してインストールを失敗させると同様の共同になると思われます。ほかに、踏んでいる人がいないようなので報告しました(まあ、こちらのパッケージがおかしかったのだと思いますが、インストールに失敗しただけで、マーケットプレイスに接続できなくなるという不可思議な現象だったので、念のため報告します。
タグ:
Re: パッケージインストール失敗時の挙動について
2014年3月17日 at 16:46
ソースは出せないのですが、再現方法はわかっています。パッケージ自体の内容は、不具合と関係ありません。ここ→http://www.concrete5.org/documentation/developers/system/packages/ にあるような空のパッケージでもよいのでとりあえず用意してください。そのうえで、ブロックのクラス名を誤ったものに置き換えます。こちらで上記の現象が発生した際は、EstateThumbsBlockControllerとすべきところ、誤ってEstateThumbsControllerとしていたのが原因でインストールが失敗していました。問題は、失敗した際、blocksテーブルにおかしな行が書き込まれてしまうことです。インストールに失敗したブロックの記録が書き込まれてしまうので、修正したほうがいいかと^^;
Re: パッケージインストール失敗時の挙動について
2014年3月19日 at 7:07
btCachedBlockRecordにnullが入ること自体は正常な挙動なので、それが原因ではないと思いますね。基本的には、パッケージ作者が正常にインストールできることを担保すべきですが、マーケットプレイスに接続できなくなったのもおそらく別の原因だと考えられます。
Your post has been saved and will be published after approval by the forum moderator.
Katz Ueno
Re: パッケージインストール失敗時の挙動について
ちょっと、そのテストパッケージの詳しい構成内容を教えて頂けますでしょうか。