[OSM-dev] foreign key constraint violation in live-api

Tom Hughes tom at compton.nu
Tue May 4 12:59:32 BST 2010


On 04/05/10 12:36, IgnacioZ wrote:

>   They were done in a for loop and before I start the next request, I
> receive the answer, though by looking at my code it could happen that
> two requests are done in parallel, after receiving the Id of the
> previous one, I continue and the previous connection may not have been
> finalized (they are different instances).
>
> Do you think that could be the reason ?

Once you get the ID back everything should be complete on the server so 
if you were waiting that long there shouldn't be a problem. That isn't 
what I'm seeing in the server logs though.

I have the request to add 717587768 starting:

[2010-05-02 19:02:06.985698 #9411] Processing NodeController#create (for 
...) [PUT]

then the request add 717587767 starting:

[2010-05-02 19:02:06.998618 #9413] Processing NodeController#create (for 
...) [PUT]

then they both deadlocked (probably against each other):

[2010-05-02 19:02:08.136362 #9413] Deadlock detected on retry 1, 
restarting transaction
[2010-05-02 19:02:08.282322 #9411] Deadlock detected on retry 1, 
restarting transaction

after which they both report FK violations.

Now there is presumably a bug in the way we restart the deadlocked 
transaction that leads to the FK violations but I suspect it was the 
parallel upload that led to the deadlock and that it explains why other 
people don't see the same problems.

Tom

-- 
Tom Hughes (tom at compton.nu)
http://compton.nu/




More information about the dev mailing list