2c727f65ffae3d925fb825e20616615ab319d1d2
Commit Graph

8411 Commits

This Branch
This Branch
All Branches
Author SHA1 Message Date
Tim Burke
2c727f65ff py3: Add swift-tox-func-encryption-py37 gate job
Change-Id: Ia9ae0fc226dfc9b40157faebac100c10a9180c62
2019年08月06日 13:56:47 -07:00
Clay Gerrard
ab19241534 Increase node_timeout for real sever unittests
I saw an encryption test fail with 10s node timeout when the py36
unittests ran in the gate. I believe there is an outsized potential for
a beneficial increase in test reliability when run in the gate compared
to relatively small chance of any negative side-effect in test failure
responsiveness.
Change-Id: Ia31912828d416d84c39782222e4636a97a8bfe44
2019年08月05日 15:40:58 -05:00
Zuul
489a35db82 Merge "Make backport releases conform to existing CHANGELOG formatting" 2019年08月05日 17:35:38 +00:00
Zuul
1e76f3c31b Merge "Give ECAppIter greenthreads a chance to wrap up" 2019年08月05日 16:30:22 +00:00
Zuul
a9a57c7d54 Merge "Make GreenAsyncPile not hang" 2019年08月02日 21:16:54 +00:00
Clay Gerrard
25aeb0ca49 Make GreenAsyncPile not hang
It's probably weird that StreamingPile has this interfaces that swallows
exceptions, but this seems better than hanging.
Change-Id: I8fe45c0f0d291efc84f3edf5d6b7cd116b5c7835
2019年08月02日 08:19:41 -07:00
Zuul
9aaae58bdd Merge "Ignore 404s from handoffs for objects when calculating quorum" 2019年08月02日 13:17:54 +00:00
Zuul
a563f4f5a6 Merge "sharding: better handle get_shard_ranges failures" 2019年08月02日 13:17:51 +00:00
Zuul
b7b80f3a8a Merge "Negative test for non-empty chunked put symlink" 2019年08月02日 05:48:04 +00:00
Zuul
5260e74161 Merge "symlink: Allow symlinks to be created via chunk-encoded PUTs" 2019年08月02日 04:17:00 +00:00
Tim Burke
3189410f9d Ignore 404s from handoffs for objects when calculating quorum
We previously realized we needed to do that for accounts and containers
where the consequences of treating the 404 as authoritative were more
obvious: we'd cache the non-existence which prevented writes until it
fell out of cache.
The same basic logic applies for objects, though: if we see
 (Timeout, Timeout, Timeout, 404, 404, 404)
on a triple-replica policy, we don't really have any reason to think
that a 404 is appropriate. In fact, it seems reasonably likely that
there's a thundering-herd problem where there are too many concurrent
requests for data that *definitely is there*. By responding with a 503,
we apply some back-pressure to clients, who hopefully have some
exponential backoff in their retries.
The situation gets a bit more complicated with erasure-coded data, but
the same basic principle applies. We're just more likely to have
confirmation that there *is* data out there, we just can't reconstruct
it (right now).
Note that we *still want to check* those handoffs, of course. Our
fail-in-place strategy has us replicate (and, more recently,
reconstruct) to handoffs to maintain durability; it'd be silly *not* to
look.
UpgradeImpact:
--------------
Be aware that this may cause an increase in 503 Service Unavailable
responses served by proxy-servers. However, this should more accurately
reflect the state of the system.
Co-Authored-By: Thiago da Silva <thiagodasilva@gmail.com>
Change-Id: Ia832e9bab13167948f01bc50aa8a61974ce189fb
Closes-Bug: #1837819
Related-Bug: #1833612
Related-Change: I53ed04b5de20c261ddd79c98c629580472e09961
Related-Change: Ief44ed39d97f65e4270bf73051da9a2dd0ddbaec
2019年08月01日 14:07:39 -07:00
Clay Gerrard
7678e94a2c Negative test for non-empty chunked put symlink
Change-Id: I0c3a235b8905e02d2e202215f7f0b43db295b79b
Related-Change-Id: I66f2f16d7cf0b9cb0888e3b9b1a17b9112233d21
2019年08月01日 09:34:03 -05:00
Zuul
d33e569bee Merge "py3: Fix title-casing in HeaderKeyDict" 2019年07月30日 08:13:26 +00:00
Tim Burke
c19d09f60b Give ECAppIter greenthreads a chance to wrap up
Otherwise, we can hit a "generator already executing" error in
test/functional/test_slo.py:TestSlo.test_slo_multi_ranged_get
Also, set a *slightly* newer lower-bound for greenlet (from 2011 instead
of 2010) so the sleep() doesn't cause us to lose exception state.
Change-Id: Id458fc0a43fd71aab9f6edbacc1f0b370c9f7537
2019年07月29日 12:11:34 -07:00
Zuul
6a1b2de6bb Merge "Add integrated gate tempest and grenade job" 2019年07月27日 08:29:32 +00:00
Tim Burke
a1455b3a35 symlink: Allow symlinks to be created via chunk-encoded PUTs
... provided they're still zero bytes.
Change-Id: I66f2f16d7cf0b9cb0888e3b9b1a17b9112233d21
2019年07月26日 21:40:37 -07:00
Zuul
bddcb5cf36 Merge "py3: fix non-ascii metadata handling in account-server" 2019年07月27日 01:56:32 +00:00
Tim Burke
8635e8cc86 Make backport releases conform to existing CHANGELOG formatting
Change-Id: Ib121d6c52601488647fd16dfd4f49bb4492c7a2f
2019年07月26日 15:59:35 -07:00
Ghanshyam Mann
02cfb6c027 Add integrated gate tempest and grenade job
Swift gate does not run integrated-gate jobs which are
tempest-full and grenade-py3 job. Tempest-full job run
all services tests. But all services tests are not needed
to run on swift gate because it does not depends on all services.
Tempest has prepared the new jobs for swift gate which will run
only Swift, Cinder and Glance related tests.
New template 'integrated-gate-object-storage'(Depends-On) includes
the tempest-integrated-object-storage and grenade-py3 jobs
This commit adds the new integrated-gate template in swift gate.
Depends-On: https://review.opendev.org/#/c/670353/
Change-Id: Ia0543dca729c3a2aa67ce9f560c1ce5976c00abf
2019年07月26日 12:19:21 -07:00
Andreas Jaeger
097a62cad3 Fix broken API-ref link
The URL is object-store, not object-storage. Fix one occurence.
Change-Id: I08ed3b19cbe0024fd67a6fb7a7a6db0d9084976b
2019年07月26日 11:49:15 +02:00
Tim Burke
71f83963c2 py3: fix non-ascii metadata handling in account-server
Previously, we were storing the WSGI-style UTF-8-bytes-decoded-as-Latin-1
strings in the JSON field, and sending them back to eventlet directly.
If running in a mixed py2/py3 cluster, replication would eventually get
that back to the py2 server, and worse, the native-string version would
get back to the py3 server! Then on GET or HEAD, eventlet would barf
if any characters were outside the Latin-1 range.
Closes-Bug: #1837805
Change-Id: I31d942e72fd7bfbb1db4dbb1dd522dff69969e5d
2019年07月25日 14:16:56 -07:00
Tim Burke
60c27d3aef py3: Fix title-casing in HeaderKeyDict
Change-Id: I1152c47c52f6482ec877142c96845b00bf6dcc5b
Related-Change: I130ba5014b7eff458d87ab29eb42fe45607c9a12
2019年07月25日 12:55:03 -07:00
Zuul
d6e790d1b7 Merge "Fix up errno checking" 2019年07月24日 13:16:13 +00:00
Zuul
7567ad819d Merge "Make rolling-upgrade job voting again" 2019年07月24日 00:48:11 +00:00
Zuul
4656077dcf Merge "Add Python 3 Train unit tests" 2019年07月23日 17:53:43 +00:00
Zuul
6a513499ae Merge "Bump up our minimum eventlet version" 2019年07月23日 17:53:40 +00:00
Zuul
3953294ea7 Merge "Make py36 job voting" 2019年07月23日 17:53:38 +00:00
Zuul
c5ed0b54c4 Merge "Update api-ref location" 2019年07月23日 17:53:36 +00:00
Andreas Jaeger
73ec8f15df Update api-ref location
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
new location.
Note that the Swift API lives at /object-store and not /object-storage.
Note that redirects will be set up as well but let's point now to the
new location.
For details, see:
http://lists.openstack.org/pipermail/openstack-discuss/2019-July/007828.html
Change-Id: Ie38357e4c278335c35d186708573bb6bdabaa012
2019年07月22日 19:17:55 +02:00
Tim Burke
ef5a37c2bf slo: Better handle non-manifest responses when refetching manifest
Previously, we never checked whether the response we get when refetching
is even successful, much less whether it's still coming from an SLO.
Now, if the refetched data is newer, act on it. If it's older, 503.
Closes-Bug: #1837270
Change-Id: I106b94c77da220c762869aa800c31b87c3dffeeb
2019年07月19日 21:42:43 -07:00
Tim Burke
2926fc96a3 py3: Bring functional/test_object.py under test; add func-ec-py37 job
Change-Id: I2929ce1f8e08ae5b4059605d09189c8521852423
2019年07月18日 14:04:39 -07:00
Tim Burke
a65350e887 Make rolling-upgrade job voting again
Now that os-testr has had a release, it passes again.
Change-Id: Ieed88646d97ab2a1c7323a147ee97dae6fc86a0f
2019年07月17日 12:10:05 -07:00
Tim Burke
424a2603d8 Fix up errno checking
Change-Id: I196b4e886942eccd2cb3aff3819da1558ddb19d4
2019年07月16日 17:02:57 -07:00
Tim Burke
a48ac28efe Authors/changelog for 2.22.0
Change-Id: I09c099339d02943baa0944b5a208263536d1a547
2.22.0
2019年07月15日 18:12:57 +00:00
Zuul
4643412bd1 Merge "func tests: tolerate more 404s when deleting" 2019年07月13日 01:03:59 +00:00
Tim Burke
bc5f4c0611 sharding: better handle get_shard_ranges failures
The contract for ReplConnection.replicate() is that if we can get a
response, we return it, and if we can't (because of a timeout, or a
socket error, or some other http_client error like BadStatusLine), we
return None to indicate the error.
Previously, _fetch_and_merge_shard_ranges() always assumed the
response would have a `status` attribute and raise an AttributeError
when response was None. Now it will treat that case like other
get_shard_range failures.
Change-Id: I023b8a46c06e9a2755b5aa890a7992ef9633cba9
2019年07月12日 17:37:37 -07:00
Zuul
cf18e1f47b Merge "sharding: Cache shard ranges for object writes" 2019年07月13日 00:34:06 +00:00
Zuul
d147ab84e0 Merge "reconciler: Enqueue right work for shard containers" 2019年07月12日 23:13:13 +00:00
Zuul
1e079cdfc5 Merge "py3: Fix header_to_environ_key" 2019年07月12日 23:13:11 +00:00
Zuul
b202292338 Merge "Move calls to self.app outside of error handling" 2019年07月12日 22:12:28 +00:00
Zuul
f03b03861a Merge "functests: Make test_PUT_metadata less flakey" 2019年07月11日 23:19:35 +00:00
Tim Burke
a1af3811a7 sharding: Cache shard ranges for object writes
Previously, we issued a GET to the root container for every object PUT,
POST, and DELETE. This puts load on the container server, potentially
leading to timeouts, error limiting, and erroneous 404s (!).
Now, cache the complete set of 'updating' shards, and find the shard for
this particular update in the proxy. Add a new config option,
recheck_updating_shard_ranges, to control the cache time; it defaults to
one hour. Set to 0 to fall back to previous behavior.
Note that we should be able to tolerate stale shard data just fine; we
already have to worry about async pendings that got written down with
one shard but may not get processed until that shard has itself sharded
or shrunk into another shard.
Also note that memcache has a default value limit of 1MiB, which may be
exceeded if a container has thousands of shards. In that case, set()
will act like a delete(), causing increased memcache churn but otherwise
preserving existing behavior. In the future, we may want to add support
for gzipping the cached shard ranges as they should compress well.
Change-Id: Ic7a732146ea19a47669114ad5dbee0bacbe66919
Closes-Bug: 1781291
2019年07月11日 10:40:38 -07:00
zengjia
0ae1ad63c1 Update auth_url in install docs
Beginning with the Queens release, the keystone install guide
recommends running all interfaces on the same port.This patch
updates the swift install guide to reflect that change
Change-Id: Id00cfd2c921da352abdbbbb6668b921f3cb31a1a
Closes-bug: #1754104 
2019年07月11日 15:03:16 +08:00
Tim Burke
f4bb1bea28 reconciler: Enqueue right work for shard containers
This fixes newly-enqueued work going forward, but doesn't offer anything
to try to parse existing bad work items or even to kick shards so they
reset their reconciler high-water marks.
Change-Id: I79d20209cea70a6447c4e94941e5e854889cbec5
Closes-Bug: 1836082
2019年07月10日 23:48:39 -07:00
Zuul
e62f07d988 Merge "py3: port staticweb and domain_remap func tests" 2019年07月11日 05:40:19 +00:00
Zuul
7e95e3d1ea Merge "Run all func tests under py2 against services running py3" 2019年07月11日 05:08:37 +00:00
Zuul
9367bff8fc Merge "py3: add swift-dsvm-functional-py3 job" 2019年07月11日 05:01:59 +00:00
Tim Burke
c1d1702252 functests: Make test_PUT_metadata less flakey
Change-Id: I846e746c2fe7591a3ab502428f587e3cbe753225
2019年07月10日 15:37:44 -07:00
Zuul
5c651ac451 Merge "functests: make container creation less flakey in test_object" 2019年07月10日 21:26:48 +00:00
Zuul
733b82be33 Merge "container: Unify storage-policy error paths" 2019年07月10日 18:54:29 +00:00