[1.6.x]ホスト/グループ/テンプレートの設定画面でアイテムの無効化/有効化がエラーとなる

※※※ 追記しました。 2010-06-08 10:40

■対象
 zabbix 1.6.2〜1.6.9
 ※1:1.4系と1.8系、1.6.1以前は未確認 2010.05.31
 ※2:1.8系は問題ないとの報告がありました 2010.06.01

■事象
 メニュー[設定]-[ホスト]を選択し、ドロップダウンで「アプリケーション」を選択。
 有効または無効にするアプリケーションにグルーピングされているアイテムの"グループ"、
 "ホスト"を選択し、表示されたアプリケーションをチェック。
 「アイテムを有効にする」「アイテムを無効にする」ボタンをクリックするとエラーが発生する。

■原因
 SQLのWHERE句使用するhostidが取得できない為に発生。

■対処
zabbix-1.6.8\frontends\php\hosts.phpの845行目から850行目のSQL

修正前
<code>
$sql = 'SELECT ia.itemid,i.hostid,i.key_'.
' FROM items_applications ia '.
' LEFT JOIN items i ON ia.itemid=i.itemid '.
' WHERE ia.applicationid='.$appid.
' AND i.hostid='.$_REQUEST['hostid'].
' AND '.DBin_node('ia.applicationid');
</code>

修正後
<code>
$sql = 'SELECT ia.itemid,i.hostid,i.key_'.
' FROM items_applications ia '.
' LEFT JOIN items i ON ia.itemid=i.itemid '.
[color=FF0000] ' LEFT JOIN applications a ON ia.applicationid=a.applicationid '.
' LEFT JOIN hosts h ON a.hostid=h.hostid '.[/color]
' WHERE ia.applicationid='.$appid.
[color=FF0000]// ' AND i.hostid='.$_REQUEST['hostid'].[/color]
' AND '.DBin_node('ia.applicationid');
</code>

[color=FF0000][i]2010-06-08 10:40 追記[/i][/color]
■パッチ
[url=http://sourceforge.jp/projects/zabbix/svn/view/trunk/zabbix/1.6.9/zabbix-1.6.9-app_act_or_dis.patch?root=zabbix&view=log]zabbix-1.6.9-app_act_or_dis.patch[/url]