[development] CCK and Node Access Duplicate Insert errors

Blaine Lang Blaine.Lang at nextide.ca
Mon Apr 18 16:53:47 UTC 2011


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.

 

I initially thought it was a CCK cache issue but adding the cache_clear
has not removed the issue.

 

Any ideas or suggestions as to the source of this issue and how to solve
it.

 

Thanks!

Blaine 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20110418/3f10b31d/attachment.html 


More information about the development mailing list