storm.twisted.store.StorePool should handle failures on put()

Bug #385717 reported by Drew Smathers
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Storm
In Progress
Medium
Thomas Herve

Bug Description

If error occurs in StorePool.put() (specifically on Store.rollback()), connection leak occurs. My patch addresses this by removing bad Store and attempting (brute-force) to restart a store; from my experience errors only occur on rollback when something is wrong with connection - database went down, etc.

Please review:
http://bazaar.launchpad.net/~djfroofy/storm/twisted-oracle/revision/286

Revision history for this message
Drew Smathers (djfroofy) wrote :

Forgot to mention - this applies only to twisted-integration branch.

Revision history for this message
Thomas Herve (therve) wrote :

So, I've handled rollback errors in http://bazaar.launchpad.net/~therve/storm/twisted-integration/revision/229.

There are a couple of things I don't like in the changeset you've shown. First there seems to be an unrelated change in cbStartAStore (I think I remember where it comes from). Then, I'm not sure why errors in rollback should be treated differently than any other errors. IIRC, the store should reconnect nicely, unless I'm missing something.

Changed in storm:
importance: Undecided → Medium
status: New → In Progress
assignee: nobody → Thomas Herve (therve)
Revision history for this message
Drew Smathers (djfroofy) wrote :

Thanks for addressing this.

> There are a couple of things I don't like in the changeset you've shown.
> First there seems to be an unrelated change in cbStartAStore (I think I remember where it comes from).

No, it was related. The purpose was for replicating code that called back requesters after successful reconnect in _eb_put().

> Then, I'm not sure why errors in rollback should be treated differently than any other errors. IIRC, the store should reconnect nicely, unless I'm missing something.

You're right. Looking over the code, this shouldn't be a problem, so my _eb_put() was redundant.

So this patch looks good to me. Thanks.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.