Importing a large database of existing users, I found two email addresses for which phabricator does not accept the local part (domain part masked to protect the innocent):
=@example.com {^_^}@example.com
Both are valid according to RFC822 and various email address validators (for RFC822 compliance). I apologize for having users who like to break things!
Version info
- phabricator 216f6be11ece53cb1daafc8fff636dbdb0d7ef3d (Tue, Feb 28) (branched from c15501fc9b06f46a699bcded6d2e14c5c48af2db on origin)
- arcanist 822bc53ca306e06314560d8a76f68771d732e8e0 (Sat, Feb 25) (branched from 3b6b523c2b236e3724a1e115f126cb6fd05fa128 on origin)
- phutil 76983f49b179e575187c7dc5098cd1fbfac300c7 (Tue, Feb 28) (branched from 0625e4d28b16cba8b0154e49dc31845559b4e704 on origin)
Steps to reproduce
/opt/phacility/phabricator$ bin/accountadmin Enter a username to create a new account or edit an existing account. Enter a username: test1 There is no existing user account 'test1'. Do you want to create a new 'test1' account? [Y/n] y Enter user real name: Test1 User Enter user email address: =@example.com Enter a password for this user [blank to leave unchanged]: Is this user a bot? [y/N] Should this user be an administrator? [y/N] ACCOUNT SUMMARY OLD VALUE NEW VALUE Username test1 Real Name Test1 User Email =@example.com Password Unchanged Bot N N Admin N N Save these changes? [Y/n] [2017-03-06 20:08:01] EXCEPTION: (Exception) Email addresses should be in the form 'user@domain.com'. The maximum length of an email address is 128 character(s). at [<phabricator>/src/applications/people/editor/PhabricatorUserEditor.php:687] arcanist(head=stable, ref.master=3b6b523c2b23, ref.stable=822bc53ca306), phabricator(head=stable, ref.master=5fad7eb1f902, ref.stable=216f6be11ece), phutil(head=stable, ref.master=81494451f9be, ref.stable=76983f49b179) #0 PhabricatorUserEditor::willAddEmail(PhabricatorUserEmail) called at [<phabricator>/src/applications/people/editor/PhabricatorUserEditor.php:60] #1 PhabricatorUserEditor::createNewUser(PhabricatorUser, PhabricatorUserEmail) called at [<phabricator>/scripts/user/account_admin.php:209] PHP Fatal error: Uncaught Exception: Process exited with an open transaction! The transaction will be implicitly rolled back. Calls to openTransaction() must always be paired with a call to saveTransaction() or killTransaction(). in /opt/phacility/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php:78 Stack trace: #0 [internal function]: AphrontDatabaseTransactionState->__destruct() #1 {main} thrown in /opt/phacility/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php on line 78 Fatal error: Uncaught Exception: Process exited with an open transaction! The transaction will be implicitly rolled back. Calls to openTransaction() must always be paired with a call to saveTransaction() or killTransaction(). in /opt/phacility/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php:78 Stack trace: #0 [internal function]: AphrontDatabaseTransactionState->__destruct() #1 {main} thrown in /opt/phacility/libphutil/src/aphront/storage/connection/AphrontDatabaseTransactionState.php on line 78