I get on several installations (including mines) tons of the following
error log entries:

[15-May-2014 10:00:11 +0200]: DB Error: [1062] Duplicate entry
'0l483tpe3t9nvuj9p7rb0cn8p0' for key 'PRIMARY' (SQL Query: INSERT INTO
session (sess_id, vars, ip, created, changed) VALUES
('0l483tpe3t9nvuj9p7rb0cn8p0',
'dGVtcHxiOjE7bGFuZ3VhZ2V8czo1OiJpdF9JVCI7dGFza3xzOjU6ImxvZ2luIjtwbHVnaW5fbWFuYWdlcl9zZXR0aW5nc3xhOjEwOntzOjI3OiJwbHVnaW5fbW
*** MASKED ***, '95.228.34.241', now(), now())) in
/var/www/html/roundcubemail-1.0.1/program/lib/Roundcube/rcube_db.php on
line 467 (GET /?_task=logout)

This is obviously related to rcube_session.php lines 230 ff. (Roundcube
1.0.1). Shouldn't Roundcube check there if an entry already exists? If
so so, then there should be an UPDATE query instead of INSERT.

Possible fix:

{{{

        else {
$result = $this->db->query("SELECT io FROM $table WHERE sess_id = ? LIMIT 1", $key);
            if (is_array($this->db->fetch_assoc($result))) {
$this->db->query("UPDATE $table SET vars = ?, ip = ?, changed = ? WHERE sess_id = ?", base64_encode($vars), (string)$this->ip, $now, $key);
            } else {
$this->db->query("INSERT INTO $table (sess_id, vars, ip, created, changed)"
                    . " VALUES (?, ?, ?, $now, $now)",
                    $key, base64_encode($vars), (string)$this->ip);
            }
        }

}}}


_______________________________________________
Roundcube Development discussion mailing list
dev@lists.roundcube.net
http://lists.roundcube.net/mailman/listinfo/dev

Reply via email to