[imp] pgsql_sessionhandler.sql not working?

imp imp at xtremedev.com
Tue Jul 8 00:43:14 PDT 2003


Hello,

  I'm currently running horde and imp from HEAD (cvs'd as of five hours
  ago) successfully with postgresql 7.3.3 and cyrus-imapd2. With one
  minor exception, I can't get session handling to work through sql --
  It only works with file based handling.

  Starting up psql and connecting to the horde database, I see:

horde=# \d horde_sessionhandler 
           Table "public.horde_sessionhandler"
        Column        |         Type          | Modifiers 
----------------------+-----------------------+-----------
 session_id           | character varying(32) | not null
 session_lastmodified | integer               | not null
 session_data         | text                  | 
Indexes: horde_sessionhandler_pkey primary key btree (session_id)

  (This was after running \i horde/scripts/db/pgsq_sessionhandler.sql)
  I also have the following line in horde/config/conf.php:

$conf['sessionhandler']['type'] = 'sql';

  But when I try to login via imp, I am immediately logged out with an
  error message saying my session has expired. Doing a select * from
  horde_sessionhandler; returns one line, one very long line.

  However, if I set the above line to the default file-based handler, I
  can login just fine:

$conf['sessionhandler']['type'] = 'none';

  I am at a loss as to how to debug this, or figure out why the sql
  entry is being created but not used (or why it's telling imp that the
  session has expired.)

  I know the horde database works because everything else is using sql
  as the handler: vfs, tokens, cache, category, prefs, etc. I am able to
  successfully save my preferences, for example.

  What are some things I can try to debug this? I see this in horde.log
  when I try to login using the sql sessionhandler:

Jul 08 01:36:52 HORDE [debug] [imp] SQL Query by SessionHandler_sql::destroy(): query = "DELETE FROM horde_sessionhandler WHERE session_id = '60ebeee4135eb75857951728840d5b8f'" [on line 142 of "/usr/local/www/data/horde/lib/SessionHandler/sql.php"]
Jul 08 01:36:52 HORDE [notice] [imp] Login success for testuser at XtremeDev.com [192.168.1.2] to {mail.XtremeDev.com:993} [on line 108 of "/usr/local/www/data/horde/imp/redirect.php"]
Jul 08 01:36:54 HORDE [info] [imp] Session timeout for client [192.168.1.2] [on line 83 of "/usr/local/www/data/horde/imp/login.php"]
Jul 08 01:36:54 HORDE [debug] [horde] SQL Query by SessionHandler_sql::write(): query = "SELECT session_id FROM horde_sessionhandler WHERE session_id = '63ada1f71f18ce3dce624d8470d7a7b4'" [on line 103 of "/usr/local/www/data/horde/lib/SessionHandler/sql.php"]
Jul 08 01:36:54 HORDE [debug] [horde] SQL Query by Horde_SQL::updateBlob(): query = "UPDATE horde_sessionhandler SET session_lastmodified = ?, session_data = ? WHERE session_id = ?" [on line 201 of "/usr/local/www/data/horde/lib/SQL.php"]

  And on imp, I see: "Your Mail session has expired. Please login
  again."

  In psql, select session_id from horde_sessionhandler where session_id
  = '63ada1f71f18ce3dce624d8470d7a7b4' returns with it, showing that it
  does exist in the database table.

  Ideas? Anyone else running horde/imp HEAD with Postgresql for
  sessionhandler?


More information about the imp mailing list