[development] CCK and Node Access Duplicate Insert errors
nan wich
nan_wich at bellsouth.net
Mon Apr 18 21:04:40 UTC 2011
<:avglsdata id=avglsdata>
This probably does belong in development, because I encountered something
simialr last night building a D7 site from scratch. Well, actually, it probably
should be in the D7 issues queue.
I had added a few images to articles, then realized I hadn't set the correct
file path. I changed my filepath setting and went back to those nodes. I removed
the current image, then added the picture again (same edit session). Every one
resulted in this error. Worse, the error overlays the page with no way to clear
it except to go to another page. AFAICT, the image was actually loaded again.
Nancy
Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L. King, Jr.
________________________________
From: Blaine Lang
I am working on an enhancement to the filedepot module for a multifile uploader
- drag & drop files to a hotspot on the browser. It was all working nicely but
now consistently getting duplicate entry errors in both the node_access and the
CCK table
The filedepot_folder is a node and the files are attachments - using the
filefield CCK widget.
Duplicate entry '16-0-all' for key 1 query: INSERT INTO node_access (nid, realm,
gid, grant_view, grant_update, grant_delete) VALUES (16, 'all';, 0, 1, 0, 0)
Duplicate entry '16-1' for key 1 query: INSERT INTO content_field_filedepot_file
(vid, nid, delta, field_filedepot_file_fid, field_filedepot_file_list,
field_filedepot_file_data) VALUES (16, 16, 1, 234, NULL, NULL)
I've stripped the module code down to only the following and modules
HOOK_nodeapi is just doing a return so no other code in filedepot should be
involved.
$node = node_load($file->nid, NULL, TRUE);
$field = content_fields('field_filedepot_file', 'filedepot_folder');
$validators = filefield_widget_upload_validators($field);
$nodefile = field_file_save_file($file->tmp_name, $validators,
$this->tmp_storage_path);
// Need to populate the CCK fields for the filefield field - so node_save will
update the CCK field
$node->field_filedepot_file[] = $nodefile;
node_save($node);
// Clear CCK data cache so the new value will be loaded for display purposes
cache_clear_all('content:' . $node->nid . ':' . $node->vid, 'cache_content');
I was suspecting a race condition as the files I'm uploading are small test
files and thought the node_save was not completed before another update was
attempted but attempts to remove this potential race condition still cause the
same issue.
Often the first 2 or 3 files get attached just fine to the folder node and then
the next file triggers the SQL error then a few more may save ok and then SQL
error but the pattern is not consistent.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20110418/966a72b9/attachment.html
More information about the development
mailing list