Commit graph

9162 commits

Author SHA1 Message Date
reesporte
8fc70e6494
Merge pull request #2008 from molecula/FB-1332
Timestamp FieldOptions should include Min and Max when marshalled to …
2022-04-06 16:54:52 -05:00
reesporte
77568762c2 Timestamp FieldOptions should include Min and Max when marshalled to JSON
When you backup a cluster, we call /schema which marshals timestamp field options to
json, and restores the fields with those options. If the min and max are missing,
they are set to 0 on restore, which causes an issue on subsequent ingest.

Fixes [SUP-213](https://molecula.atlassian.net/browse/SUP-213) and
[FB-1332](https://molecula.atlassian.net/browse/FB-1332)
2022-04-06 16:29:24 -05:00
reesporte
f93b4b7878
Merge pull request #2007 from molecula/fb-1234-integration-test
Fb 1234 integration test
2022-04-05 15:21:53 -05:00
reesporte
29c339ced6 make the test a gauntlet test, uncomment all the others
Co-authored-by: tgruben <tgruben@gmail.com>
2022-04-05 15:00:32 -05:00
reesporte
c61d565b3c integration test for backup restore sev 2!
Co-authored-by: tgruben <tgruben@gmail.com>
2022-04-05 14:59:50 -05:00
reesporte
44dac583eb
Merge pull request #2005 from molecula/fb-1324
[FB-1324]: TranslateData should only redirect to an up node
2022-04-04 16:01:57 -05:00
reesporte
dbc3159e2c TranslateData should only redirect to an up node
During backups on a multi-node cluster, TranslateData was unconditionally redirecting to the primary, regardless of the primary’s status. This is less than ideal. If the primary is down, the backup will fail.

As a consequence of this fix, we will also no longer needlessly redirect to ourselves on a single node cluster. This is a great optimization win!!!!

Fixes # FB-1324 SUP-209

Co-authored-by: tgruben <tgruben@gmail.com>
2022-04-04 15:38:47 -05:00
seebs
e379ae5a36
Merge pull request #2003 from molecula/fb1306
[FB-1306] ingest API delete could deadlock
2022-04-04 11:38:08 -05:00
Seebs
28c2ccf074 allow ingest API delete to work at all, add test for it
The ingest API tried to do a Qcx operation that needs a write Tx after
requesting a write Tx. This doesn't work. The ingest API is the only caller
of clearExistenceColumns, so it's easy to just make it work for a given
shard using a provided Tx. This isn't especially clean, but a lot of this
is due for an overhaul anyway because the Qcx/Tx stuff is sort of broken.

Also, add any test case at all for this, since we didn't have one, and
also fix the fact that the test case failed because the test harness
didn't allow empty result sets.
2022-04-01 09:48:51 -05:00
reesporte
8230d53714
Merge pull request #2002 from molecula/fb-1305
refactor AddAuthToken to fallback to userinfo
2022-04-01 09:12:03 -05:00
reesporte
f529e723e7 refactor AddAuthToken to fallback to userinfo
This commit addresses a bug in https://molecula.atlassian.net/browse/SUP-200 where
the Authorization header was not being set correctly when the token was passed via
"userinfo" in the context and not "token".

Now, we prefix the token with "Bearer " when the token comes from userinfo.

This commit also adds a unit test for this function, and simplifies logic. It also
fixes a test that didn't quite test the behavior we wanted.
2022-03-30 16:52:24 -05:00
reesporte
23d8282663
Merge pull request #2000 from molecula/badge-time
add coverage, code quality badges
2022-03-30 10:34:55 -05:00
reesporte
efc21595c1 add coverage, code quality badges 2022-03-30 10:07:23 -05:00
tgruben
eb7c67e5fc
Merge pull request #1997 from molecula/bad-delete-bandaid
[FB-1290] revert async remove channel
2022-03-29 16:07:12 -05:00
Todd Gruben
2ac360734e remove RemoveChannel 2022-03-29 13:42:20 -05:00
Todd Gruben
9e3a2bba15 revert remove channel 2022-03-25 15:50:54 -05:00
reesporte
a23c820e12
Merge pull request #1995 from molecula/sup-194
FB-1287 - fix viewTimePart to account for bad strings
2022-03-25 11:53:14 -05:00
reesporte
5946a12ab9 fix viewTimePart to account for bad strings
this stems from https://molecula.atlassian.net/browse/SUP-194 where the string
"standard" was being passed to viewTimePart, which output "standard" as the result.
this is not a valid time string and was causing confusing errors. now it simply
doesn't do that

this commit also adds regression testing framework and a regression test for fb-1287
2022-03-25 11:27:39 -05:00
Matthew Jaffee
f23d30deb4
Merge pull request #1996 from molecula/fb-1281
[FB-1281] Add regression test for delete with invalid bitmap panic
2022-03-24 16:44:56 -05:00
Ben Johnson
7aff965a28 Add regression test for FB-1281 2022-03-24 15:20:57 -06:00
Matthew Jaffee
1f147f3c8c
Merge pull request #1994 from molecula/fb-1270-repro
add reproducer for FB-1270 into smoke tests
2022-03-24 13:57:58 -05:00
Matthew Jaffee
bb637131b9 delete query was syntactically broken and unecessary
the issue reproduced even though this query was broken, so it can be removed.
2022-03-24 13:33:11 -05:00
Matthew Jaffee
b08389e0ed add reproducer for FB-1270 into smoke tests 2022-03-24 12:58:25 -05:00
Ben Johnson
cc86d9ba19
Merge pull request #1993 from molecula/sup-193
Clear page from RBF dirty cache on free.
2022-03-24 11:42:53 -06:00
Ben Johnson
331bf5567b
Merge branch 'master' into sup-193 2022-03-24 10:58:11 -06:00
Samir Patel
4843030a8b
Merge pull request #1992 from molecula/fb-1274
[FB-1274] Allow empty values to be provided for vars in Row call
2022-03-24 12:20:48 -04:00
Samir Patel
8da946fe9b allow empty values to be provided for vars in Row call
queries can become arbitrarily long when variables are used.
This is especially the case when a variable is defined as
'select distinct field from table'
and a user wants to use all the values in a Row call
(which is effectively disabling any condition on the field).

This change allows users to select no values for a variable
associated with a Row call to disable the condition. If that
variable is the only condition (query expands to nothing)
then it interprets it as an All call.
2022-03-24 10:45:30 -05:00
Ben Johnson
52ab38d50d Clear page from RBF dirty cache on free. 2022-03-24 09:12:15 -06:00
reesporte
29754b53b6
Merge pull request #1991 from molecula/authclustertest-fix
use the env var for project
2022-03-24 09:35:20 -05:00
reesporte
e4e24baa43 use the env var for project 2022-03-23 08:55:23 -05:00
rachithrr
1230e4127c
Merge pull request #1990 from molecula/FB-1281
FB-1281: FeatureBase crashes when Row call with "==" in Delete
2022-03-21 16:49:09 -05:00
rachithrr
cc4dcce181
Merge branch 'master' into FB-1281 2022-03-21 15:48:16 -05:00
rachithrr
d7c561aa7d FB-1281: FeatureBase crashes when Row call with "==" in Delete
- the EQ goes through HasConditionArg(), but the error wasn't caught
in the case of Delete.
2022-03-21 15:40:39 -05:00
seebs
bac3360fa3
Merge pull request #1989 from molecula/fb1266
[FB-1266] prevent concurrent map writes in openField
2022-03-21 15:10:32 -05:00
Seebs
70760b187f prevent concurrent map writes in openField
Prior to this, we locked the index-wide i.mu around writes to i.fields.
But now the entire open process is holding that lock, so we couldn't
lock it here (that'd deadlock) and didn't think we needed to (because
it was held). But in fact that means that multiple fields being opened
at once can concurrently write to the map. Conveniently, we *already*
pass a shared mutex into openField() to prevent exactly this sort of
problem; we just need to actually use it when doing the write.
2022-03-21 14:34:39 -05:00
Kasey C. Rodgers
a9b56b055e
Merge pull request #1988 from molecula/fb-1277-go1.17.8
build with Go 1.17.8 to avoid vulnerability in 1.17.7
2022-03-21 12:32:17 -07:00
Matthew Jaffee
3c98f1dfb1 build with Go 1.17.8 to avoid vulnerability in 1.17.7 2022-03-21 13:53:00 -05:00
seebs
7f19c5cec7
Merge pull request #1985 from molecula/fb1266
[FB-1266] track closing status for index/field/view, shut down cache flush early
2022-03-21 12:23:44 -05:00
Seebs
32fec70816 track closing status for index/field/view, shut down cache flush early
This is a lot more complex than it sounds like it will be.

We shut down the cache flush when a holder is closed, but if you're
deleting an index, we don't check for that, and can have a cache flush
still creating cache files in an index which could conceivably result
in os.RemoteAll() failing. This shouldn't happen often, but it's happened
at least once.

To address this, first, we make sure that every tier of this operation
bails as quickly as it can after the thing it's working on closes. Second,
we retry RemoveAll.

Unfortunately, some things get reopened, so we have to handle that,
have mutexes covering the access to the channel, and so on. Also, some
things were getting double-closed, which was previously harmless but
could now fail. So, first, catch all the existing double-closes and
remove them, second, make the double-close fail with an error. Note
that virtually none of the tests check for errors on close.

This passes tests and should be unable to hit the original problem.
Unfortunately, it's unreasonably hard to check that, because it
requires an incredible coincidence of timing on the delete aligning
with a cache flush.
2022-03-18 14:41:44 -05:00
seebs
f7820e45f9
Merge pull request #1986 from molecula/fb1272
[FB-1272] listen on localhost:0 instead of :0
2022-03-18 14:40:59 -05:00
Seebs
a6aa1097f1 listen on localhost:0 instead of :0
MacOS's firewall complains about a previously unknown app trying to
listen for network connections whenever we run go test. That's because
we *are* listening for network connections on arbitrary interfaces, not
just on localhost as we probably intended. Fix that.
2022-03-18 13:38:30 -05:00
Matthew Jaffee
436334005e
Merge pull request #1984 from molecula/fb-1268-future-go1.18
FB-1268 use Go 1.18 for future tests
2022-03-17 16:52:06 -05:00
Matthew Jaffee
75a2d066c2 use Go 1.18 for future tests 2022-03-17 16:08:39 -05:00
tgruben
11c55faeba
Merge pull request #1982 from molecula/restore-migrate
Restore migrate
2022-03-16 15:19:26 -05:00
Todd Gruben
b3e930dc39 hard code field options 2022-03-16 14:49:58 -05:00
Matthew Jaffee
0d4ea1d991
Merge pull request #1981 from molecula/fb-1260-err-field-exists-2
need to wrap in conflictError to actually produce 409
2022-03-16 00:40:05 -05:00
Matthew Jaffee
7da4a71421 need to wrap in conflictError to actually produce 409 2022-03-16 00:36:09 -05:00
Matthew Jaffee
7ff1d94648
Merge pull request #1980 from molecula/fb-1260-err-field-exists
return correct ErrFieldExists so we give an HTTP 409
2022-03-15 23:33:26 -05:00
Matthew Jaffee
8f7f5324d4 return correct ErrFieldExists so we give an HTTP 409 2022-03-15 23:20:39 -05:00
reesporte
25dce501fe
Merge pull request #1979 from molecula/test-delete
test delete
2022-03-15 16:11:23 -05:00