So I am looking all over and have yet to find out how to remedy this table issue.
Rules is the likely culprit because the violation occurs when creating a new node (with Workflow) and trying to have it move forward to a state called publish. It fails with PDO Integrity Constraint Violation 1062.
Now the problem is that NO new nodes can be created without error, by any user. How can I fix this? The error message references a node ID that doesn't exist in any table rows, I guess because the node was never actually saved.
I have adjusted Rules so this doesn't happen again on new nodes, but I need to get that error off without losing data.
The error message is the following one:
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry "694-7-workflow_access" for key "PRIMARY": INSERT INTO {node_access} (nid, realm, gid, grant_view, grant_update, grant_delete) VALUES ....
This is weird because I have completely truncated the table, deleted and added it back, and tried to build a new copy of the DB all without success. I can't for the life of me find the primary key duplicate in ANY table. These nodes, node revisions, or node access records simply don't exist for nid 694 (or anything above 660 really).
So far I have traced it to Workflow's use of hook_node_access_records()
. If I comment out module_invoke('node_' . $op, $node)
the nodes will submit, so it is definitely the access table/process causing the problem. Workflow returns a $grants
array just fine.