[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2206: S3 cloud container AttributeError when retrying an operation: S3Container instance has no attribute '_reactor'
Tahoe-LAFS
trac at tahoe-lafs.org
Tue Mar 25 03:09:23 UTC 2014
#2206: S3 cloud container AttributeError when retrying an operation: S3Container
instance has no attribute '_reactor'
------------------------------+--------------------------
Reporter: daira | Owner: daira
Type: defect | Status: assigned
Priority: major | Milestone: soon
Component: code-storage | Version: cloud-branch
Resolution: | Keywords: cloud s3
Launchpad Bug: |
------------------------------+--------------------------
Changes (by daira):
* owner: => daira
* status: new => assigned
Old description:
> The retry handling for S3 containers in the cloud backend is broken.
>
> In [ticket at 2116#comment:27], we have a traceback ending with:
> {{{
> > File
> \"/home/customer/LAFS_source/src/allmydata/storage/backends/cloud/cloud_common.py\",
> line 370, in _retry
> > d2 = self._handle_error(f, 1, None, description, operation, *args,
> **kwargs)
> > File
> \"/home/customer/LAFS_source/src/allmydata/storage/backends/cloud/cloud_common.py\",
> line 417, in _handle_error
> > d = task.deferLater(self._reactor,
> BACKOFF_SECONDS_BEFORE_RETRY[trynum-1], operation, *args, **kwargs)
> > exceptions.AttributeError: S3Container instance has no attribute
> '_reactor'
> }}}
>
> This is a bug introduced during the refactoring that added
> `allmydata.storage.backends.cloud.cloud_common.CommonContainerMixin`.
> `self._reactor` is now set in the constructor inherited from
> `CommonContainerMixin`, but `S3Container` does not inherit from
> `CommonContainerMixin` and so does not call that constructor.
New description:
The retry handling for S3 containers in the cloud backend is broken.
In [ticket:2116#comment:27], we have a traceback ending with:
{{{
> File
\"/home/customer/LAFS_source/src/allmydata/storage/backends/cloud/cloud_common.py\",
line 370, in _retry
> d2 = self._handle_error(f, 1, None, description, operation, *args,
**kwargs)
> File
\"/home/customer/LAFS_source/src/allmydata/storage/backends/cloud/cloud_common.py\",
line 417, in _handle_error
> d = task.deferLater(self._reactor,
BACKOFF_SECONDS_BEFORE_RETRY[trynum-1], operation, *args, **kwargs)
> exceptions.AttributeError: S3Container instance has no attribute
'_reactor'
}}}
This is a bug introduced during the refactoring that added
`allmydata.storage.backends.cloud.cloud_common.CommonContainerMixin`.
`self._reactor` is now set in the constructor inherited from
`CommonContainerMixin`, but `S3Container` does not inherit from
`CommonContainerMixin` and so does not call that constructor.
--
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2206#comment:1>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list