[tahoe-lafs-trac-stream] [tahoe-lafs] #1921: leasedb: NonExistentShareError: can't find [share] in `shares` table

tahoe-lafs trac at tahoe-lafs.org
Thu Feb 21 01:35:41 UTC 2013


#1921: leasedb: NonExistentShareError: can't find [share] in `shares` table
-----------------------------+---------------------------------------------
     Reporter:  davidsarah   |      Owner:  davidsarah
         Type:  defect       |     Status:  new
     Priority:  major        |  Milestone:  soon
    Component:  code-        |    Version:  1.9.2
  storage                    |   Keywords:  leasedb openstack cloud-backend
   Resolution:               |
Launchpad Bug:               |
-----------------------------+---------------------------------------------

Comment (by davidsarah):

 Okay, now for the speculation:

 Notice that the accounting crawler is running concurrently with a PUT. The
 accounting crawler is what is causing the list requests for prefix 'lp',
 'lq', etc.

 What triggers the incident is that the crawler sees a share that
 unexpectedly disappeared, i.e. it has a leasedb entry but no chunk
 object(s):
 {{{
 local#18704 23:06:20.022: share SI=lp6ibjsxe6vf6ern6v3soepjh4 shnum=0
                           unexpectedly disappeared [INCIDENT-TRIGGER]
 }}}
 Almost immediately afterward, the concurrent PUT request fails. That
 request is for the same share that the crawler saw "disappear". It seems
 as though what happened is that there was a race between the crawler and
 the share creation:
 1. leasedb entry is created for share, but it isn't stored yet
 2. crawler sees an entry with no stored share; deletes the entry
 3. the share creator goes to add a default lease and fails because the
 leasedb entry isn't there

 I think this will only happen when the accounting crawler is looking at a
 prefix while a share is being uploaded to it (that is not difficult to
 reproduce if you do enough uploads).

 [And sigh, I just noticed that I leaked the Auth-Token. It's fine, the
 Auth-Token is only valid for 24h and I'll delete the container contents
 after that anyway. But that does need fixing.]

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1921#comment:1>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list