Commit graph

5794 commits

Author SHA1 Message Date
Nia Weiss
fa481c91de
remove meaningless Writeable function 2020-10-12 14:18:38 -04:00
Nia Weiss
420b44a79a
make all query translations writeable 2020-10-12 11:33:04 -04:00
Nia
6fa8ead5ff
Merge pull request #954 from niaow/v2.1-fix-nil-grpc
Fix handling of nil in grpc responses
2020-10-09 12:31:56 -04:00
Nia Weiss
ad9f33cdc4
fix handling of nil in grpc responses 2020-10-09 12:01:46 -04:00
Nia
4c47836732
Merge pull request #943 from niaow/revert-inspect-ungarbage
Remove "fix" for inspecting garbage keys
2020-10-08 14:39:04 -04:00
Nia Weiss
9f7225b149
delete commented-out broken code in inspect 2020-10-08 13:21:30 -04:00
Nia
2805b22975
Merge pull request #946 from niaow/v2.1-split-batches
Split query batches in the executor
2020-10-08 13:18:22 -04:00
Nia Weiss
27289c5f35
split query batches in the executor
We previously had some significant bugs in which our error handling for translation would cause an entire batch of queries to silently fail.
This change processes each call seperately, such that all executable queries are processed.
2020-10-08 09:53:11 -04:00
Nia Weiss
195c6f7704
remove "fix" for inspecting garbage keys
Inspect was changed to discard garbage keys.
Unfortunately, this change was incorrect, and users of inspect do not expect this.
2020-10-07 12:14:44 -04:00
Nia
33af6c1ac7
Merge pull request #937 from niaow/v2.1-break-inspect-more
Restore creation of column keys in inspect when they do not exist
2020-10-06 14:00:19 -04:00
Nia Weiss
da157a5aa4
restore creation of column keys in inspect when they do not exist
This sounds completely conterintuitive but everything relies on it.
2020-10-06 12:43:46 -04:00
Matthew Jaffee
fe47d4764e
Merge pull request #930 from jaffee/pr224-on-2.1
ensure that Inspect generates a result for every header item
2020-10-05 19:24:23 -05:00
Jason Aten
8c5a2d4a6d
ensure that Inspect generates a result for every header item
This was previously done for the path where an index did not have keys
and this commit does it for the paths which do have keys.

This was originally two commits as there was some tricky cases that
needed multiple else statments within a single type.
2020-10-05 17:06:16 -05:00
Travis Turner
5e79e224f2
Merge pull request #821 from travisturner/container-thaw-v21
remove container thaw in test; use repair instead
2020-10-05 12:23:27 -05:00
Matthew Jaffee
adae58b800
Merge pull request #896 from molecula/2.1.4-backport-822-intgrtn-tests
fix inspect panic from incorrect handling of the many types of empty …
2020-09-24 20:14:08 -05:00
Nia Weiss
fb4822f22c
fix inspect panic from incorrect handling of the many types of empty argument 2020-09-24 16:36:01 -05:00
Matthew Jaffee
75d857ead2
Merge pull request #890 from molecula/v2.1.4
V2.1.4
2020-09-23 13:25:50 -05:00
Matthew Jaffee
a3f7cc0bbc
Merge pull request #894 from jaffee/2.1.4-plus-882-inspect-fix
Fix holes in grpc response for inspect
2020-09-23 13:20:21 -05:00
Kuba Podgórski
4dde0f9878
Fix holes in grpc response for inspect
Had to remove QuerySQLUnary stuff from grpc_test.go since that was testing functionality which has added by the VDSM collapse and we're backporting this fix onto 2.1 which is pre-VDSM collapse
2020-09-23 11:58:52 -05:00
Jason Aten
060db4e412 builds 2020-09-18 16:34:03 -05:00
Jason Aten
f9944e6498 add 732 2020-09-18 16:31:29 -05:00
Kuba Podgórski
4b0789ebf0 Merge pull request #732 from kuba--/translatekey-writable
Add writable argument to TranslateKey functions.
2020-09-18 16:23:46 -05:00
tgruben
450ae490a5 Merge pull request #868 from molecula/with_primary_instead_owner
Translate only on coordinator/primary
2020-09-18 14:02:22 -05:00
Kuba Podgórski
d77cdb745a Merge pull request #853 from kuba--/fix-translate_index_keys
Fix translation index keys
2020-09-18 13:54:14 -05:00
Kuba Podgórski
6348956850 Merge pull request #847 from kuba--/fix-writable
Fix TranslateStore writable
2020-09-18 13:36:39 -05:00
Travis
77410bbd1d
remove container thaw in test; use repair instead 2020-09-08 15:47:08 -05:00
Matthew Jaffee
817d6f1498
Merge pull request #754 from molecula/backport-nondeleting-fix
Backport nondeleting fix
2020-09-02 16:48:16 -05:00
Seebs
1f2868f059
when updating a container, drop the single-container cache
This can cause incredibly weird and hard-to-debug problems if the previous
container value is still in the cache after an update, and in particular,
can result in having a stale container value cached after a roaring import
that modified the container. Coupled with another bug which could corrupt
containers on a delete, this produces a very strange bug where a value is
present in a fragment, but an attempt to delete it reports failure.
2020-08-28 11:10:13 -05:00
Travis
6cd5b4fbbd
stop setting N on a frozen container 2020-08-28 11:09:36 -05:00
Travis Turner
76dbedc082
Merge pull request #640 from travisturner/backport-executeclearrow
safe cast of bool in executeClearRow
2020-08-04 17:18:33 -05:00
Travis
f80b787de0
safe cast of bool in executeClearRow 2020-08-04 15:54:48 -05:00
Travis Turner
fc15489124
Merge pull request #598 from travisturner/backport-bug-fixes
Backport bug fixes
2020-07-23 11:49:09 -05:00
Alan Bernstein
9e23e798df
Move checkClusterStatus to test package 2020-07-23 11:16:15 -05:00
Travis
08703fa0cb
use c.Topology, when available, to determine partitionNodes 2020-07-23 11:16:07 -05:00
Alan Bernstein
ae279e27ae
Use nodes from topology to calculate partitionNodes 2020-07-23 11:16:01 -05:00
Alan Bernstein
7544e7b20b
Add test 2020-07-23 11:15:54 -05:00
Seebs
e833f6c47e
various cluster test fixups/cleanups
Some cluster tests failed sporadically. In order to fix them, I
introduced some debugging-related functionality, which revealed
several new bugs that were actually existing bugs we just happened
not to hit in testing. This combines various fixes.

We start with "make the nodes used in testing have distinct names
based on the test case name", which lets us discover that we are
leaking clusters, which continue to sit around talking with each
other. That in turn causes significantly higher load on access to
ephemeral ports, which causes sporadic failures when we shut a
node down and try to restart it, but something else has gotten assigned
its ephemeral port number since then.

Part of the fix is to try to rebind on port 0 if an attempt to
bind to a specified port over 32k fails. This is a guess; the
actual ephemeral port range could be 16k+, 32k+, or 48k+, or just
about anything else really, but it seems reasonable in
practice.

There were bugs in the oft-repeated loops to await the cluster
achieving a given state, and it could hang forever if it didn't,
so we add a timeout and a standard function on the test.Cluster
type to handle that. Note that the timeout seems irrelevant; in
every case I've tried, a timeout of 0 is fine because the node
start doesn't complete until the cluster state has changed.

Add a method to test.Command to run a query, expecting a specific
result. Also clean up some of the formatting and generation of
queries, and allow parameterized (badly) queries. This lets us fix
a subtle bug, which is that test cases were depending on assumptions
about shardwidths. Also improve the diagnostic output from some of
these functions so test failures are more comprehensible.

But actually that dependency on shardwidths was ALSO revealing a
genuine underlying bug, which is that a node resize did not correctly
propagate the schema to a new node if there was no data present
on shards that node would own. We now also have a test case that
hits that (or would, if we hadn't fixed it).

Add comments explaining the server options parameters for MustNewCluster
and MustRunCluster.

Also, we implement the ReadFrom and WriteTo behaviors for
InMemTranslateStore, without which some of the cluster resize tests
fail. Props to the comment for specifically stating that they wouldn't
work if that happened, which probably saved me several hours of
debugging. The implementations may not be robust, but
InMemTranslateStore is intended to be used only in lightweight
and transient testing.
2020-07-23 11:15:18 -05:00
Seebs
82bcf1fd9f
move Cluster type and methods into existing almost-empty cluster.go 2020-07-23 11:15:09 -05:00
Jaden Weiss
02b1f136fa
Merge pull request #595 from jaddr2line/fix-between-common-bits-backport
Fix BSI range queries with nonzero common upper bits and oversized BSI queries (v2.1.x backport)
2020-07-23 11:26:28 -04:00
Jaden Weiss
dcdcf1356f
fix oversized rangeEQ 2020-07-23 10:59:50 -04:00
Jaden Weiss
6c506f1138
fix rangeBetween when there are nonzero common upper bits and oversized rangeGT 2020-07-23 10:34:25 -04:00
Travis
b2092e4395
thaw frozen containers for runRunInPlace test 2020-07-09 14:15:21 -05:00
Seebs
cf146ababb
further checking about possible row cache errors
Check also on bit setting for cache/storage mismatches.

Also, add diagnostic printing to a couple of points inside roaring
where we think the code can do something wrong. All of these are
cases where what the code does is actually wrong -- we're leaving
it wrong because we want to confirm/deny that this is happening
when the strange behavior happens.

We also filter these bugs a little bit -- we only print some of
them when they would result in a change to a mapped-or-frozen
container, which would be a bug that could affect things. There's
actually cases where this is wrong -- if these bugs affected
something like one of the keep/filter rows in unsignedLT, that could
affect things -- but it shouldn't apply in the cases we're
concerned with, and without the filtering, our regular tests
produce about 500,000 of one of these messages, all from removing
the last bit in array containers in a test where they actually
won't be used again.

We also mark all the test containers frozen so they *will* show
errors if this happens to them.
2020-07-09 08:43:33 -05:00
Kuba Podgórski
549c98dc64
Merge pull request #447 from kuba--/union-run-run
Add unionRunRunInPlace
2020-07-02 11:05:27 +02:00
Kuba Podgórski
751383ecb1
Merge branch 'master' into union-run-run 2020-07-02 10:52:59 +02:00
Jaden Weiss
a52c5d803d
Merge pull request #510 from jaddr2line/roaring-cleanup-3
Roaring cleanup
2020-07-01 17:21:14 -04:00
Jaden Weiss
6d692487ed
Merge branch 'master' into roaring-cleanup-3 2020-07-01 17:15:10 -04:00
Kuba Podgórski
ec73bf5906
Merge branch 'master' into union-run-run 2020-07-01 22:25:06 +02:00
Kuba Podgórski
e777a28283
Merge pull request #513 from kuba--/todo-501
Address the overflow issue with values outside the int64 range
2020-07-01 21:09:09 +02:00
Kuba Podgórski
4bed1df101 Address the overflow issue with values outside the int64 range 2020-07-01 20:40:47 +02:00