Paul Wells
1ba2cadccd
agent: release JobTerminate handler when job ends before registration ( #4908 )
...
* agent: release JobTerminate handler when job ends before registration
JobRequest registered the job's JobTerminate handler after AssignJob
returned, so an ended UpdateJobStatus or worker disconnect handled in
between deregistered nothing and the handler leaked. AssignJob also sent
the assignment before recording the job as running, so an immediate
ended update was dropped.
Record the job before sending the assignment, and after registering the
handler recheck under h.mu that the job is still running and its worker
still registered, deregistering otherwise.
Fixes #4901
* replace utils.CloneProto with proto.CloneOf
* agent: wait on worker readiness and poll for released handlers in test
2026-09-25 00:58:22 -07:00
cnderrauber
1f1eeb6832
Fallback to servicestore if rpc is unavailable ( #4391 )
...
* Fallback to servicestore if rpc is unavailable
compatibility mode for #4387
* conf
2026-03-25 11:09:52 +08:00
Raja Subramanian
b8ddd0f98c
Taking interface{} -> any modernize bits ( #4204 )
2025-12-28 05:22:12 +05:30
Raja Subramanian
2510b9462e
Taking a bunch of go modernize suggestions. ( #4194 )
...
This is not all of it as it is not possible (or at least I do not know
of a way) to get all suggestions for a repo/project. Did this via loop
searching mainly and taking the modernize suggestions.
2025-12-25 16:55:58 +05:30
Paul Wells
0a82438687
add explicit room exists servicestore op ( #4175 )
2025-12-17 22:14:06 -08:00
Soungmin Son (Eddy) and Paul Wells
97fcb82a77
Fix: Return NotFoundErr instead of Unavailable when the participant does not exist in UpdateParticipant. ( #3543 )
...
* Check if Participant exists when update metadata
* Change Test cases
* type smuggle oss participant check into roomstore
* tidy
---------
Co-authored-by: Paul Wells <paulwe@gmail.com >
2025-03-20 23:56:34 -07:00
Denys Smirnov
60a09cb4be
Implement SIP iterators. ( #3332 )
2025-02-20 13:13:21 +02:00
Raja Subramanian
524441446f
Room creation time with ms resolution ( #3362 )
2025-01-23 09:42:30 +05:30
Paul Wells
4deaac2f3f
replace proto.Clone calls ( #3024 )
...
* replace proto.Clone calls
* deps
* tests
2024-09-18 22:47:33 -07:00
Benjamin Pracht
a877ba2352
Partial support for agent dispatch management ( #2872 )
...
- Store agent dispaches independently of room agents on rtc.Room
- Serialize agent dispatches in rtc.Room
- Support for agent dispatch and job serialization in redis
The agent Job object references denormalized Room and ParticipantInfo object. When storing Jobs, this sets the Room to nil, and only stores the Participant identity field. When read back, these fields need to be set to their current value.
2024-07-18 13:36:43 -07:00
Denys Smirnov
74c7b93170
Support new SIP Trunk API. Improve Redis tests. ( #2799 )
2024-06-17 21:49:51 +03:00
Paul Wells
f1886ece42
update protocol ( #2760 )
...
* update protocol
* deps
2024-06-05 19:46:34 -07:00
Benjamin Pracht
6afa63ded3
Use the ingress state updated_at field to ensure that out of order RPC do not overwrite state ( #2657 )
2024-04-16 18:10:14 +02:00
Denys Smirnov
89c7cec2ad
SIP: New protocol for creating participants. ( #2404 )
2024-01-24 20:01:22 +02:00
Sean DuBois
702e562f9f
Add SIP Support ( #2240 )
2023-11-14 14:24:54 -05:00
Paul Wells
325e5ca753
add psrpc room service ( #2171 )
...
* add psrpc room service
* update deps
* disable by default
* feedback
* config
* test
2023-10-22 22:49:38 -07:00
cnderrauber
1200a960a2
Use generic type cast for IDs ( #2095 )
2023-09-20 17:09:24 +08:00
Benjamin Pracht
ce418dc6b3
Do not generate a stream key for URL pull ingress ( #1993 )
2023-08-24 12:50:05 -07:00
David Zhao
981fb7cac7
Adding license notices ( #1913 )
...
* Adding license notices
* remove from config
2023-07-27 16:43:19 -07:00
David Zhao
cbec68ae44
Do not use cancellable context for Redis operations ( #1859 )
2023-07-08 12:06:31 -07:00
David Colburn
0a3c22993e
Remove deprecated egress client ( #1701 )
...
* remove deprecated egress client
* don't copy mutex
2023-05-09 16:54:32 -07:00
Benjamin Pracht
843328125e
Do not use redis transactions for the egress APIs. Make sure all ingress related keys are on the same cluster slot. #1606
...
This will break existing ingress in redis.
2023-04-13 08:09:00 -10:00
David Colburn
191a9e8014
update core to 0.0.5 ( #1540 )
...
* update core
* sort imports
* fix typos
* redundant types
2023-03-22 16:53:23 -07:00
David Colburn
b23a0e7f39
add active filter to ListEgress ( #1517 )
...
* add active filter to ListEgress
* update test
* missed a filter
2023-03-14 13:07:00 -07:00
David Zhao
ea12e1477f
Update to go-redis v9. Fixed Redis cluster support ( #1415 )
...
* Update to go-redis v9. Fixed Redis cluster support
2023-02-12 22:22:21 -08:00
Benjamin Pracht
7778cdf2cd
Do not use the egress version stored in redis to decide whether to enable PsRPC. Use a conf entry instead ( #1262 )
2022-12-30 09:32:55 +13:00
David Colburn
976d4ea9db
Update psrpc, egressStore interface ( #1256 )
...
* Update psrpc, egressStore interface
* psrpc v0.2.0
2022-12-24 00:49:31 -08:00
David Colburn
6719a3c714
Updated egress rpc ( #1252 )
...
* updated egress rpc
* check if egress exists on stop
* fix static check
* remove old migration code
* rename
* regenerate, update test
* latest staticcheck
* update to psrpc 0.1.0
* fix tests
* dual write rpcs on running egress
* remove unused field
* fix race, change service for egress impl
* return nil if bus is nil
* id -> ids
* add affinityFunc to StartEgress
2022-12-22 21:03:27 -08:00
MaxnSter and David Zhao
7e89ad3fbd
RedisStore: make UnlockRoom atomic ( #1044 )
...
Co-authored-by: David Zhao <dz@livekit.io >
2022-11-07 23:04:46 -08:00
Benjamin Pracht
c735668f67
Use the redis.UniversalClient interface instead of *redis.Client when interacting with go-redis ( #1149 )
...
* Use the redis.UniversalClient interface instead of *redis.Client when interacting with go-redis
* Update protocol to v1.2.1
2022-11-07 17:27:28 -08:00
Raja Subramanian
4344af6fd3
Some misc changes ( #1107 )
...
- ticker.Stop always
- clean up timer func (if they are added) on participant close
- sequencer test enhancement to add a real packet after a pdding packet
2022-10-20 11:11:45 +05:30
Benjamin Pracht
8cf0872ec1
Adopt updated ingress RPC API ( #1068 )
2022-10-03 11:31:55 -07:00
Benjamin Pracht
932af81f34
Update strored version of an active ingress if no ingress server responds ( #1031 )
...
This allows deleting and updating an ingress even if the ingress server that was handling it died. It does however mean that if the ingress responds again later, its state will be inconsistent. To somewhat make this less likely, also keep trying contacting the ingress for 1 min in the background.
Also fixing a race where an active deleted Ingress would get recreated on delete because of the update triggered by the ingress session shutdown
2022-09-26 11:16:27 -07:00
David Colburn
b97d59b8db
consolidate room internal ( #1030 )
...
* consolidate room internal
* create room internal map
* pipelined room read
* check error
* fix pipelined reads
* clean up after test
2022-09-22 15:59:27 -07:00
David Colburn
803046b882
Auto egress ( #1011 )
...
* auto egress
* fix room service test
* reuse StartTrackEgress
* add timestamp
* update prefixed filename explicitly
* update protocol
* clean up telemetry
* fix telemetry tests
* separate room internal storage
* auto participant egress
* remove custom template url
* fix internal key
* use map for stats workers
* remove sync.Map
* remove participant composite
2022-09-21 12:04:19 -07:00
Benjamin Pracht
aaeba74402
Import ErrIngressOutOfDate from protocol ( #987 )
2022-09-06 16:05:17 -07:00
Benjamin Pracht
67d3f21122
Only update an IngressInfo if the StartedAt field is newer or equal to the one currently in storage ( #897 )
...
This is meant to ensure that we will not overwrite the state of an ingress that already reconnected to a different server on failure or timeout
2022-08-09 19:07:56 -07:00
Benjamin Pracht
0cffbe69e9
Fix ingress stream key lookup and avoid nil dereference when room in auth claims doesn't match ( #869 )
2022-08-04 16:22:55 -07:00
David Colburn
7aa5888338
Keep egress info for 24h ( #856 )
...
* Keep egress info for 24h
* updates
* better version comparison
* fix test
* duplicated if
2022-07-28 20:27:59 -05:00
Benjamin Pracht
188f9c675e
Add support for Ingress in store interface ( #849 )
2022-07-26 16:55:03 -07:00
Raja Subramanian
e624604453
Revert "ListRooms using sid ( #842 )" ( #845 )
...
This reverts commit f2e1e67e58 .
2022-07-21 14:49:41 +05:30
Raja Subramanian
f2e1e67e58
ListRooms using sid ( #842 )
...
* ListRooms using `sid`
* correct field name
* Remove contains and latest protocol
2022-07-21 11:05:33 +05:30
David Colburn
0b8a180554
Code inspection ( #581 )
...
* Code inspection
* fix [4]int64 conversiong
2022-03-30 13:49:53 -07:00
Raja Subramanian
0170cc1cb6
Staticcheck ( #464 )
...
Using `go get -u honnef.co/go/tools/cmd/staticcheck`
Uneaarthed a couple of real bugs
2022-02-25 12:04:08 +05:30
David Colburn
20f21cce2b
Egress ( #455 )
...
* egress updates
* pass egressInfo to delete
* update typefakes
* export StartEgress
* update protocol
* new rpc, rename stores
* add json tag
* update tests
* update protocol
2022-02-24 14:57:14 -08:00