Skip to content

Commit

Permalink
dont promote on new msg anymore (#21184)
Browse files Browse the repository at this point in the history
  • Loading branch information
mmaxim committed Nov 23, 2019
1 parent 4999718 commit bc20ed2
Show file tree
Hide file tree
Showing 40 changed files with 326 additions and 605 deletions.
2 changes: 1 addition & 1 deletion go/chat/commands/conv.go
Expand Up @@ -16,7 +16,7 @@ func getConvByID(ctx context.Context, g *globals.Context, uid gregor1.UID, convI
ib, err := g.InboxSource.ReadUnverified(ctx, uid, types.InboxSourceDataSourceAll,
&chat1.GetInboxQuery{
ConvID: &convID,
}, nil)
})
if err != nil {
return res, err
}
Expand Down
2 changes: 1 addition & 1 deletion go/chat/commands/join.go
Expand Up @@ -34,7 +34,7 @@ func (h *Join) Execute(ctx context.Context, uid gregor1.UID, convID chat1.Conver
types.InboxSourceDataSourceAll, nil,
&chat1.GetInboxLocalQuery{
ConvIDs: []chat1.ConversationID{convID},
}, nil)
})
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go/chat/commands/mute.go
Expand Up @@ -30,7 +30,7 @@ func (h *Mute) Execute(ctx context.Context, uid gregor1.UID, convID chat1.Conver
types.InboxSourceDataSourceAll, nil,
&chat1.GetInboxLocalQuery{
ConvIDs: []chat1.ConversationID{convID},
}, nil)
})
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion go/chat/flipmanager_test.go
Expand Up @@ -207,7 +207,7 @@ func TestFlipManagerStartFlip(t *testing.T) {
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil,
&chat1.GetInboxLocalQuery{
TopicType: &ttype,
}, nil)
})
require.NoError(t, err)
numConvs := 0
for _, conv := range ibox.Convs {
Expand Down
13 changes: 6 additions & 7 deletions go/chat/helper.go
Expand Up @@ -208,8 +208,7 @@ func (h *Helper) FindConversationsByID(ctx context.Context, convIDs []chat1.Conv
ConvIDs: convIDs,
}
inbox, _, err := h.G().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, query,
nil)
types.InboxSourceDataSourceAll, nil, query)
if err != nil {
return nil, err
}
Expand All @@ -234,7 +233,7 @@ func (h *Helper) GetChannelTopicName(ctx context.Context, teamID keybase1.TeamID
ConvIDs: []chat1.ConversationID{convID},
}
inbox, _, err := h.G().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, query, nil)
types.InboxSourceDataSourceAll, nil, query)
if err != nil {
return topicName, err
}
Expand Down Expand Up @@ -558,7 +557,7 @@ func FindConversations(ctx context.Context, g *globals.Context, debugger utils.D
}

inbox, _, err := g.InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking, dataSource, nil,
query, nil)
query)
if err != nil {
acceptableErr := false
// if we fail to load the team for some kind of rekey reason, treat as a complete miss
Expand Down Expand Up @@ -737,7 +736,7 @@ func postJoinLeave(ctx context.Context, g *globals.Context, ri func() chat1.Remo
ConvIDs: []chat1.ConversationID{convID},
}
ib, _, err := g.InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, &query, nil)
types.InboxSourceDataSourceAll, nil, &query)
if err != nil {
return fmt.Errorf("inbox read error: %s", err)
}
Expand Down Expand Up @@ -978,7 +977,7 @@ func (n *newConversationHelper) findExisting(ctx context.Context, tlfID chat1.TL
TlfVisibility: &n.vis,
TopicName: &topicName,
TopicType: &n.topicType,
}, nil)
})
if err != nil {
return res, err
}
Expand Down Expand Up @@ -1184,7 +1183,7 @@ func (n *newConversationHelper) create(ctx context.Context) (res chat1.Conversat
types.InboxSourceDataSourceRemoteOnly, nil,
&chat1.GetInboxLocalQuery{
ConvIDs: []chat1.ConversationID{convID},
}, nil)
})
if err != nil {
return res, err
}
Expand Down
8 changes: 4 additions & 4 deletions go/chat/helper_test.go
Expand Up @@ -58,7 +58,7 @@ func TestRecentConversationParticipants(t *testing.T) {

require.NoError(t, storage.NewInbox(tc.Context()).Clear(ctx, uid))
_, _, err := tc.Context().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, nil, nil)
types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)

res, err := RecentConversationParticipants(ctx, tc.Context(), uid)
Expand Down Expand Up @@ -88,13 +88,13 @@ func TestSendTextByName(t *testing.T) {
require.NoError(t, helper.SendTextByName(ctx, name, nil,
mt, keybase1.TLFIdentifyBehavior_CHAT_CLI, "HI"))
inbox, _, err := tc.Context().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, nil, nil)
types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)
require.Equal(t, 1, len(inbox.Convs))
require.NoError(t, helper.SendTextByName(ctx, name, nil,
mt, keybase1.TLFIdentifyBehavior_CHAT_CLI, "HI"))
inbox, _, err = tc.Context().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, nil, nil)
types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)
require.Equal(t, 1, len(inbox.Convs))
tv, err := tc.Context().ConvSource.Pull(ctx, inbox.Convs[0].GetConvID(), uid,
Expand All @@ -111,7 +111,7 @@ func TestSendTextByName(t *testing.T) {
mt, keybase1.TLFIdentifyBehavior_CHAT_CLI, "HI")
require.NoError(t, err)
inbox, _, err = tc.Context().InboxSource.Read(ctx, uid, types.ConversationLocalizerBlocking,
types.InboxSourceDataSourceAll, nil, nil, nil)
types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)
switch mt {
case chat1.ConversationMembersType_TEAM:
Expand Down
43 changes: 18 additions & 25 deletions go/chat/inboxsource.go
Expand Up @@ -151,7 +151,7 @@ func (b *baseInboxSource) GetInboxQueryLocalToRemote(ctx context.Context,
func (b *baseInboxSource) IsMember(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (bool, error) {
ib, err := b.sub.ReadUnverified(ctx, uid, types.InboxSourceDataSourceAll, &chat1.GetInboxQuery{
ConvID: &convID,
}, nil)
})
if err != nil {
return false, err
}
Expand Down Expand Up @@ -188,7 +188,7 @@ func (b *baseInboxSource) notifyServerAboutReportedConv(mctx libkb.MetaContext,
ib, _, err := b.sub.Read(ctx, uid, types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll,
nil, &chat1.GetInboxLocalQuery{
ConvIDs: []chat1.ConversationID{convID},
}, nil)
})
if err != nil {
b.Debug(ctx, "notifyServerAboutReportedConv: failed to fetch conversation: %s", err)
} else {
Expand Down Expand Up @@ -373,13 +373,13 @@ func (s *RemoteInboxSource) Clear(ctx context.Context, uid gregor1.UID) error {

func (s *RemoteInboxSource) Read(ctx context.Context, uid gregor1.UID,
localizerTyp types.ConversationLocalizerTyp, dataSource types.InboxSourceDataSourceTyp, maxLocalize *int,
query *chat1.GetInboxLocalQuery, p *chat1.Pagination) (types.Inbox, chan types.AsyncInboxResult, error) {
query *chat1.GetInboxLocalQuery) (types.Inbox, chan types.AsyncInboxResult, error) {

rquery, tlfInfo, err := s.GetInboxQueryLocalToRemote(ctx, query)
if err != nil {
return types.Inbox{}, nil, err
}
inbox, err := s.ReadUnverified(ctx, uid, dataSource, rquery, p)
inbox, err := s.ReadUnverified(ctx, uid, dataSource, rquery)
if err != nil {
return types.Inbox{}, nil, err
}
Expand All @@ -402,26 +402,23 @@ func (s *RemoteInboxSource) Read(ctx context.Context, uid gregor1.UID,
Version: inbox.Version,
Convs: res,
ConvsUnverified: inbox.ConvsUnverified,
Pagination: inbox.Pagination,
}, localizeCb, nil
}

func (s *RemoteInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
dataSource types.InboxSourceDataSourceTyp, rquery *chat1.GetInboxQuery, p *chat1.Pagination) (types.Inbox, error) {
dataSource types.InboxSourceDataSourceTyp, rquery *chat1.GetInboxQuery) (types.Inbox, error) {
if s.IsOffline(ctx) {
return types.Inbox{}, OfflineError{}
}
ib, err := s.getChatInterface().GetInboxRemote(ctx, chat1.GetInboxRemoteArg{
Query: rquery,
Pagination: p,
Query: rquery,
})
if err != nil {
return types.Inbox{}, err
}
return types.Inbox{
Version: ib.Inbox.Full().Vers,
ConvsUnverified: utils.RemoteConvs(ib.Inbox.Full().Conversations),
Pagination: ib.Inbox.Full().Pagination,
}, nil
}

Expand Down Expand Up @@ -746,9 +743,9 @@ func (s *HybridInboxSource) ApplyLocalChatState(ctx context.Context, infos []key
convIDs = append(convIDs, chat1.ConversationID(info.ConvID.Bytes()))
}
}
_, convs, _, err := s.createInbox().Read(ctx, s.uid, &chat1.GetInboxQuery{
_, convs, err := s.createInbox().Read(ctx, s.uid, &chat1.GetInboxQuery{
ConvIDs: convIDs,
}, nil)
})
if err != nil {
s.Debug(ctx, "ApplyLocalChatState: failed to get convs: %v", err)
}
Expand Down Expand Up @@ -944,7 +941,7 @@ func (s *HybridInboxSource) inboxFlushLoop(uid gregor1.UID, stopCh chan struct{}
}

func (s *HybridInboxSource) fetchRemoteInbox(ctx context.Context, uid gregor1.UID,
query *chat1.GetInboxQuery, p *chat1.Pagination) (res types.Inbox, err error) {
query *chat1.GetInboxQuery) (res types.Inbox, err error) {
defer s.Trace(ctx, func() error { return err }, "fetchRemoteInbox")()

// Insta fail if we are offline
Expand All @@ -966,8 +963,7 @@ func (s *HybridInboxSource) fetchRemoteInbox(ctx context.Context, uid gregor1.UI
rquery.SummarizeMaxMsgs = true // always summarize max msgs

ib, err := s.getChatInterface().GetInboxRemote(ctx, chat1.GetInboxRemoteArg{
Query: &rquery,
Pagination: p,
Query: &rquery,
})
if err != nil {
return types.Inbox{}, err
Expand Down Expand Up @@ -1012,13 +1008,12 @@ func (s *HybridInboxSource) fetchRemoteInbox(ctx context.Context, uid gregor1.UI
return types.Inbox{
Version: ib.Inbox.Full().Vers,
ConvsUnverified: utils.RemoteConvs(ib.Inbox.Full().Conversations),
Pagination: ib.Inbox.Full().Pagination,
}, nil
}

func (s *HybridInboxSource) Read(ctx context.Context, uid gregor1.UID,
localizerTyp types.ConversationLocalizerTyp, dataSource types.InboxSourceDataSourceTyp, maxLocalize *int,
query *chat1.GetInboxLocalQuery, p *chat1.Pagination) (inbox types.Inbox, localizeCb chan types.AsyncInboxResult, err error) {
query *chat1.GetInboxLocalQuery) (inbox types.Inbox, localizeCb chan types.AsyncInboxResult, err error) {

defer s.Trace(ctx, func() error { return err }, "Read")()

Expand All @@ -1027,7 +1022,7 @@ func (s *HybridInboxSource) Read(ctx context.Context, uid gregor1.UID,
if err != nil {
return inbox, localizeCb, err
}
inbox, err = s.ReadUnverified(ctx, uid, dataSource, rquery, p)
inbox, err = s.ReadUnverified(ctx, uid, dataSource, rquery)
if err != nil {
return inbox, localizeCb, err
}
Expand Down Expand Up @@ -1059,7 +1054,7 @@ func (s *HybridInboxSource) Read(ctx context.Context, uid gregor1.UID,
}

func (s *HybridInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
dataSource types.InboxSourceDataSourceTyp, query *chat1.GetInboxQuery, p *chat1.Pagination) (res types.Inbox, err error) {
dataSource types.InboxSourceDataSourceTyp, query *chat1.GetInboxQuery) (res types.Inbox, err error) {
defer s.Trace(ctx, func() error { return err }, "ReadUnverified")()

var cerr storage.Error
Expand All @@ -1071,15 +1066,13 @@ func (s *HybridInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
case types.InboxSourceDataSourceLocalOnly, types.InboxSourceDataSourceAll:
var vers chat1.InboxVers
var convs []types.RemoteConversation
var pagination *chat1.Pagination
mergeInboxStore = true
vers, convs, pagination, cerr = inboxStore.Read(ctx, uid, query, p)
vers, convs, cerr = inboxStore.Read(ctx, uid, query)
if cerr == nil {
s.Debug(ctx, "ReadUnverified: hit local storage: uid: %s convs: %d", uid, len(convs))
res = types.Inbox{
Version: vers,
ConvsUnverified: convs,
Pagination: pagination,
}
} else {
if dataSource == types.InboxSourceDataSourceLocalOnly {
Expand All @@ -1100,14 +1093,14 @@ func (s *HybridInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID,
}

// Go to the remote on miss
res, err = s.fetchRemoteInbox(ctx, uid, query, p)
res, err = s.fetchRemoteInbox(ctx, uid, query)
if err != nil {
return res, err
}

// Write out to local storage only if we are using local data
if mergeInboxStore {
if cerr = inboxStore.Merge(ctx, uid, res.Version, utils.PluckConvs(res.ConvsUnverified), query, p); cerr != nil {
if cerr = inboxStore.Merge(ctx, uid, res.Version, utils.PluckConvs(res.ConvsUnverified), query); cerr != nil {
s.Debug(ctx, "ReadUnverified: failed to write inbox to local storage: %s", cerr.Error())
}
}
Expand Down Expand Up @@ -1382,7 +1375,7 @@ func (s *HybridInboxSource) getConvsLocal(ctx context.Context, uid gregor1.UID,
ib, _, err := s.Read(ctx, uid, types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil,
&chat1.GetInboxLocalQuery{
ConvIDs: convIDs,
}, nil)
})
return ib.Convs, err
}

Expand Down Expand Up @@ -1554,7 +1547,7 @@ func (s *HybridInboxSource) MembershipUpdate(ctx context.Context, uid gregor1.UI
types.InboxSourceDataSourceRemoteOnly, nil,
&chat1.GetInboxLocalQuery{
ConvIDs: userJoined,
}, nil)
})
if err != nil {
s.Debug(ctx, "MembershipUpdate: failed to read joined convs: %s", err.Error())
return
Expand Down
10 changes: 5 additions & 5 deletions go/chat/inboxsource_test.go
Expand Up @@ -45,7 +45,7 @@ func TestInboxSourceUpdateRace(t *testing.T) {
require.NoError(t, err)

ib, _, err := tc.ChatG.InboxSource.Read(ctx, u.User.GetUID().ToBytes(),
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil, nil)
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)
require.Equal(t, chat1.InboxVers(0), ib.Version, "wrong version")

Expand All @@ -71,7 +71,7 @@ func TestInboxSourceUpdateRace(t *testing.T) {
wg.Wait()

ib, _, err = tc.ChatG.InboxSource.Read(ctx, u.User.GetUID().ToBytes(),
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil, nil)
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil)
require.NoError(t, err)
require.Equal(t, chat1.InboxVers(1), ib.Version, "wrong version")
}
Expand All @@ -91,7 +91,7 @@ func TestInboxSourceSkipAhead(t *testing.T) {

assertInboxVersion := func(v int) {
ib, _, err := tc.ChatG.InboxSource.Read(ctx, u.User.GetUID().ToBytes(),
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil, nil)
types.ConversationLocalizerBlocking, types.InboxSourceDataSourceAll, nil, nil)
require.Equal(t, chat1.InboxVers(v), ib.Version, "wrong version")
require.NoError(t, err)
}
Expand Down Expand Up @@ -190,7 +190,7 @@ func TestInboxSourceFlushLoop(t *testing.T) {
t.Skip()
}
newBlankConv(ctx, t, tc, uid, ri, sender, u.Username)
_, err := hbs.ReadUnverified(ctx, uid, types.InboxSourceDataSourceAll, nil, nil)
_, err := hbs.ReadUnverified(ctx, uid, types.InboxSourceDataSourceAll, nil)
require.NoError(t, err)
inbox := hbs.createInbox()
flushCh := make(chan struct{}, 10)
Expand Down Expand Up @@ -256,7 +256,7 @@ func TestInboxSourceLocalOnly(t *testing.T) {
ib, err := tc.Context().InboxSource.ReadUnverified(ctx, uid, mode,
&chat1.GetInboxQuery{
ConvID: &conv.Id,
}, nil)
})
if success {
require.NoError(t, err)
require.Equal(t, 1, len(ib.ConvsUnverified))
Expand Down
29 changes: 15 additions & 14 deletions go/chat/journey_card_manager.go
Expand Up @@ -435,20 +435,21 @@ func (cc *JourneyCardManagerSingleUser) cardAddPeople(ctx context.Context, conv
}
// Figure whether the user is in other channels.
topicType := chat1.TopicType_CHAT
inbox, err := cc.G().InboxSource.ReadUnverified(ctx, cc.uid, types.InboxSourceDataSourceLocalOnly, &chat1.GetInboxQuery{
TlfID: &conv.TlfID,
TopicType: &topicType,
MemberStatus: []chat1.ConversationMemberStatus{
chat1.ConversationMemberStatus_ACTIVE,
chat1.ConversationMemberStatus_REMOVED,
chat1.ConversationMemberStatus_LEFT,
chat1.ConversationMemberStatus_PREVIEW,
},
MembersTypes: []chat1.ConversationMembersType{chat1.ConversationMembersType_TEAM},
SummarizeMaxMsgs: true,
SkipBgLoads: true,
AllowUnseenQuery: true, // Make an effort, it's ok if convs are missed.
}, nil)
inbox, err := cc.G().InboxSource.ReadUnverified(ctx, cc.uid, types.InboxSourceDataSourceLocalOnly,
&chat1.GetInboxQuery{
TlfID: &conv.TlfID,
TopicType: &topicType,
MemberStatus: []chat1.ConversationMemberStatus{
chat1.ConversationMemberStatus_ACTIVE,
chat1.ConversationMemberStatus_REMOVED,
chat1.ConversationMemberStatus_LEFT,
chat1.ConversationMemberStatus_PREVIEW,
},
MembersTypes: []chat1.ConversationMembersType{chat1.ConversationMembersType_TEAM},
SummarizeMaxMsgs: true,
SkipBgLoads: true,
AllowUnseenQuery: true, // Make an effort, it's ok if convs are missed.
})
if err != nil {
debugDebug(ctx, "ReadUnverified error: %v", err)
return false
Expand Down
1 change: 0 additions & 1 deletion go/chat/localizer.go
Expand Up @@ -144,7 +144,6 @@ func (b *nonBlockingLocalizer) filterInboxRes(ctx context.Context, inbox types.I
Version: inbox.Version,
ConvsUnverified: res,
Convs: inbox.Convs,
Pagination: inbox.Pagination,
}, nil
}

Expand Down

0 comments on commit bc20ed2

Please sign in to comment.