diff --git a/go.mod b/go.mod index cdbbd798..b67f077a 100644 --- a/go.mod +++ b/go.mod @@ -5,9 +5,9 @@ go 1.20 require ( github.com/0xAX/notificator v0.0.0-20220220101646-ee9b8921e557 github.com/Masterminds/semver/v3 v3.2.0 - github.com/ProtonMail/gluon v0.17.1-0.20230717091501-65f5f3538bc1 + github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a - github.com/ProtonMail/go-proton-api v0.4.1-0.20230704060229-a77a437ec052 + github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe github.com/ProtonMail/gopenpgp/v2 v2.7.1-proton github.com/PuerkitoBio/goquery v1.8.1 github.com/abiosoft/ishell v2.0.0+incompatible diff --git a/go.sum b/go.sum index 3db32693..ecb4c2cf 100644 --- a/go.sum +++ b/go.sum @@ -23,8 +23,8 @@ github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf h1:yc9daCCYUefEs github.com/ProtonMail/bcrypt v0.0.0-20211005172633-e235017c1baf/go.mod h1:o0ESU9p83twszAU8LBeJKFAAMX14tISa0yk4Oo5TOqo= github.com/ProtonMail/docker-credential-helpers v1.1.0 h1:+kvUIpwWcbtP3WFv5sSvkFn/XLzSqPOB5AAthuk9xPk= github.com/ProtonMail/docker-credential-helpers v1.1.0/go.mod h1:mK0aBveCxhnQ756AmaTfXMZDeULvheYVhF/MWMErN5g= -github.com/ProtonMail/gluon v0.17.1-0.20230717091501-65f5f3538bc1 h1:iFuiEROpSmYhx8UFV/mfI14Pc1sX5J3DnfOzzl6HWbs= -github.com/ProtonMail/gluon v0.17.1-0.20230717091501-65f5f3538bc1/go.mod h1:Og5/Dz1MiGpCJn51XujZwxiLG7WzvvjE5PRpZBQmAHo= +github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e h1:lCsqUUACrcMC83lg5rTo9Y0PnPItE61JSfvMyIcANwk= +github.com/ProtonMail/gluon v0.17.1-0.20230724134000-308be39be96e/go.mod h1:Og5/Dz1MiGpCJn51XujZwxiLG7WzvvjE5PRpZBQmAHo= github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a h1:D+aZah+k14Gn6kmL7eKxoo/4Dr/lK3ChBcwce2+SQP4= github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a/go.mod h1:oTGdE7/DlWIr23G0IKW3OXK9wZ5Hw1GGiaJFccTvZi4= github.com/ProtonMail/go-crypto v0.0.0-20230321155629-9a39f2531310/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE= @@ -35,8 +35,8 @@ github.com/ProtonMail/go-message v0.13.1-0.20230526094639-b62c999c85b7 h1:+j+Kd/ github.com/ProtonMail/go-message v0.13.1-0.20230526094639-b62c999c85b7/go.mod h1:NBAn21zgCJ/52WLDyed18YvYFm5tEoeDauubFqLokM4= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k= github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw= -github.com/ProtonMail/go-proton-api v0.4.1-0.20230704060229-a77a437ec052 h1:uIq0RX4gU9PSZ9x5b2LmJUXNOuBXRRVSOkM1RGnSy68= -github.com/ProtonMail/go-proton-api v0.4.1-0.20230704060229-a77a437ec052/go.mod h1:+aTJoYu8bqzGECXL2DOdiZTZ64bGn3w0NC8VcFpJrFM= +github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe h1:7gAKAb9qg0ejDc8AAD8+hPozk8+DX2W9zfoZ7Ucmqd0= +github.com/ProtonMail/go-proton-api v0.4.1-0.20230724135423-b7d785347afe/go.mod h1:nS8hMGjJLgC0Iej0JMYbsI388LesEkM1Hj/jCCxQeaQ= github.com/ProtonMail/go-srp v0.0.7 h1:Sos3Qk+th4tQR64vsxGIxYpN3rdnG9Wf9K4ZloC1JrI= github.com/ProtonMail/go-srp v0.0.7/go.mod h1:giCp+7qRnMIcCvI6V6U3S1lDDXDQYx2ewJ6F/9wdlJk= github.com/ProtonMail/gopenpgp/v2 v2.7.1-proton h1:YS6M20yvjCJPR1r4ADW5TPn6rahs4iAyZaACei86bEc= diff --git a/internal/user/events.go b/internal/user/events.go index ee4ed885..08f2e493 100644 --- a/internal/user/events.go +++ b/internal/user/events.go @@ -217,7 +217,12 @@ func (user *User) handleCreateAddressEvent(ctx context.Context, event proton.Add user.updateCh[event.Address.ID] = user.updateCh[primAddr.ID] case vault.SplitMode: - user.updateCh[event.Address.ID] = async.NewQueuedChannel[imap.Update](0, 0, user.panicHandler) + user.updateCh[event.Address.ID] = async.NewQueuedChannel[imap.Update]( + 0, + 0, + user.panicHandler, + fmt.Sprintf("user-update-split-%v", event.Address.ID), + ) } user.eventCh.Enqueue(events.UserAddressCreated{ @@ -276,7 +281,12 @@ func (user *User) handleUpdateAddressEvent(_ context.Context, event proton.Addre user.updateCh[event.Address.ID] = user.updateCh[primAddr.ID] case vault.SplitMode: - user.updateCh[event.Address.ID] = async.NewQueuedChannel[imap.Update](0, 0, user.panicHandler) + user.updateCh[event.Address.ID] = async.NewQueuedChannel[imap.Update]( + 0, + 0, + user.panicHandler, + fmt.Sprintf("user-update-split-%v", event.Address.ID), + ) } user.eventCh.Enqueue(events.UserAddressEnabled{ diff --git a/internal/user/user.go b/internal/user/user.go index 88957cf5..f1691a61 100644 --- a/internal/user/user.go +++ b/internal/user/user.go @@ -155,7 +155,7 @@ func New( reporter: reporter, sendHash: sendrecorder.NewSendRecorder(sendrecorder.SendEntryExpiry), - eventCh: async.NewQueuedChannel[events.Event](0, 0, crashHandler), + eventCh: async.NewQueuedChannel[events.Event](0, 0, crashHandler, fmt.Sprintf("bridge-user-%v", apiUser.ID)), eventLock: safe.NewRWMutex(), apiUser: apiUser, @@ -687,7 +687,12 @@ func (user *User) initUpdateCh(mode vault.AddressMode) { switch mode { case vault.CombinedMode: - primaryUpdateCh := async.NewQueuedChannel[imap.Update](0, 0, user.panicHandler) + primaryUpdateCh := async.NewQueuedChannel[imap.Update]( + 0, + 0, + user.panicHandler, + "user-update-combined", + ) for addrID := range user.apiAddrs { user.updateCh[addrID] = primaryUpdateCh @@ -695,7 +700,12 @@ func (user *User) initUpdateCh(mode vault.AddressMode) { case vault.SplitMode: for addrID := range user.apiAddrs { - user.updateCh[addrID] = async.NewQueuedChannel[imap.Update](0, 0, user.panicHandler) + user.updateCh[addrID] = async.NewQueuedChannel[imap.Update]( + 0, + 0, + user.panicHandler, + fmt.Sprintf("user-update-split-%v", addrID), + ) } } } diff --git a/tests/collector_test.go b/tests/collector_test.go index f11e149a..a8ebef8f 100644 --- a/tests/collector_test.go +++ b/tests/collector_test.go @@ -44,7 +44,7 @@ func (c *eventCollector) collectFrom(eventCh <-chan events.Event) <-chan events. c.lock.Lock() defer c.lock.Unlock() - fwdCh := async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}) + fwdCh := async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}, "event-collector") c.fwdCh = append(c.fwdCh, fwdCh) @@ -87,7 +87,7 @@ func (c *eventCollector) push(event events.Event) { defer c.lock.Unlock() if _, ok := c.events[reflect.TypeOf(event)]; !ok { - c.events[reflect.TypeOf(event)] = async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}) + c.events[reflect.TypeOf(event)] = async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}, "event-pusher") } c.events[reflect.TypeOf(event)].Enqueue(event) @@ -102,7 +102,7 @@ func (c *eventCollector) getEventCh(ofType events.Event) <-chan events.Event { defer c.lock.Unlock() if _, ok := c.events[reflect.TypeOf(ofType)]; !ok { - c.events[reflect.TypeOf(ofType)] = async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}) + c.events[reflect.TypeOf(ofType)] = async.NewQueuedChannel[events.Event](0, 0, async.NoopPanicHandler{}, "event-pusher") } return c.events[reflect.TypeOf(ofType)].GetChannel() diff --git a/tests/ctx_bridge_test.go b/tests/ctx_bridge_test.go index b153ac39..0218bc99 100644 --- a/tests/ctx_bridge_test.go +++ b/tests/ctx_bridge_test.go @@ -305,7 +305,7 @@ func (t *testCtx) initFrontendClient() error { return fmt.Errorf("could not start event stream: %w", err) } - eventCh := async.NewQueuedChannel[*frontend.StreamEvent](0, 0, async.NoopPanicHandler{}) + eventCh := async.NewQueuedChannel[*frontend.StreamEvent](0, 0, async.NoopPanicHandler{}, "test-frontend-client") go func() { defer eventCh.CloseAndDiscardQueued()