gustafn
committed
on 08 Aug
Fixed issue in cluster mode, denoted by Khy H in the OpenACS forum

A new command "ad_parameter_cache_flush_dict" was introduced to handle
t… Show more
Fixed issue in cluster mode, denoted by Khy H in the OpenACS forum

A new command "ad_parameter_cache_flush_dict" was introduced to handle

the case, where a cluster node modifies a parameter value without

having it read before. This case could lead to a coherency problem for

parameter values.

Background:

       This proc is necessary in cases, where a node writes a new

       parameter value before it has read the old one.

       Since a plain "nsv_dict unset ad_param $key $parameter_name"

       raises an exception, when the pair does not exist, and we do

       not want to allow in cluster requests arbitrary "catch"

       commands, we allow "ad_parameter_cache_flush_dict" instead.

       Probably, the best solution is to add support for

           nsv_dict unset -nocomplain -- ad_param $key $parameter_nam

       The existing nsv_dict was built after Tcl's "dict unset",

       which does not have the "-nocomplain" option either. However,

       an atomic operation would certainly be preferable over an exists/unset

       pair, which is no acceptable solution.

For details, see https://openacs.org/forums/message-view?message_id=5822470

Show less