Antonio Scandurra
1aec691b35
Sketch out project reconnection routine on the server
2022-12-20 12:03:43 +01:00
Max Brunsfeld
ad37034960
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
5a334622ea
💄
2022-12-15 16:34:59 +01:00
Antonio Scandurra
86e5ae1f2e
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
067a19c971
Avoid logging an error when user who hasn't joined any room disconnects
2022-12-15 10:45:03 +01:00
Antonio Scandurra
688f179256
Use "id" nomenclature more consistently
2022-12-15 10:15:59 +01:00
Max Brunsfeld
6c58a4f885
Fix stale server queries, use foreign keys from connectionsn to servers
2022-12-14 17:34:24 -08:00
Antonio Scandurra
363e3cae4b
WIP
2022-12-14 19:25:07 +01:00
Antonio Scandurra
930be6706f
WIP
2022-12-14 18:02:39 +01:00
Antonio Scandurra
05e99eb67e
Introduce an epoch to ConnectionId
and PeerId
2022-12-14 15:55:56 +01:00
Antonio Scandurra
674fddac87
Instrument rpc::Server::start
and reduce cleanup timeout again
2022-12-14 11:42:12 +01:00
Antonio Scandurra
9530976f61
Try using a longer timeout for cleaning up stale rooms
2022-12-14 11:24:36 +01:00
Antonio Scandurra
897506c797
Define readiness probe to know when the new server can accept traffic
2022-12-14 08:54:46 +01:00
Antonio Scandurra
dde6cf596e
Don't wait for stale project deletion before listening for connections
2022-12-14 08:42:34 +01:00
Max Brunsfeld
45bfcfc3b8
Fix excessive delay before clearing stale room data
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-13 11:17:20 -08:00
Max Brunsfeld
6ad326ac58
Wait longer before deleting outdated rooms from the database
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-12-13 10:14:43 -08:00
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