Commit Graph
663 Commits
Author SHA1 Message Date
Nathan Sobo ce223e88fe Fix tests that failed due to defaulting the grouping interval to zero in tests 2023-01-06 17:56:21 -07:00
Antonio ScandurraandNathan Sobo 1ac1bd1838 Share new worktrees when resharing project
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-01-06 12:58:19 -07:00
Nathan Sobo 80cc0ba9dc Update scan_id on worktree entries when there is a conflict
Forgetting to do this meant we were unable to sync changes with reconnecting
guests in some cases.
2023-01-04 13:59:16 -07:00
Nathan Sobo e3b9adc8f6 Update buffer files when synchronizing buffers
It's possible that the host was disconnected when attempting to notify
guests of a file save, so we need to transmit this in order to correctly
update the file's mtime.

Next failing seed OPERATIONS=200 SEED=6894
2023-01-04 12:33:48 -07:00
Nathan Sobo 01d051d43d Introduce completed_scan_id to worktree
We need to know the most recent scan id we have actually completed. This is to
handle the case where a guest disconnects when we're in the middle of streaming
worktree entries to them. When they reconnect, they need to report a scan_id
from before we started streaming the entries, because we have no record of when
the stream was interrupted.

Next failure:
SEED=5051 ITERATIONS=1 OPERATIONS=200 cargo test --release --package=collab random -- --nocapture
2023-01-03 18:26:57 -07:00
Nathan Sobo e527caa26d WIP 2023-01-03 13:30:14 -07:00
Nathan Sobo fdb51a78b9 Record failing seed 2023-01-02 21:12:39 -07:00
Nathan Sobo b3387b31ac Set transaction group interval to ZERO by default in tests
We were seeing non-deterministic behavior in randomized tests when
generating backtraces took enough time to cause transactions to group
in some cases, but not group in others.

Tests will need to explicitly opt into grouping if they want it by
setting the interval explicitly. We have tests in the text module that
currently test the history grouping explicitly, but I'm not sure
it's needed elsewhere.
2022-12-27 16:47:28 -07:00
Max Brunsfeld ad007a836e WIP - Panic immediately when detecting non-determinism via a change to the execution trace 2022-12-23 17:34:13 -08:00
Max BrunsfeldandAntonio Scandurra a7b871abcd Excluded deleted entries when initially sending worktrees to guests
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-22 11:18:10 -08:00
Antonio Scandurra 5f5b420221 WIP: failing test
SEED=882 RUST_LOG=collab::tests::randomized_integration_tests=info MAX_PEERS=2 ITERATIONS=1 OPERATIONS=49 cargo test --package=collab random -- --nocapture
2022-12-22 18:32:21 +01:00
Antonio Scandurra d4fd5df990 Restructure randomized test to be a bit clearer and test more stuff 2022-12-22 17:54:25 +01:00
Max BrunsfeldandNathan Sobo c07f90cb54 Assert that buffers' file state matches in randomized collab test
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 15:38:44 -08:00
Max BrunsfeldandNathan Sobo 7fdb0c1234 In randomized test, open remote projects via the room
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-12-21 14:13:43 -08:00
Max Brunsfeld 370c08ec41 💄 Avoid referring to all clients as guests in random integration test 2022-12-21 11:37:18 -08:00
Max Brunsfeld 3bd050e983 Move randomized integration test into its own file 2022-12-21 11:26:24 -08:00
Antonio Scandurra 55c5989abc Synchronize buffers when either the host or a guest reconnects 2022-12-21 14:20:56 +01:00
Antonio Scandurra b1a12cd671 Add failing test for buffer synchronization after disconnecting 2022-12-21 11:56:15 +01:00
Antonio Scandurra 224e642828 Verify removing worktrees while host is offline 2022-12-21 11:47:01 +01:00
Max Brunsfeld 6e377aa2d9 Refresh project collaborator connection id for rejoined projects 2022-12-20 18:03:33 -08:00
Max Brunsfeld 57960beb41 Delete stale projects after cleanup interval, via server foreign key cascade 2022-12-20 17:27:42 -08:00
Max Brunsfeld 4a47b56a72 💄 Avoid repeated sql condition in rejoin_room 2022-12-20 17:23:52 -08:00
Max Brunsfeld ea7214b0e4 💄 Reduce indentation in Database::rejoin_room 2022-12-20 17:16:56 -08:00
Max Brunsfeld c7c947dca2 Remove unnecessary UnshareProject message sent to clients leaving a project 2022-12-20 16:58:44 -08:00
Max Brunsfeld fb1f3b5c4d Clean up projects when leaving a room 2022-12-20 16:44:57 -08:00
Max Brunsfeld 8f2c51abec Merge branch 'main' into project-reconnection 2022-12-20 15:50:09 -08:00
Max BrunsfeldandJulia Risley 2dd709e002 Implement rejoining projects as guest when rejoining a room
Co-authored-by: Julia Risley <julia@zed.dev>
2022-12-20 15:02:26 -08:00
Max BrunsfeldandAntonio Scandurra 3470889fb2 Handle unshared projects when rejoining a room
Also, construct remote projects via the room, to guarantee
that the room can manage the projects' sharing lifecycle.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-20 11:10:46 -08:00
Antonio Scandurra e2c8a2cb63 Support adding worktrees to project while host is offline 2022-12-20 17:42:08 +01:00
Antonio Scandurra 458b07bc3a Make host reconnection test pass when mutating worktree while offline 2022-12-20 17:30:58 +01:00
Antonio Scandurra 97e3f2da09 Fix project reconnection test to ensure rooms actually reconnects 2022-12-20 14:51:46 +01:00
Antonio Scandurra 75346960db Sketch out project reconnection routine on the server 2022-12-20 12:03:43 +01:00
Max Brunsfeld 36d40f44ac WIP - Retain hosts' project state when they disconnect 2022-12-19 11:38:08 -08:00
Max Brunsfeld 99d806fde4 Add failing integration test for resharing projects on reconnect 2022-12-19 11:37:28 -08:00
Max Brunsfeld c557f17751 collab 0.4.2 2022-12-19 11:29:22 -08:00
Antonio Scandurra 70f1e81296 WIP 2022-12-19 20:05:00 +01:00
Julia 6fb3bad2e8 Merge pull request #1983 from zed-industries/multi-buffer-git-gutter
Multi buffer git gutter
2022-12-19 10:53:42 -05:00
Antonio Scandurra e183b2682c collab 0.4.1 2022-12-16 12:02:03 +01:00
Antonio Scandurra 1c7d888e94 Fix test ensuring room is left when disconnected from LiveKit 2022-12-16 10:52:32 +01:00
Max Brunsfeld e5718bced7 Identify LiveKit room participants by user id, not peer id
This way, their participant id can remain the same when they reconnect.
2022-12-15 17:19:32 -08:00
Antonio Scandurra 86c8818915 collab 0.4.0 2022-12-15 19:37:53 +01:00
Antonio Scandurra 15b96a0531 Minor stylistic change 2022-12-15 16:40:16 +01:00
Antonio Scandurra e65429a22b 💄 2022-12-15 16:34:59 +01:00
Antonio Scandurra 7c312a10d9 Merge branch 'main' into fix-reconnects-after-deploy 2022-12-15 15:32:05 +01:00
Antonio Scandurra 656a8b3217 collab 0.3.14 2022-12-15 11:31:51 +01:00
Antonio Scandurra 7ad68a05d7 Allow nulls in projects.host_connection_{id,server_id}
The server version on stable won't be able to fill values for those
columns when we deploy the migration to preview.

With this commit we're also dropping the unused `worktree_extensions`
and `project_activity_periods` tables. The last version of the server
on stable (0.2.6) doesn't contain any code that accesses those tables.
2022-12-15 11:30:51 +01:00
Antonio Scandurra 6d307e42c2 collab 0.3.13 2022-12-15 10:53:17 +01:00
Antonio Scandurra 62c95778b1 Avoid logging an error when user who hasn't joined any room disconnects 2022-12-15 10:45:03 +01:00
Antonio Scandurra b4a4b40623 Use "id" nomenclature more consistently 2022-12-15 10:15:59 +01:00
Antonio Scandurra 21a1f1881d Re-add server_id indices for room_participants/project_collaborators 2022-12-15 09:58:25 +01:00