Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-2580

Login query performs JOIN to tables it does not reference in SELECT or WHERE clauses

XMLWordPrintable

    • Icon: Incident report Incident report
    • Resolution: Fixed
    • Icon: Major Major
    • 1.8.3
    • 1.8.2
    • Frontend (F)
    • None

      Spotted this in my MySQL slow query log:-

      1. Time: 100619 12:27:14
      2. User@Host: zabbix[zabbix] @ []
      3. Query_time: 0.002134 Lock_time: 0.000121 Rows_sent: 675 Rows_examined: 1
        SET timestamp=1276950434;
        SELECT u.userid,u.alias,u.name,u.surname,u.url,u.refresh,u.passwd FROM users u, users_groups ug, usrgrp g WHERE u.alias='monitoring' AND ((u.userid BETWEEN 000000000000000 AND 099999999999999));

      Why do you perform a join on tables you don't use??

      Fixed it with this patch:-

      1. diff -up api/classes/class.cuser.php api/classes/class.cuser.php.orig
          • api/classes/class.cuser.php 2010-06-19 12:36:41.000000000 +0000
            +++ api/classes/class.cuser.php.orig 2010-06-19 12:27:02.000000000 +0000
            @@ -379,7 +379,7 @@ class CUser extends CZBXAPI{

      if($login){
      $sql = 'SELECT u.userid,u.alias,u.name,u.surname,u.url,u.refresh,u.passwd '.

      • ' FROM users u '.
        + ' FROM users u, users_groups ug, usrgrp g '.
        ' WHERE u.alias='.zbx_dbstr($name).
        ((ZBX_AUTH_INTERNAL==$auth_type)?' AND u.passwd='.zbx_dbstr($password):'').
        ' AND '.DBin_node('u.userid', $ZBX_LOCALNODEID);

            Unassigned Unassigned
            bje Jaco Engelbrecht
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: