Report from Asana. In some unclear circumstances, we my attempt to resolve duplicate refs which currently ends up hitting a duplicate key error.
Instead, reference the same external object if we happen to be handed duplicate refs.
Differential D7709
Fix an edge case when trying to pull duplicate refs via Doorkeeper epriestley on Dec 5 2013, 3:36 AM. Authored by Tags None Referenced Files
Subscribers
Details
Report from Asana. In some unclear circumstances, we my attempt to resolve duplicate refs which currently ends up hitting a duplicate key error. Instead, reference the same external object if we happen to be handed duplicate refs. Used this script to reproduce the issue. Applied the fix; issue went away: #!/usr/bin/env php <?php require_once 'scripts/__init_script__.php'; $args = new PhutilArgumentParser($argv); $args->parseStandardArguments(); $ref = id(new DoorkeeperObjectRef()) ->setApplicationType(DoorkeeperBridgeAsana::APPTYPE_ASANA) ->setApplicationDomain(DoorkeeperBridgeAsana::APPDOMAIN_ASANA) ->setObjectType(DoorkeeperBridgeAsana::OBJTYPE_TASK) ->setObjectID(7253737283629); // Use a new task ID which we've never pulled. $refs = array(clone $ref, clone $ref); $asana_user = id(new PhabricatorPeopleQuery()) ->setViewer(PhabricatorUser::getOmnipotentUser()) ->withUsernames(array('asana')) ->executeOne(); $resolved_refs = id(new DoorkeeperImportEngine()) ->setViewer($asana_user) ->setRefs($refs) ->execute();
Diff Detail
|