Commit Graph
2567 Commits
Author SHA1 Message Date
Max Brunsfeld c2feb41fa9 Update wrong assertions after fixing missing event in FakeFs 2023-03-21 11:26:13 -07:00
Max Brunsfeld a5bce4fc7e collab 0.8.2 2023-03-17 15:00:31 -07:00
Max Brunsfeld 0c129427c7 Merge pull request #2305 from zed-industries/faster-access-token-validation
Faster access token validation
2023-03-17 14:56:30 -07:00
Max BrunsfeldandMikayla Maki 1e3f3b5cfa Add logging and metric for time spent hashing auth tokens
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:32:13 -07:00
Max BrunsfeldandMikayla Maki 721c1cc9f3 Reduce scrypt work factor to speed up websocket authentication
Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2023-03-17 14:31:39 -07:00
Max BrunsfeldandAntonio Scandurra 9d604c0573 Return a 400, not a 500 when token validation fails
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 13:56:12 -07:00
Max BrunsfeldandAntonio Scandurra 2c2bcf87f0 Lookup access tokens by id when authenticating a connection
This avoids the cost of hashing an access token multiple times,
to compare it to all known access tokens for a given user.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-17 11:13:50 -07:00
Antonio ScandurraandJulia Risley e2c6eaa335 Deserialize Theme directly into the heap to avoid stack overflow
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-03-17 15:58:52 +01:00
Max Brunsfeld e95615a1f3 collab 0.8.1 2023-03-16 14:21:35 -07:00
Max Brunsfeld 80b128a0ed Log the delay when retrying a transaction 2023-03-16 13:07:38 -07:00
Max BrunsfeldandAntonio Scandurra dbc4ebbe87 Introduce a delay before retrying a transaction after a serialization failure
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-16 13:07:38 -07:00
Antonio Scandurra 4f2ea2c049 collab 0.8.0 2023-03-14 18:21:16 +01:00
Antonio Scandurra 58437c6d35 Fix seed binary 2023-03-14 12:37:56 +01:00
Antonio Scandurra 1830d984c1 Create user record automatically when someone logs in on the website
Now that we are moving out of the private alpha, we should let everyone
in when they try to log into zed.dev.
2023-03-14 12:25:04 +01:00
Max BrunsfeldandAntonio Scandurra 9342332495 Fix failure to see screenshare tracks that were started prior to joining a call
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-03-13 11:15:22 -07:00
Max Brunsfeld a72352e0c8 collab 0.7.2 2023-03-13 10:11:44 -07:00
Antonio ScandurraandMax Brunsfeld 3c81933fbc Leave room on quit
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-03-13 17:52:10 +01:00
Max Brunsfeld c4b0eaf626 Encode db-max-connections env var as a string in k8s manifest 2023-03-10 17:19:16 -08:00
Max Brunsfeld 5ef6c610c8 collab 0.7.1 2023-03-10 16:36:03 -08:00
Mikayla Maki ccf4c95ae3 Merge pull request #2199 from zed-industries/welcome-experience
Welcome experience
2023-03-10 10:48:30 -08:00
Antonio Scandurra 7761594ab5 Increase the amount of max connections to the database 2023-03-10 10:10:59 +01:00
Mikayla Maki 3519bf902a re-add spaces removed by new setting 2023-03-09 00:45:05 -08:00
Antonio Scandurra c7dc021a30 collab 0.7.0 2023-03-09 09:30:04 +01:00
Antonio Scandurra ee56948b99 Introduce Kubernetes liveness probe to ensure database works 2023-03-09 09:17:55 +01:00
Antonio Scandurra a16792e169 Merge pull request #2252 from zed-industries/limit-messages-processed-in-parallel
Prevent collab server from being overwhelmed with messages
2023-03-09 08:51:48 +01:00
Mikayla Maki 877240d746 Add blank pane experience 2023-03-08 17:56:39 -08:00
Max Brunsfeld d5c369c4e0 collab 0.6.2 2023-03-08 12:22:16 -08:00
Antonio Scandurra 406cc54e69 Limit the number of parallel messages handled for any given connection 2023-03-08 17:04:01 +01:00
JuliaandNathan Sobo 58a3095769 Update db followers table when user leaves a project
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-03-07 18:56:03 -05:00
Julia ed625dc83f Update collab integration test to new reconnect timeout 2023-03-07 12:23:18 -05:00
JuliaandAntonio Scandurra c86117f852 Increase reconnect timeout
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-03-03 13:10:08 -08:00
Max Brunsfeld 61cfa0751a adjust buffer-formatting assertion to reflect final newline addition 2023-02-28 21:52:00 -08:00
Max Brunsfeld 332a63b96a collab 0.6.1 2023-02-24 09:44:23 -08:00
Julia aae083923c Differentiate between follow state on a per-project basis 2023-02-24 00:07:17 -05:00
Antonio Scandurra bbbd79a3a2 Fix error when deleting rooms containing projects on refresh
A foreign key violation was causing the server to never delete stale
rooms during `Database::refresh_room` due to having one or more project
records referencing the room.
2023-02-23 15:54:35 +01:00
Antonio Scandurra 10881ed0a1 Fix compilation errors after restructuring room_transaction 2023-02-23 15:17:22 +01:00
Antonio Scandurra 088d3901e9 Merge branch 'main' into call-ui-follow-up 2023-02-23 15:15:46 +01:00
Antonio Scandurra 38a12ff77e Tear down peer when signing out 2023-02-23 14:47:02 +01:00
Antonio Scandurra 42bf6ae38b Merge pull request #2200 from zed-industries/fix-slow-project-join
Hold room lock through the entirety of a `room_transaction`
2023-02-23 09:11:58 +01:00
Max Brunsfeld de2051a89b collab 0.6.0 2023-02-22 12:35:15 -08:00
JuliaandMax Brunsfeld f9f5fc38d1 Be more specific about clearing (leader, follower) row
Previously anyone unfollowing someone would clear all other rows for
other followers leading to an incorrect state, fix and test

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 15:29:20 -05:00
Max Brunsfeld 9032b8297a Retrieve room id from the project when following/unfollowing
Previously, we were accidentally using the project id as the room id.
2023-02-22 11:34:55 -05:00
JuliaandAntonio Scandurra 84e1237d45 Add followers table to sqlite scheme for tests
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:22:37 -05:00
Julia fa56590cd7 Following face piles finally take their first breath 2023-02-22 11:21:23 -05:00
JuliaandMax Brunsfeld 62ea8909c1 Fix deadlock in db get_room
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2023-02-22 11:21:23 -05:00
Julia bd88f47816 Initial tracking of unfollows on collab server 2023-02-22 11:21:23 -05:00
JuliaandAntonio Scandurra a3d474af23 Begin tracking follow states on collab server
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-02-22 11:21:23 -05:00
Antonio Scandurra ea07c26aac Hold room lock through the entirety of a room_transaction
Previously, when the host repeatedly sent `UpdateWorktree` messages,
new guests attempting to join a project would observe a severe slowdown
caused by a database serialization error (e.g., the coherence of the data
would get violated midway through `Database::join_project` due to worktree
entries being mutated as the user joined). Writing entries is pretty fast,
whereas reading all of them for a project can take more than 100ms.
Transactions that failed due to a serialization error are retried, but the guest
would keep retrying until the host finished writing because the guest's read
was slow.

This commit changes the semantics of `room_transaction` to acquire a room
lock before even starting the transaction and holding it all the way after
commit (storing it, as before, in the `RoomGuard`). This ensures that a fast
writer (the host) can't starve a slow reader (the guest), allowing the latter
to make progress by temporarily pausing writes by the former.
2023-02-22 16:04:29 +01:00
Max Brunsfeld 5c36234243 Merge branch 'main' into randomized-tests-operation-script 2023-02-20 10:39:00 -08:00
Julia 5082654241 Enforce rustfmt on CI & clean up some let-else format errors 2023-02-20 13:27:35 -05:00