Antonio Scandurra
4dc838fbb7
Reset connection pool when tearing down the server in tests
2022-12-13 13:51:25 +01:00
Antonio Scandurra
d4c8fa3090
Use a synchronous mutex for ConnectionPool
2022-12-13 13:50:51 +01:00
Antonio Scandurra
0220d7ba5d
Include room_id
in CallCanceled
message
...
This ensures we don't accidentally cancel old calls.
2022-12-13 11:43:09 +01:00
Antonio Scandurra
e2b132ef23
💄
2022-12-13 11:37:39 +01:00
Antonio Scandurra
7e8d9d52d3
Delete stray debug statement
2022-12-13 11:36:40 +01:00
Antonio Scandurra
6a6a032f1f
Delete stale rooms/participants after RECONNECT_TIMEOUT
2022-12-13 11:32:37 +01:00
Antonio Scandurra
beea9b68ff
Allow re-joining room after server restarts
2022-12-12 16:03:21 +01:00
Antonio Scandurra
456396ca6e
Rename connection_lost
to answering_connection_lost
2022-12-12 11:43:08 +01:00
Antonio Scandurra
895c365485
Introduce random reconnections in the randomized test
2022-12-12 11:43:08 +01:00
Antonio Scandurra
aca3f02590
Re-join room when client temporarily loses connection
2022-12-12 11:43:08 +01:00
Antonio Scandurra
d74fb97158
Remove Executor
trait from collab
and use an enum instead
...
This will let us save off the executor and avoid using generics.
2022-12-12 11:43:08 +01:00
Antonio Scandurra
fc7b01b74e
Fix busy status when accepting a contact request
...
Previously, we would send an contact update when accepting a request
using the same `busy` status for both the requester and the responder.
This was obviously wrong and caused the requester to see their own
busy status as the newly-added responder contact's status.
2022-12-06 10:19:34 +01:00
Antonio Scandurra
7bbd97cfb9
Send diagnostic summaries synchronously
2022-12-05 19:07:06 +01:00
Antonio Scandurra
5443d9cffe
Return project collaborators and connection IDs in a RoomGuard
2022-12-05 18:37:01 +01:00
Antonio Scandurra
d96f524fb6
WIP: Manually rollback transactions to avoid spurious savepoint failure
...
TODO:
- Avoid unwrapping transaction after f(tx)
- Remove duplication between `transaction` and `room_transaction`
- Introduce random delay before and after committing a transaction
- Run lots of randomized tests
- Investigate diverging diagnostic summaries
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-12-02 20:36:50 +01:00
Antonio Scandurra
48b6ee313f
Use i32 to represent Postgres INTEGER
types in Rust
2022-12-02 13:58:54 +01:00
Antonio Scandurra
dec5f37e4e
Finish porting remaining db methods to sea-orm
2022-12-02 13:58:23 +01:00
Antonio Scandurra
29a4baf346
Replace i32 with u32 for database columns
...
We never expect to return signed integers and so we shouldn't use
a signed type. I think this was a limitation of sqlx.
2022-12-01 17:47:51 +01:00
Antonio Scandurra
d2385bd6a0
Start using the new sea-orm backed database
2022-12-01 14:41:59 +01:00
Antonio Scandurra
cd0b663f62
Introduce per-room lock acquired before committing a transaction
2022-11-28 17:00:47 +01:00
Antonio Scandurra
c3d556d9bd
Don't take an Arc<Server>
in message handlers
2022-11-18 11:45:42 +01:00
Antonio Scandurra
44bb2ce024
Rename Store
to ConnectionPool
2022-11-17 19:03:59 +01:00
Antonio Scandurra
6c83be3f89
Remove obsolete code from Store
2022-11-17 18:46:39 +01:00
Antonio Scandurra
0a4517f97e
WIP: Introduce a db
field to Session
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-17 17:30:26 +01:00
Antonio Scandurra
c34a5f3177
Introduce a new Session
struct to server message handlers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-17 17:11:06 +01:00
Antonio Scandurra
e7e45be6e1
Revert "Wait for previous UpdateFollowers
message ack before sending new ones"
...
This reverts commit fe93263ad4
.
2022-11-17 16:57:32 +01:00
Antonio Scandurra
7dae21cb36
🎨
2022-11-17 15:35:18 +01:00
Antonio Scandurra
fe93263ad4
Wait for previous UpdateFollowers
message ack before sending new ones
2022-11-17 14:12:00 +01:00
Antonio Scandurra
3b34d858b5
Remove unwrap from Server::share_project
2022-11-17 13:33:26 +01:00
Nathan Sobo
94fe93c6ee
Move unshare_project to db module
2022-11-16 18:28:45 -07:00
Nathan Sobo
e5f05c9f3b
Move leave_project from Store to db module
2022-11-16 17:45:47 -07:00
Antonio Scandurra
faf265328e
Wait for acknowledgment before sending the next diagnostic summary
2022-11-16 16:03:01 +01:00
Antonio Scandurra
9bc57c0c61
Move Store::start_language_server
to Db
2022-11-16 15:48:26 +01:00
Antonio Scandurra
95369f92eb
Move Store::update_diagnostic_summary
to Db
2022-11-16 15:41:33 +01:00
Antonio Scandurra
c151c87e12
Correctly leave projects when leaving room
2022-11-16 10:36:48 +01:00
Antonio Scandurra
ad67f5e4de
Always use the database to retrieve collaborators for a project
2022-11-15 17:49:37 +01:00
Antonio Scandurra
e9eadcaa6a
Move Store::update_worktree
to Db::update_worktree
2022-11-15 17:18:28 +01:00
Antonio Scandurra
4b1dcf2d55
Always use strings to represent paths over the wire
...
Previously, the protocol used a mix of strings and bytes without any consistency.
When we go to multiple platforms, we won't be able to mix encodings of paths anyway.
We don't know this is the right approach, but it at least makes things consistent
and easy to read in the database, on the wire, etc. Really, we should be using entry
ids etc to refer to entries on the wire anyway, but there's a chance this is the
wrong decision.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:46:17 +01:00
Antonio Scandurra
974ef967a3
Move Store::join_project
to Db::join_project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-15 16:37:51 +01:00
Antonio Scandurra
be523617c9
Start reworking join_project
to use the database
2022-11-15 11:44:26 +01:00
Antonio Scandurra
6cbf197226
Determine whether a contact is busy via the database
2022-11-15 10:41:21 +01:00
Antonio Scandurra
3e8fcb04f7
Finish implementing Db::update_project
2022-11-15 09:01:51 +01:00
Antonio Scandurra
b9af2ae66e
Switch to serializable isolation
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-11-14 19:39:12 +01:00
Antonio Scandurra
40073f6100
Wait for acknowledgment before sending the next project update
2022-11-14 15:32:49 +01:00
Antonio Scandurra
65c5adff05
Automatically decline call when user drops their last connection
2022-11-14 11:32:26 +01:00
Antonio Scandurra
59e8600e4c
Implement Db::cancel_call
2022-11-14 11:12:23 +01:00
Antonio Scandurra
0310e27347
Fix query errors in Db::share_project
2022-11-14 10:53:11 +01:00
Antonio Scandurra
9902211af1
Leave room when connection is dropped
2022-11-14 10:13:36 +01:00
Antonio Scandurra
2145965749
WIP
2022-11-11 19:36:20 +01:00
Antonio Scandurra
1135aeecb8
WIP: Move Store::leave_room
to Db::leave_room
2022-11-11 16:59:54 +01:00