[development] user_save() trying to create a duplicate user

Neil Goodman posco2k5 at gmail.com
Tue Feb 5 01:34:36 UTC 2008


Hello,

I'm currently trying to solve a bug report for my module (
http://drupal.org/node/217639). rallycivic keeps getting a "__clone method
called on non-object"  when he runs a function in my module. My module runs
through a CiviCRM database and pulls out certain CiviCRM contacts that have
membership status. The goal is to get this status synchronized to a Drupal
role. There is a static method in the CiviCRM API called
CRM_Core_BAO_UFMatch::getUFId(). This method will take a CiviCRM contact id
and return its corresponding Drupal uid. I then take this list of uids and
pass it to the user_multiple_role_edit() function. This function uses the
user_save() function to apply role changes. I think that one of rallcivic's
uids is causing an issue with this function. From reading the user_save()
function's code I can see that it tries to create a new user if the uid
doesn't exist. For some reason I think it is trying to do this on a valid
uid, which throws a duplicate error that rallycivic has found in watchdog:

"Location
http://chelmsfordmc.co.uk/admin/settings/civimember_roles/manual_sync
Referrer
http://chelmsfordmc.co.uk/admin/settings/civimember_roles/manual_sync
Message Duplicate entry '' for key 2 query: INSERT INTO users (uid, created,
access) VALUES (404, 1202163268, 1202163268) in
/home/chelmsf/public_html/includes/database.mysql.inc on line 172."

Then the drupal_clone() function is called on a bogus object and throws the
clone method error. At least, that is what I think is happening.

Has anyone ran into a situation similar to this before?

Neil Goodman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/development/attachments/20080204/5d87fd30/attachment-0001.htm 


More information about the development mailing list