[Tickets #7394] persist the syncml state in multiserver environments

bugs at horde.org bugs at horde.org
Thu Sep 25 19:15:46 UTC 2008


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/7394
------------------------------------------------------------------------------
  Ticket             | 7394
  Created By         | adrieder at sbox.tugraz.at
  Summary            | persist the syncml state in multiserver environments
  Queue              | SyncML
  Type               | Enhancement
  State              | New
  Priority           | 2. Medium
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


adrieder at sbox.tugraz.at (2008-09-25 15:15) wrote:

I'm not sure if this is a bug therefore I write this feature request:

In a setup which uses multiple loadbalanced servers with a shared  
session backend (memcached) it can happen that the loadbalancer  
redirects requests which belong to the same sync session to different  
servers, e.g. when the database (calendar for e.g.) is large the sync  
is divided into more then one request:

Here is a log for such a case:
DEBUG:  Backend of class SyncML_Backend_Horde created
DEBUG:  Started at 2008-09-25 20:49:48. Packet logged in  
/tmp/sync/client_10.wbxml
DEBUG:  New session created: 3baf28e3f425a8aa4cb8281f978e16ee
DEBUG:  Checking authentication for user riederd
DEBUG:  Authenticated: yes; version: 1.2; message ID: 1; source URI:  
IMEI:xxxxxxxxxxxxxx; target URI: ....
[....]
DEBUG:  Return message completed
DEBUG:  Finished at 2008-09-25 20:49:48. Packet logged in  
/tmp/sync/server_10.wbxml

DEBUG:  Backend of class SyncML_Backend_Horde created
DEBUG:  Started at 2008-09-25 20:49:55. Packet logged in  
/tmp/sync/client_11.wbxml
DEBUG:  Existing session continued: 3baf28e3f425a8aa4cb8281f978e16ee
DEBUG:  Authenticated: yes; version: 1.2; message ID: 2; source URI:  
IMEI:xxxxxxxxxxxxxx; target URI: ....
DEBUG:  Created device class SyncML_Device_Nokia
DEBUG:  Created device class SyncML_Device_Nokia
DEBUG:  Received <Final> from client.
DEBUG:  Handle <Final> for state Sync
DEBUG:  Creating <Sync> output for server changes in database ./notes
DEBUG:  Created device class SyncML_Device_Nokia
DEBUG:  Compiling server changes from 1970-01-01 01:00:00 to  
2008-09-25 20:49:48
[...]
DEBUG:  Sending add from server: 20070628193702. at webmail.tugraz.at
DEBUG:  Sending add from server: 20070628193732. at webmail.tugraz.at
DEBUG:  Maximum message size 65535 approached during add; current size: 65072
DEBUG:  Return message completed
DEBUG:  Finished at 2008-09-25 20:50:00. Packet logged in  
/tmp/sync/server_11.wbxml

the next request is switched to another server, which results into a  
authentication error:

DEBUG:  Backend of class SyncML_Backend_Horde created
DEBUG:  Started at 2008-09-25 20:50:16. Packet logged in  
/tmp/sync/client_10.wbxml
DEBUG:  New session created: 3baf28e3f425a8aa4cb8281f978e16ee
DEBUG:  Invalid authentication
DEBUG:  Authenticated: no; version: 1.2; message ID: 3; source URI:  
IMEI:xxxxxxxxxxxxxx; target URI:
ERR:    Not authenticated while processing MapItem
ERR:    Not authenticated while processing MapItem
[....]
ERR:    Not authenticated while processing MapItem
DEBUG:  Return message completed
DEBUG:  Finished at 2008-09-25 20:50:17. Packet logged in  
/tmp/sync/server_10.wbxml

It seems that $_SESSION['SyncML.state'] gets lost between the requests  
when they go from different servers.
In other Horde applications (like IMP) it is no problem when different  
requests go to different servers.

Would it be possible to keep the Session active for different servers?





More information about the bugs mailing list