In some cases (about 5% of our sign-ups so far), a user will sign up (e.g. create a new account-- http://www.comminit.com/en/user/register ). Upon submission, the user.init field will get the email address they signed up with. The user.mail field will get another email address-- one for another existing user.
This comes out of nowhere, sometimes.

  • How do find the problem-- the accidential inclusion of old info?
  • How do we fix it? It seems like there is no opportunity for this pre-existing info to get into the new user info. Nevertheless, it makes it in there. When a user is approved, new information will go to this incorrect user. When the user edits their profile, they should flagged as having one of multiple instances of the same user.mail field.

We're using Drupal 5.1 and user module 1.745.2.12

Comments

dewolfe001’s picture

Project: Drupal core » CiviCRM Subscribe
Version: 5.1 » 5.x-1.x-dev
Component: user system » Code
Assigned: Unassigned » dewolfe001
Status: Active » Closed (fixed)

This turned out to be a problem with CiviCRM. At some point the cardinality of the the civicrm_location was lost or corrupted. It was then creating new records in amongst the old records. Then the civicrm_location.id was passed to the civicrm.email and other database tables as an incorrect location_id. When there were two records in civicrm.email with the same location_id, joins accepted them in ascending order and took the older and usually incorrect record.

I fixed this by re-asserting the civicrm_location's auto-increment

I executed "ALTER TABLE civicrm_location AUTO_INCREMENT = 1" against the database to force the database to add new id numbers properly (maximum number + 1). It appears to be doing that now.