Closed Bug 999705 Opened 12 years ago Closed 11 years ago

Transaction is configured twice after error

Categories

(Marketplace Graveyard :: Payments/Refunds, defect, P3)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: kumar, Unassigned)

Details

If a transaction goes into any kind of error state the client may try to configure it twice which leads to this Solitude exception: IntegrityError: (1062, "Duplicate entry 'webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5' for key 'uuid'") STR: - start a Boku payment by purchasing an app in Marketplace - Enter Boku pay flow, use special code to trigger a successful payment - Alter Webpay's source so that the success view raises an exception, i.e. force an error. Let Boku redirect to the broken success view. - restart the Webpay payment flow by purchasing an app in Marketplace At this point, the payment flow should restart by generating a *new* transaction. Something is happening either in the UI and/or server that is causing the code to re-use the old transaction. The code to detect that the transaction has already be considered is not catching it. Here are logs from my local server where you can see two calls to 'configuring transaction webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5'; there should only be one call. $ ack webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 ~/tmp/webpay.log 13:59:1398200367 w.pay:INFO Generated new transaction ID: webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 :/Users/kumar/dev/webpay/webpay/pay/views.py:112 13:59:1398200368 w.pay:INFO configuring transaction webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 from client :/Users/kumar/dev/webpay/webpay/pay/views.py:157 13:59:1398200368 w.pay.tasks:INFO configuring payment in background for trans webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 (status=None); Last configured: webpay:3b54f41f-8e01-4d2b-b36e-d4437e5e0226 :/Users/kumar/dev/webpay/webpay/pay/tasks.py:75 13:59:1398200368 w.pay.tasks:INFO icon URL for webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5: None :/Users/kumar/dev/webpay/webpay/pay/tasks.py:214 13:59:1398200368 w.solitude:INFO boku: transaction webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5: seller: 70 :/Users/kumar/dev/webpay/lib/solitude/api.py:262 13:59:1398200369 w.pay:INFO configuring transaction webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 from client :/Users/kumar/dev/webpay/webpay/pay/views.py:157 13:59:1398200369 w.pay:ERROR trans_start_url() transaction does not exist: webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 :/Users/kumar/dev/webpay/webpay/pay/views.py:335 13:59:1398200369 w.pay.tasks:INFO configuring payment in background for trans webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5 (status=None); Last configured: webpay:3b54f41f-8e01-4d2b-b36e-d4437e5e0226 :/Users/kumar/dev/webpay/webpay/pay/tasks.py:75 13:59:1398200369 w.pay.tasks:INFO icon URL for webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5: None :/Users/kumar/dev/webpay/webpay/pay/tasks.py:214 13:59:1398200369 w.solitude:INFO boku: transaction webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5: seller: 70 :/Users/kumar/dev/webpay/lib/solitude/api.py:262 13:59:1398200369 w.solitude:INFO boku: made solitude trans {u'status': 0, u'resource_pk': 814, u'uuid': u'webpay:d102d7c6-d0be-4e5f-b7d6-e3d21b4cc1b5', u'created': u'2014-04-22T13:59:29.182449', u'source': u'3', u'notes': u'', u'uid_pay': None, u'related': None, u'seller_product': u'/generic/product/82/', u'currency': u'', u'amount': None, u'uid_support': None, u'relations': [], u'provider': 3, u'buyer': None, u'pay_url': None, u'type': 0, u'resource_uri': u'/generic/transaction/814/'} :/Users/kumar/dev/webpay/lib/solitude/api.py:649
Priority: -- → P2
if this is the same as bug 1000877 then it's definitely a push blocker
Priority: P2 → P1
There is a workaround on master for this. See bug 1000877.
Dropping down from a P1, because we have a workaround in place.
Assignee: nobody → kumar.mcmillan
Priority: P1 → P3
Assignee: kumar.mcmillan → nobody
We believe this is fixed and if not it we'll find it when (or if) we do Boku.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.