Page MenuHomePhabricator

Unhandled Exception in auth providers when trying to refresh/remove external LDAP provider from account with updated username attribute
Closed, DuplicatePublic

Description

I seem to have broken something while playing with providers.

First I set up LDAP provider and tested that it worked properly. It worked, however the "Username Attribute" was incorrect but I only noticed after linking the account.

So I changed the attribute, then went in my user profile, external accounts, and refreshed the LDAP provider. Now I seem to have two of them appearing, one with the new username, one with the old, and I can't refresh nor delete either.

Here's a screenshot:

ldapexception.png (451×1 px, 27 KB)

Disabling and enabling registration and (un)linking doesn't seem to affect this condition.

The provider seems to work fine and I'm able to log in with both LDAP and username/password authentication.

Here's a trace of what seems to be the right request:

2015/04/30 22:08:31 [error] 27456#0: *3488 FastCGI sent in stderr: "PHP message: [2015-04-30 22:08:31] EXCEPTION: (AphrontCountQueryException) More than 1 result from loadOneWhere()! at [<phabricator>/src/infrastructure/storage/lisk/LiskDAO.php:500]
PHP message: arcanist(head=master, ref.master=46ce8a5a35f9), phabricator(head=master, ref.master=64c877702664), phutil(head=master, ref.master=00e1f2da2829)
PHP message:   #0 LiskDAO::loadOneWhere(string, string, string, string) called at [<phabricator>/src/applications/auth/controller/PhabricatorAuthUnlinkController.php:25]
PHP message:   #1 PhabricatorAuthUnlinkController::processRequest() called at [<phabricator>/src/aphront/AphrontController.php:33]
PHP message:   #2 AphrontController::handleRequest(AphrontRequest) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:196]
PHP message:   #3 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:121]
PHP message:   #4 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phabricator>/webroot/index.php:19]" while reading response header from upstream, client: 192.0.2.100, server: src.example.org, request: "POST /auth/unlink/ldap:self/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "src.example.org", referrer: "https://src.example.org/settings/panel/external/"

Thanks

Event Timeline

gp renamed this task from Unhandled Exception in auth providers when trying to refresh/remove provider with updated username attribute to Unhandled Exception in auth providers when trying to refresh/remove external LDAP provider from account with updated username attribute.
gp raised the priority of this task from to Needs Triage.
gp updated the task description. (Show Details)
gp added a project: Auth.
gp added a subscriber: gp.