[Python-Dev] Posting frequent spurious changes in bugtracker
Glenn Linderman
v+python at g.nevcal.com
Fri Jan 4 00:03:45 CET 2013
On 1/3/2013 2:43 PM, Brett Cannon wrote:
>
>
>
> On Thu, Jan 3, 2013 at 4:06 PM, Glenn Linderman <v+python at g.nevcal.com
> <mailto:v+python at g.nevcal.com>> wrote:
>
> On 1/3/2013 12:13 PM, Brett Cannon wrote:
>> It is a form so technically nothing is being done incorrectly in
>> changing values based on what you submit, whether you view them
>> stale or not.
>
> Well, it sounds like a pretty shaky technology foundation, if
> simultaneous updates of a shared data repository have race conditions.
>
> Certainly leaving a tab open for long periods of time exacerbates
> the issue, as it severely extends the definition of
> "simultaneous". Without that, the likelihood of people doing
> simultaneous updates is seriously reduced, except maybe for bugs
> with "hot" discussions.
>
>
> I would argue it is no longer simultaneous and thus not a race
> condition. You can't consider a POST transactional based on when the
> HTTP GET request for the form completed to when the POST finally occurs.
Argue away. it still is a race condition, just a slow race. HTTP is
stateless, not transactional, agreed, but when a transaction system is
implemented on top of HTTP, it needs to implement transactional
semantics itself... or else it is a pretty shaky foundation for a
database. The POST is an update, the prior GET started the transaction.
This is just the definition of a transaction, so any arguments you have
can only claim that Roundup doesn't implement transactions, and the bug
tracker is not a database... and if you are right, then it is a pretty
shaky foundation for a bug tracker database. I think that is what I said
in the first place :)
> Jesus' suggestion of a hidden version field would help, but could
> be annoying for the case of someone writing a lengthy response,
> and having it discarded because the hidden version field is too
> old... so care would have to be taken to preserve such responses
> when doing the refresh...
>
>
> As I said, this belongs upstream in Roundup and not directly in our
> roundup instance for a proper fix. This is beyond schema and it
> heading into low-level Roundup POST functionality.
Agreed, the fix, if to be done correctly, belongs in Roundup, from what
I understand of how things are implemented.
> -Brett
>
>
> Another possible implementation would be to track which fields in
> the form are actually updated by a submitter... and reject a
> submission only if there was a simultaneous update to that field.
>
> Another possible implementation for fields like nosy, would be to
> display the current list, but provide boxes for additions and
> deletions, rather than allowing editing. Or maybe just a "remove
> me" button for deletions would suffice, with a box for additions.
> Then the processing would avoid adding duplicates.
>
> People shouldn't have to do heroic things with refreshing to
> maintain the consistency of the underlying data... database
> transaction technology has been around for quite a few years by
> now, and is well understood.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130103/10b1254a/attachment.html>
More information about the Python-Dev
mailing list