Commit graph

9129 commits

Author SHA1 Message Date
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
reesporte
fc41870dfe remove linux amd64 dependency
Co-authored-by: souhailanoor <90720110+souhailanoor@users.noreply.github.com>
2022-03-15 14:43:06 -05:00
reesporte
f690694e77 remove commented gitlab jobs, run only on merge to master 2022-03-15 14:43:06 -05:00
reesporte
c9c36f5fc6 WIP: start integration test setup
TODO:
- remove commented out gitlab jobs
- make it run only on merge to master
2022-03-15 14:43:06 -05:00
tgruben
1906709ce5
Merge pull request #1978 from molecula/decimal-field-fix
[FB-1257] decimal woes
2022-03-15 11:35:42 -05:00
Todd Gruben
dfe052aa1a increase test coverage 2022-03-15 11:01:03 -05:00
Todd Gruben
8c3c774492 ensure provided min/max are valid on int fields 2022-03-15 10:29:48 -05:00
Todd Gruben
739fd9b04b ensure provided min/max are valid 2022-03-15 09:33:27 -05:00
Todd Gruben
f7fb9f386e decimal wowes 2022-03-15 01:52:18 -05:00
reesporte
12f931d635
Merge pull request #1976 from molecula/internal-disk-usage
add /internal/disk-usage endpoint for testing
2022-03-14 15:42:51 -05:00
reesporte
5224612df3 add /internal/disk-usage endpoint for testing
will be used to ensure delete work doesn't result in an ever-inflating usage of
memory
2022-03-14 15:23:15 -05:00
tgruben
3135c40f17
Merge pull request #1970 from molecula/FB-1185
[FB-1185] Batch delete transactions
2022-03-14 15:06:45 -05:00
tgruben
3a59421e3b
Merge branch 'master' into FB-1185 2022-03-14 14:30:37 -05:00
Todd Gruben
f9ee18b8b0 review suggestions 2022-03-14 14:18:21 -05:00
Ben Johnson
00924a2834
Merge pull request #1975 from molecula/remove-worker-pool-mu
[FB-1250] Remove unnecessary worker pool mutex
2022-03-14 12:47:11 -06:00
tgruben
a54fded24a
Merge branch 'master' into FB-1185 2022-03-14 13:00:24 -05:00
Ben Johnson
01e8a59f76 Remove unnecessary worker pool mutex 2022-03-14 09:56:08 -06:00
hphamMolecula
9e3734e9cc
Merge pull request #1973 from molecula/fb-1188-ttl-info
FB-1188 - TTL - Better TTL logging info
2022-03-11 12:17:12 -06:00
Hoang Pham
6a2a0cf008 FB-1188 - TTL - run TtlRemoval on server start, better ttl log info message 2022-03-11 11:37:36 -06:00
rachithrr
05870bcc5b
Merge pull request #1921 from molecula/clustertest-retry-coverage-v2
FB-1159: Try to test etcd retry code
2022-03-11 07:29:18 -06:00
Todd Gruben
e64dde0b4c remove round trip 2022-03-11 06:20:07 -06:00
Todd Gruben
82d3f54a28 new delete flow to allow for qcx reset 2022-03-11 06:20:07 -06:00
Todd Gruben
e209759283 make maxdelete an optional param 2022-03-11 06:20:07 -06:00
Todd Gruben
1a8989a69b . 2022-03-11 06:20:07 -06:00
Todd Gruben
eff54f49a6 qcx finish/reset 2022-03-11 06:20:07 -06:00
Todd Gruben
dc7493ff75 optimize container after remove 2022-03-11 06:20:07 -06:00
Todd Gruben
d322cc7aef batch size 65536 2022-03-11 06:20:07 -06:00
rachithrr
d29f2d219a
Merge branch 'master' into clustertest-retry-coverage-v2 2022-03-10 17:14:39 -06:00
souhailanoor
ac450a0c95
Merge pull request #1969 from molecula/fb-1186-updates
FB-1186: make deletes concurrent
2022-03-10 17:11:23 -06:00
rachithrr
5059f37c01 Merge branch 'master' of github.com:molecula/featurebase into clustertest-retry-coverage-v2 2022-03-10 16:54:30 -06:00
rachithrr
e2ce9afce9 sonarcloud fix 2022-03-10 16:25:59 -06:00
souhailanoor
7c8fde3bd6
Merge branch 'master' into fb-1186-updates 2022-03-10 16:18:50 -06:00
Souhaila Noor
a7b849c5fa release read tx 2022-03-10 16:18:39 -06:00
Matthew Jaffee
85ea078e86
Merge pull request #1972 from molecula/remove-circle
Remove CircleCI config
2022-03-10 14:52:20 -06:00