benningm / mtpolicyd

a modular policy daemon for postfix
21 stars 3 forks source link

2.01 redis session cache on multiple ports #19

Closed LuckyFellow closed 8 years ago

LuckyFellow commented 8 years ago

If configured to use redis as session cache and to listen on multiple ports, this error message comes up:

end_of_data_restrictions: instance=547f.57a9d3ec.7c143.0, type=smtpd_access_policy, t=0ms, plugin=, result= loading SessionCache Redis initializing SessionCache Redis error while processing request: could not restore session 547f.57a9d3ec.7c143.0: Undefined subroutine &Storage::thaw called at /usr/local/share/perl/5.20.2/Mail/MtPolicyd/SessionCache/Redis.pm line 59, line 26.\n loading SessionCache Redis initializing SessionCache Redis error while processing request: could not acquire lock for session 547f.57a9d3ec.7c143.0 at /usr/local/share/perl/5.20.2/Mail/MtPolicyd/SessionCache/Redis.pm line 35, line 26.\n loading SessionCache Redis initializing SessionCache Redis

Example configuration:

port="127.0.0.1:12345,12347"

<Connection sessionCache>
  module = "Redis"
  servers = "127.0.0.1:6379"
</Connection>

<SessionCache>
  module = "Redis"
  redis = "sessionCache"
  # expire session cache entries
  expire = "300"
  # wait timeout will be increased each time 50,100,150,... (usec)
  lock_wait=50
  # abort after n retries
  lock_max_retry=50
  # session lock times out after (sec)
  lock_timeout=10
</SessionCache>

<VirtualHost 12345>
        name="end_of_data_restrictions"

        <Plugin Dummy1>
                module = "Dummy1"
                log_level = 2
                cacheTimeout = 3600
        </Plugin>

</VirtualHost>

<VirtualHost 12347>
        name="end_of_data_restrictions3"

        <Plugin Dummy2>
                module = "Dummy2"
                log_level = 2
        </Plugin>

</VirtualHost>

If used memcached instead of redis as session cache in this configuration, no errors occur.