9b47de3095e5afacf70106c1e3a3f265d64c7822
6460 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Romain LE DISEZ
|
9b47de3095 |
Enable cluster-wide CORS Expose-Headers setting
An operator proposing a web UX to its customers might want to allow web browser to access some headers by default (eg: X-Storage-Policy, X-Container-Read, ...). This commit adds a new setting to the proxy-server to allow some headers to be added cluster-wide to the CORS header Access-Control-Expose-Headers. Change-Id: I5ca90a052f27c98a514a96ee2299bfa1b6d46334 |
||
|
Jenkins
|
40fefd2087 | Merge "Probe tests fail, as requests checks for strings." | ||
|
Jenkins
|
c749799791 | Merge "Do not follow CNAME when host is in storage_domain" | ||
|
Jenkins
|
ab1701d1ff | Merge "Expand SLO manifest documentation." | ||
|
Jenkins
|
486451e5f6 | Merge "Modify the spelling mistakes" | ||
|
Timur Alperovich
|
2e199be604 |
Probe tests fail, as requests checks for strings.
The requests library checks that the headers are either strings or bytes. Currently, the two test_object_expirer tests fail with the message: InvalidHeader: Header value 1487879553 must be of type str or bytes, not <type 'int'> The header in question is "x-delete-at". The patch converts it to a string, before making a Swift Client request. Change-Id: I738697cb6b696f0e346345f75e0069048961f2ff |
||
|
wanghongtaozz
|
5cc303ee7b |
Modify the spelling mistakes
the "ommitted" change to "omitted". Change-Id: I195b0de1cee6ef79e00c865fd112a34d529daec0 |
||
|
Timur Alperovich
|
5f11163b79 |
Expand SLO manifest documentation.
The patch adds documentation for the SLO raw format, specifically what the fields are in relation to the documented format (hash vs etag, bytes vs size_bytes, and name vs path). Change-Id: I44c74ad406a6e55e4228f52fac623eeabbd7564f |
||
|
Romain LE DISEZ
|
9a17e61e7f |
Do not follow CNAME when host is in storage_domain
Commit
|
||
|
Jenkins
|
36ec44e08e | Merge "Register cname_lookup on /info" | ||
|
Jenkins
|
075c21a944 | Merge "Add Vary: headers for CORS responses" | ||
|
Jenkins
|
bf4467ebdd | Merge "Give spawn a cycle" | ||
|
Jenkins
|
413fb2b84f | Merge "Prevent traceback in object-server on client disconnect" | ||
|
Tim Burke
|
9a36a35121 |
We don't "yield" in collect_parts anymore
Change-Id: I6c57d2b89b1b4b13f87511538fc90ba554c869fa |
||
|
Jenkins
|
0349949030 | Merge "Fix tox -e docs sphinx errors" | ||
|
Jenkins
|
1f3dd83f41 | Merge "Remove per-device reconstruction stats" | ||
|
Alistair Coles
|
9be1d8ba28 |
Fix tox -e docs sphinx errors
Change-Id: I6e200558b75ac539b59b492d13c36702443efc89 |
||
|
Tim Burke
|
8973ceb31a |
Remove per-device reconstruction stats
Now that we're shuffling parts before going through them, those stats no longer make sense -- device completion would always be 100%. Also, always use delete_partition for cleanup, so we have one place to make improvements. This means we'll properly clean up non-numeric directories. Also also, put more I/O in the tpool in delete_partition. Change-Id: Ie06bb16c130d46ccf887c8fcb252b8d018072d68 Related-Change: I69e4c4baee64fd2192cbf5836b0803db1cc71705 |
||
|
Romain LE DISEZ
|
e6245d198f |
Register cname_lookup on /info
Change-Id: I4f68b2f84f32e2c9e567c08f7e66ce0a81b7d867 |
||
|
John Dickinson
|
11bd6c82ec |
2.13.0 authors/changelog updates
Change-Id: I4d90075bd1eb6775b9d736668aa9c7af5eb41f4e2.13.0 |
||
|
Jenkins
|
cdd72dd34f | Merge "Deprecate broken handoffs_first in favor of handoffs_only" | ||
|
Jenkins
|
801d281a4a | Merge "Fix swift-get-nodes arg parsing for missing ring" | ||
|
Jenkins
|
7cb6882749 | Merge "[Trivial]Fix some type errors in ../sample.conf" | ||
|
Jenkins
|
dc7d8306dd | Merge "Add Apache License 2.0 description in ../conf.py" | ||
|
Clay Gerrard
|
da557011ec |
Deprecate broken handoffs_first in favor of handoffs_only
The handoffs_first mode in the replicator has the useful behavior of processing all handoff parts across all disks until there aren't any handoffs anymore on the node [1] and then it seemingly tries to drop back into normal operation. In practice I've only ever heard of handoffs_first used while rebalancing and turned off as soon as the rebalance finishes - it's not recommended to run with handoffs_first mode turned on and it emits a warning on startup if option is enabled. The handoffs_first mode on the reconstructor doesn't work - it was prioritizing handoffs *per-part* [2] - which is really unfortunate because in the reconstructor during a rebalance it's often *much* more attractive from an efficiency disk/network perspective to revert a partition from a handoff than it is to rebuild an entire partition from another primary using the other EC fragments in the cluster. This change deprecates handoffs_first in favor of handoffs_only in the reconstructor which is far more useful - and just like handoffs_first mode in the replicator - it gives the operator the option of forcing the consistency engine to focus on rebalance. The handoffs_only behavior is somewhat consistent with the replicator's handoffs_first option (any error on any handoff in the replicactor will make it essentially handoff only forever) but the option does what you want and is named correctly in the reconstructor. For consistency with the replicator the reconstructor will mostly honor the handoffs_first option, but if you set handoffs_only in the config it always takes precedence. Having handoffs_first in your config always results in a warning, but if handoff_only is not set and handoffs_first is true the reconstructor will assume you need handoffs_only and behaves as such. When running in handoffs_only mode the reconstructor will start to log a warning every cycle if you leave it running in handoffs_only after it finishes reverting handoffs. However you should be monitoring on-disk partitions and disable the option as soon as the cluster finishes the full rebalance cycle. 1. Ia324728d42c606e2f9e7d29b4ab5fcbff6e47aea fixed replicator handoffs_first "mode" 2. Unlike replication each partition in a EC policy can have a different kind of job per frag_index, but the cardinality of jobs is typically only one (either sync or revert) unless there's been a bunch of errors during write and then handoffs partitions maybe hold a number of different fragments. Known-Issues: handoffs_only is not documented outside of the example config, see lp bug #1626290 Closes-Bug: #1653018 Change-Id: Idde4b6cf92fab6c45f2c0c2733277701eb436898 |
||
|
Hisashi Osanai
|
ae236b57be |
Hisashi Osanai's responsibility has been changed
It has been a real honour working with you, guys. Thanks! Change-Id: I2668ddf546791ca36fe22d6fdd2d5e745ed14200 |
||
|
yuhui_inspur
|
c569e78e06 |
[Trivial]Fix some type errors in ../sample.conf
Change-Id: Iea629d5a08aa3d94e097fcdab28f94511b262fcf |
||
|
yuhui_inspur
|
86127ec6a1 |
Add Apache License 2.0 description in ../conf.py
Add the Apache License 2.0 description in ../conf.py which is necessary. Change-Id: Ief3767fdc22f582beb8683a9075dc25dbcb541cd |
||
|
Thiago da Silva
|
04502a9f64 |
Fix test comment and remove extra parameter
Fixed the comment in the test to match exactly what's being removed and what the expected result is. Also, removed that extra '/' parameter which was causing the assert to test at the wrong directory level. Change-Id: I2f27f0d12c08375c61047a3f861c94a3dd3915c6 Signed-off-by: Thiago da Silva <thiago@redhat.com> |
||
|
Jenkins
|
c8a2b77313 | Merge "Fix test_delete_propagate probe test" | ||
|
Clay Gerrard
|
5bb3ea162c |
Ignore cache files when comparing synced parts
Prior to the Related-Change no suffixes were written to hashes.invalid until after initial suffix hashing created hashes.pkl - and in our probe test the only updates to the partition occurred before replication. Before the related change with sync_method = rsync it was possible when starting from a clean slate to write data, and replicate from a handoff partition without generating a hashes.invalid file in any primary. After the Related-Change it was no longer possible to write data without generating a hashes.invalid file; however with sync_method = rsync the replicator could still replicate data into a partition that never received an update directly and therefore no hashes.invalid. When using sync_method = ssync replication updates the hashes.invalid like any normal update to the partition and therefore all partitions always have a hashes.invalid. This change opts to ignores these implementation details in the probe tests when comparing the files between synced partitions by black-listing these known cache files and only validates that the disk file's on disk files are in sync. Related-Change-Id: I2b48238d9d684e831d9777a7b18f91a3cef57cd1 Change-Id: Ia9c50d7bc1a74a17c608a3c3cfb8f93196fb709d Closes-Bug: #1663021 |
||
|
Janie Richling
|
9681a833db |
Fix test_delete_propagate probe test
Fixes the failure in TestReconstructorRevert.test_delete_propagate introduced by Related-Change. Related-Change-Id: Ie351d8342fc8e589b143f981e95ce74e70e52784 Change-Id: I1657c1eecc9b62320e2cf184050e0db122821139 |
||
|
Alistair Coles
|
6249945a4f |
Fix misleading hash invalidations test comments
...and refactor two extremely similar tests to use a single helper method - the only paramerization being the existence or not of hashes.pkl at start of the test. Change-Id: I601218a9a031e7fc77bc53ea735e89700ec1647d Related-Change: Ia43ec2cf7ab715ec37f0044625a10aeb6420f6e3 |
||
|
Jenkins
|
fa456a590c | Merge "IO Priority support on the AArch64 architecture" | ||
|
Jenkins
|
2ffad93226 | Merge "Fix timing test error when rebalancing" | ||
|
Jenkins
|
29a07955cb | Merge "Use https instead of http for git.openstack.org" | ||
|
Jenkins
|
6e6a0b2f85 | Merge "Fix test_replicator assertion" | ||
|
Anh Tran
|
1c4a16a3f9 |
Typo fix: curent => current
Change-Id: Ib7d2c16a755ae1faca5a371d5dae1e143110178f |
||
|
Nam Nguyen Hoai
|
44fc037f97 |
Fix_typo: "subsitute" -> "substitute"
There is a wrong word, it should be updated. Change-Id: I17a1fed844bcd8ab3ed668a34a8471e5f6032963 |
||
|
gengchc2
|
702c804887 |
Use https instead of http for git.openstack.org
Trivialfix Change-Id: I4862d073adecf1cc5312a64795ad890eeddf774d |
||
|
Tim Burke
|
08ac32ee4e |
Prevent traceback in object-server on client disconnect
This only affects chunked transfers to replicated policies. EC policies already have comparable error handling in swift.common.utils._MultipartMimeFileLikeObject.read See also: https://github.com/eventlet/eventlet/commit/c3ce3ee but note that eventlet.wsgi.ChunkReadError and swift.common.exceptions.ChunkReadError are entirely unrelated. Change-Id: Ic9bcb73ea518c672a58a71d2b92152892f1ce2e4 |
||
|
Kota Tsuyuzaki
|
b1c36dc154 |
Fix test_replicator assertion
Because random.randint includeds both endpoints so that random.randint(0, 9) which is assigned in replicatore should be [0-9]. Hence, the assertion for replication_cycle should be *less or equal to* 9. And the replication_cycle should be mod of 10. Change-Id: I81da375a4864256e8f3b473d4399402f83fc6aeb |
||
|
Sachin Patil
|
f713bb1352 |
Fix swift-get-nodes arg parsing for missing ring
- Verify .ring.gz path exist if ring file is the first argument. - Code Refactoring: - swift/cli/info.parse_get_node_args() - Respective test cases for info.parse_get_node_args() Closes-Bug: #1539275 Change-Id: I0a41936d6b75c60336be76f8702fd616d74f1545 Signed-off-by: Sachin Patil <psachin@redhat.com> |
||
|
Christian Schwede
|
67d545e90f |
Fix timing test error when rebalancing
The reported timing can be 00:59:59 sometimes, but is still valid. This will fail in the tests, as seen in [1]. This patch fixes this by mocking the current time, ensuring that the first two rebalances happen at the same time. [1] http://logs.openstack.org/97/337297/32/check/gate-swift-python27-ubuntu-xenial/46203f1/console.html#_2017年02月08日_07_28_42_589176 Change-Id: I0fd43d5bb13d0e88126f4f6ba14fb87faab6df9c |
||
|
Jenkins
|
fc09dda92b | Merge "Better optimistic lock in get_hashes" | ||
|
Jenkins
|
4125e8c1df | Merge "Handle log message interpolation by the logger" | ||
|
Gábor Antal
|
5817f804fd |
Handle log message interpolation by the logger
According to OpenStack Guideline[1], logged string message should be interpolated by the logger. [1]: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-log-messages Change-Id: I49952348c06e340c6cfc708028f2b06e02a16dfc Closes-Bug: #1661262 |
||
|
Jenkins
|
38cebabbeb | Merge "Rebalance with min_part_seconds_left > 0" | ||
|
Jenkins
|
65744c8448 | Merge "Shuffle disks and parts in reconstructor" | ||
|
Clay Gerrard
|
aa71d7e77b |
Better optimistic lock in get_hashes
mtime and force_rewrite have a *long* tangled history starting back in lp bug #1089140 that's been carried through many refactors. Using force_rewrite on errors reading from the pickle has always been a read-modify-write race; but maybe less bad than the infinite recursion bug it fixed? Using getmtime has always had somewhat dubious resolution for race detection - the only way to be sure the content of the file is the same as when we read it without locking is to open the file up and check. Unfortunately, the ondisk data wasn't rich enough to disambiguate when the ondisk state represented may have changed (e.g. when an invalidation for a suffix currently being hashed is consolidated, or if all hashes are invalid like after an error reading the hashes.pkl) - so we also add a key with a timestamp for race detection and write down if the dictionary has any valid suffix hashes. Along the way, we accidentally fix a serious performance regression with hash invalidations... We currently rehash all invalid suffixes twice on REPLICATE calls. First we consolidating hashes, marking all invalid suffixes as None and then perform the first suffix rehashing. And then also *every time* one more time again immediately as soon as we get done with the first one we throw all that work we just did on the floor and rehash ALL the invalid suffixes *again* a second time because the race detector erroneously notices the hashes.pkl file has been "modified while we were hashing". But we're not in a race. We took the mtime before calling consolidate hashes, and consolidate hashes modified the pickle when it wrote back the invalid suffixes. FWIW, since consolidate hashes operates under directory lock it can't race - but we don't want suffix rehashing to hold the directory lock that long so we use optimistic locking - i.e. we optimistically perform the rehash w/o a lock and write back the update iif it hasn't changed since read; if it has we retry the whole operation UpgradeImpact: If you upgrade and need to rollback - delete all hashes.pkl: rm /srv/node*/*/object*/*/hashes.pkl Anything on significance achived here was blatently plagerised from the work of others: Co-Author: Pavel Kvasnička <pavel.kvasnicka@firma.seznam.cz> Related-Change-Id: I64cadb1a3feb4d819d545137eecfc295389794f0 Co-Author: Alistair Coles <alistair.coles@hpe.com> Related-Change-Id: I8f6bb89beaaca3beec2e6063299189f52e9eee51 Related-Change-Id: I08c8cf09282f737103e580c1f57923b399abe58c Change-Id: Ia43ec2cf7ab715ec37f0044625a10aeb6420f6e3 |