In a large Drupal installation, with many modules, many types of content, many views, and plenty of RAM, with caching not enabled, we find that the edit form incorrectly reads some concrete value of a CCK field.
We create a CCK decimal field in order to be displayed as usual, be able to use the CCK field permissions and to be read from views. This field is not in any case to be accessed by all editors, but when editors edit this node, despite they do not have permissions to see it on the edit form or they have those permission and are able to see the field on the form, the value is shown in the edit form with an old value. When saving the node after editing it the old value displayed on the field is saved with all other fields, overwriting the latest database value.
We do not understand because the edit form of a node does not read from any cache, but from the database. The fact is that when editing some node this value is incorrect, and always oldder (which means lower).
The characteristics of this field are:
- in one case it's a decimal number field and in another an integer
- this field is altered by an external process that is adding small amounts to maintain it as a counter
- the process simply adds an amount in the CCK field value
- the views over this field show the correct value, always with the latest additions
- the edit form does not always display the current value, but sometimes a lower value
- this is happening to us in two different sites in two fields with the same characteristics: acting as a counter to an external process
Any ideas? :-)