[tahoe-lafs-trac-stream] [tahoe-lafs] #1756: MDMF publisher sends duplicate write vector elements

tahoe-lafs trac at tahoe-lafs.org
Fri Oct 26 01:34:13 UTC 2012


#1756: MDMF publisher sends duplicate write vector elements
------------------------------+--------------------------
     Reporter:  davidsarah    |      Owner:
         Type:  defect        |     Status:  new
     Priority:  normal        |  Milestone:  1.11.0
    Component:  code-mutable  |    Version:  1.9.1
   Resolution:                |   Keywords:  mdmf publish
Launchpad Bug:                |
------------------------------+--------------------------
Changes (by davidsarah):

 * milestone:  undecided => 1.11.0


Old description:

> The MDMF publisher (in mutable/layout.py) sends duplicate write vector
> elements for the start of the MDMF header. This confused the cloud
> backend before I fixed it to tolerate duplicates; in any case, the
> publisher probably shouldn't be doing that.
>
> IRC log of debugging session:
> {{{
> the write vector that fails is: [(2167, 54), (123, 346), (2221, 32),
> (469, 136), (0, 41), (605, 66), (671, 93), (59, 64), (41, 18), (0, 41)]
> (first element of each pair is data offset, second is length of write)
> which contains two writes at offset 0 of length 41
> ***davidsarah looks at the MDMF publisher
> the first 41 bytes is the container type byte (SDMF or MDMF),
>    sequence number, and root hash
> which suggests that MDMFSlotWriteProxy.put_root_hash is being
>    called twice...
> no, it isn't
> so in that case, put_root_hash is being called, and the
>   if not self._written branch in _write is also being taken, maybe
> yep, that's it
> }}}

New description:

 The MDMF publisher (in mutable/layout.py) sends duplicate write vector
 elements for the start of the MDMF header. This confused the cloud backend
 before I fixed it to tolerate duplicates; in any case, the publisher
 probably shouldn't be doing that.

 IRC log of debugging session:
 {{{
 the write vector that fails is: [(2167, 54), (123, 346), (2221, 32), (469,
 136), (0, 41), (605, 66), (671, 93), (59, 64), (41, 18), (0, 41)]
 (first element of each pair is data offset, second is length of write)
 which contains two writes at offset 0 of length 41
 ***davidsarah looks at the MDMF publisher
 the first 41 bytes is the container type byte (SDMF or MDMF),
    sequence number, and root hash
 which suggests that MDMFSlotWriteProxy.put_root_hash is being
    called twice...
 no, it isn't
 so in that case, put_root_hash is being called, and the
   if not self._written branch in _write is also being taken, maybe
 yep, that's it
 }}}

--

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


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