The following errors can occur in the logs after two threads attempt to access and then successfully create a single User's User Info (aka userinfo, PersonalInformation, personal information)
The HibernatePersonalInformationDao has a getByUsername method that calls the findSingleObject method which selects the single PersonalInformation object
Unfortunately, there is little enforcement that there is only one PersonalInformation for each user with a null version. There is only high level code that checks the Object can't be fetched from the database before creating the object and sending it to the persistence layer. It's not even synchronized, so this bug isn't confined to clustered instances.
It's occurrence is still quite improbable. It does require two separate threads to require the user's PersonalInformation at approximately the same time, but it can and does happen and it should be stopped. The obvious solution is to add a uniquenesss constraint to the PersonalInformation subclass definition in ContentEntityObject.hbm.xml on the (Username, Version) attribute pair. Note that the username is only used for PersonalInformation objects.