Closed (fixed)
Project:
Boost
Version:
6.x-1.x-dev
Component:
Caching logic
Priority:
Critical
Category:
Bug report
Assigned:
Unassigned
Reporter:
Anonymous (not verified)
Created:
11 Aug 2009 at 12:23 UTC
Updated:
8 Sep 2017 at 10:10 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
hansrossel commentedSame problem here, with boost enabled, the cck values are not visible after submitting a node. When editing the node right after submitting the cck fields are empty.
Comment #2
mikeytown2 commentedMan thats weird...
Have you tried the latest dev that came out today? Whats the type of cck field your using? is the node add/edit page in the cache for some weird reason?
Comment #3
mikeytown2 commentedtry this patch & update your .htaccess file.
Comment #4
Anonymous (not verified) commentedThanks mikeytown, but the patch doesnt help. It gets even weirder: the newly added node is not yet in the cache... I mean, in cache/gz and cache/www.domain.com that node is not stored yet. So it has nothing to do with htaccess...
- I'm using CCK text fields and and select fields, and links fields.
- It only happens on node creation.
CCK field simply "disappear", although they are stored in the database.
- Clicking "Clear cached data" on bottom of admin/settings/performance makes them come back.
- Clicking "Clear ALL boost cached data" does NOT
- Clicking "Clear core page cached data" does NOT
Maybe this is a conflict between boost and drupal core caching? I'll do some more test now.
Comment #5
mikeytown2 commentedhere's another stab in the dark, since I can't reproduce this. Taking a guess that having init in a function name is a bad idea.
Comment #6
Anonymous (not verified) commentedDoesn't help either... I even excluded all node/* pages from boost cache, on the boost settings tab. Also core caching and gzip were off. Just using regular boost, but still no help.
I noticed that all CCK info exists, except the values. I can call $node->content for CCK (because the page hasnt been boost cached yet.) But the string hold everything except the actual values.
For example:
...is supposed to exist, but after node creation with boost, all you get is up to:
The last value part is missing... I really have no idea either.
Comment #7
Anonymous (not verified) commentedOh one more thing, all my CCK fields are within CCK's fieldgroup.module groups. I found out that the Mollom module is incompatible with that (a _form_validate function somehow messes that up). I'm getting the feeling this may be related too. Since with mollom also CCK values "got lost".
Comment #8
hansrossel commentedI will try the patches tomorrow, but can add that I'm using CCK field permissions. My cck fields are not in a fieldgroup.
Comment #9
Anonymous (not verified) commentedHmm, i tried without fieldgroup, doesnt solve it. Also using CCK field permissions.
Comment #10
mikeytown2 commenteddoing a clean install, going to see if I can replicate, as I was not using field permissions.
Comment #11
mikeytown2 commentedComment #12
mikeytown2 commentedCCK 2.5
- Content
- Content Permissions
- Text
Drupal 6.13
Boost 6.x-1.x-dev Aug 11
Did a fresh install, using a text field and trying different permissions. I don't get a bug. If I can view the field, then it's shown. If clearing the cache fixes the problem then it has to do with the 'cache_filter' table, as this holds the nodes output after going through the various filers like 'Filtered HTML' or 'Full HTML'.
Just wondering is
Turn off clean url's for logged in users
turned on?
What else is there so I can replicate the bug?
Comment #13
mikeytown2 commentedI have an idea on how to pin-point this error... since I have no idea where the error is coming from (since I can't reproduce it).
Try by adding
return TRUE;to the top of the function, so that function is skipped. If the error is still there, then return the function back to it's original state. Here's the list of functions to try, one at a time. These are all the hook_* Implementations.Comment #14
Anonymous (not verified) commentedNo, it's in table cache_content. After creating a new node with my problem, I can see a BLOB for this node in the cache_content table. When I manually remove that single row, and refreshed my node page, then the CCK fields values were shown again.
So with Boost active, the data stored into cache_content does not hold CCK values. It's lost somewhere...
Clean URLs is on for all users. And I'm using APC cache on my linux server. Can that influence anything?
A workaround is to automatically clear the relevant cache_content row after node creation. Hope you have some more ideas...
Comment #15
Anonymous (not verified) commentedOk, I'll try your functions.
Comment #16
Anonymous (not verified) commentedOK Bingo! -- first function boost_nodeapi causes the problem.
It's actually this line:
When I uncomment that one, my problem is gone! I see there's a setting for this in Boost Settings. I'll keep it switched off for now.
I do use a lot of taxonomy modules, such as Taxonomy VTN, Taxonomy Hide and Taxonomy Blocks.
Comment #17
mikeytown2 commentedInteresting that node_load is causing all the problems...
http://api.drupal.org/api/function/node_load
I think I found the solution
http://api.lullabot.com/content_update
btw http://api.lullabot.com/ is like http://api.drupal.org/ but it holds contributed code as well.
Test the below patch, let me know if this does the trick
Comment #18
mikeytown2 commentedtaking a hint from http://api.drupal.org/api/function/taxonomy_node_get_terms, if the node is loaded with the terms, don't reload it.
Comment #19
Anonymous (not verified) commentedHi, latest patch is still not working... I run out of ideas...
Comment #20
mikeytown2 commentedWe just need to find the right CCK api. Your sure its the cache_content table that has bad data in it right?
Comment #21
mikeytown2 commentedHere's the more extreme version
That kills the CCK cache, which isn't ideal, but it narrows down the causes.
We'll probably end up writing a boost_taxonomy_node_get_terms($nid) function. Never give up, when the database is right there.
Comment #22
hansrossel commentedI can confirm that uncommenting the line of #16 also solves my problem, will soon test patches now.
Problem is not related to content field permissions, Content taxonomy or Taxonomy VTN, Taxonomy Hide and Taxonomy Blocks, as I don't have any of these active anymore.
Comment #23
hansrossel commentedPatch #21 does not work for me. I am using a stripped down test installation with a very simple content type with title, body and a one line cck text field.
On node/add, the cck field does not appear in the published node after saving the node.
When I edit the node, the cck field appears empty, but refilling the field and saving the node from node/*/edit works correctly. So problem is specifically at node/add.
Comment #24
mikeytown2 commentedOk the problem is node_load so that has to go.
Solution will be to make my own boost_taxonomy_node_get_tids($nid). Function will be faster then the current way, so not all is lost.
Please test this patch, it should work :)
Comment #25
mikeytown2 commentedComment #26
hansrossel commentedYes! For me patch #24 solves the problem. Thanks!
Comment #27
mikeytown2 commentedComment #28
mikeytown2 commentedComment #29
mikeytown2 commentedcommitted #24 & #5
Comment #30
Anonymous (not verified) commentedThanks!!