Closed (cannot reproduce)
Project:
Drupal core
Version:
8.0.x-dev
Component:
node system
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
4 Dec 2011 at 21:47 UTC
Updated:
13 Mar 2016 at 16:56 UTC
Jump to comment: Most recent
Comments
Comment #1
johnvOops, wrong module..
Comment #2
xjmThanks @johnv. Usually errors during node access rebuild are caused by a corrupt node or user record. (Also, TAC uses the core node access system, so the problem might occur with any access control module.) Couple questions:
Comment #3
johnvxjm, I'm using mysql. There are no (!) messages in the log. I am not familiar with backtracing - my IDE consists of Editpad/notepad..
Comment #4
xjmHmm, in that case, I'd suggest backing up your database in a state that sometimes triggers the error, and maybe testing in a local or development environment.
Here's a handy article on how to get backtraces:
http://www.lullabot.com/articles/quick-and-dirty-debugging
Be sure to read the comments as well, as they include some good tips. You can also use the devel module to add backtraces more easily (and without hacking core), but that adds a performance overhead, so it could make matters worse.
Basically we want to figure out if there's a specific node record that's causing the problem, or whether it's just limited resources as you suggest.
Comment #5
johnvOK, it might take a while, but i'll be back with more info.
Comment #6
johnvI am not sure if this error belongs to this module.
I have the same error every time I generate a Views display, which only differs slightly from another display, that is working fine....
Comment #7
johnvAbove error happens also when only the module Node access user reference is used, so this seems to be a core issue.
This is the line of code:
Comment #8
johnvMore info: The function db_merge is calle 1 time for table cache and 20 times for table cache_field .
So I cleared my caches (thus the table), but during 'Rebuild content access', the table again grows happily to 14,099 lines, until Rebuilding stalls at 95%. Then, in db_merge, the error occurs.
Is cache_field too big? can I avoid caching during Rebuild permissions?
Comment #9
johnvDuring the execution of Rebuild permissions, I executed
cache_clear_all('*', 'cache_field', TRUE);using devel/php page. At 95%, there were only around 500 lines in the table.Same result.. :-(
Comment #10
xjmLike I mentioned earlier, this is usually tied to corrupt data, so I'm not sure there's a core bug. Can you try executing
node_access_rebuild(FALSE)from drush and see if that resolves the issue? Also, it's hard to guess what the problem might be without a backtrace that shows the data object being processed, etc.Comment #11
johnvCan't find a good spot for backtracing..
I thought this might be another symptom of the same problem: #1375748: Too many node_access-records
But apparently it is normal behaviour that every node gest 1 line in node_access table.
Comment #12
johnvxjm, thanks for your help. I have a successful rebuild-run. I am not sure about the cause, but I used your hint about the corrupt data. This is what I did:
- I learned that node_access-rebuild rebuilds starting with lowest nid, in chunks of 20 nodes.
- So I checked the highest nid in node_access table;
- edited and saved the next 25 nodes; (none of them seamed erroneous)
- waited until non-peak hours, to make sure server has lowest capacity-needs;
- flushed all caches;
- did a Rebuild --> Success!
I will have to do some more runs to be sure that this was the root cause, but for now I am happy.
I think current issue-status is OK for the moment...
Comment #13
johnvFYI, Today I tried again a rebuild.
First time, I got the same Fatal error: spl_autoload(). I did a cache-flush and after that, the rebuild was OK. Strange... just a normal short of memory??
Comment #13.0
johnv.
Comment #14
cilefen commentedI think this has been running smoothly with D8 releases whose platforms meet requirements.