- 
    
Incident report
 - 
    Resolution: Fixed
 - 
    
Minor
 - 
    2.0.0
 - 
    Debian Squeeze, Apache 2.2.17, PHP 5.3.3, PostgreSQL 9.1
 
When HTTP header HTTP_X_FORWARDED_FOR contains multiple IPs (more than 39 chars long in total, inserting in auditlog SQL table fails.
file : include/audit.inc.php, lines 81, 110, 134.
Possible fixes :
- truncate $ip variable to 39 chars
 - increase field 'ip' in SQL table auditlog.
 
Example error messages :
- while trying to change the "managed" status of a host on the host list page :
 
Fatal error: Uncaught exception 'DBException' with message 'SQL statement execution has failed "UPDATE hosts SET status='0' WHERE (hostid IN ('10084')) ".' in /srv/web/zabbix/include/classes/db/DB.php:48 Stack trace: #0 /srv/web/zabbix/include/classes/db/DB.php(448): DB::exception(1, 'SQL statement e...') #1 /srv/web/zabbix/include/hosts.inc.php(572): DB::update('hosts', Array) #2 /srv/web/zabbix/hosts.php(547): updateHostStatus(Array, 0) #3
{main}thrown in /srv/web/zabbix/include/classes/db/DB.php on line 48
- while trying to update "monitored" status on the host configuration or addition page.
 
    pg_query(): Query failed: ERREUR: valeur trop longue pour le type character varying(39) [include/db.inc.php:500]
    Error in query [INSERT INTO auditlog (auditid,userid,clock,ip,action,resourcetype,resourceid,resourcename) VALUES (7,1,1339064203,'172.25.22.93, 172.20.27.250, 172.20.150.18',1,4,10084,'Zabbix server')] [ERREUR: valeur trop longue pour le type character varying(39)]
    Updated status of host "Zabbix server"
    pg_query(): Query failed: ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc de la transaction [include/db.inc.php:500]
    Error in query [UPDATE hosts SET status='0' WHERE (hostid IN ('10084')) ] [ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc de la transaction]
    SQL statement execution has failed "UPDATE hosts SET status='0' WHERE (hostid IN ('10084')) ".