From 7a41eeb09ace26f141dcc5cab615d4bb05491e37 Mon Sep 17 00:00:00 2001 From: Mojtaba Chenani Date: Mon, 1 Jul 2024 10:18:15 +0200 Subject: [PATCH 1/2] fix(mls-migration): allow skipping users without KeyPackages during MLS migration (WPB-9638) (#2845) * fix(mls-migration): allow skipping users without KeyPackages during mls migration * change logs to debug level instead of warning --- .../logic/data/conversation/MLSConversationRepository.kt | 7 ++++++- .../wire/kalium/logic/feature/mlsmigration/MLSMigrator.kt | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepository.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepository.kt index 7a1dbac50fc..be8a91d8f76 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepository.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/conversation/MLSConversationRepository.kt @@ -474,12 +474,17 @@ internal class MLSConversationDataSource( allowPartialMemberList: Boolean = false, ): Either = withContext(serialDispatcher) { commitPendingProposals(groupID).flatMap { - kaliumLogger.d("adding $userIdList to MLS group: $groupID") + kaliumLogger.d("adding ${userIdList.count()} users to MLS group") produceAndSendCommitWithRetryAndResult(groupID, retryOnStaleMessage = retryOnStaleMessage) { keyPackageRepository.claimKeyPackages(userIdList, cipherSuite).flatMap { result -> if (result.usersWithoutKeyPackagesAvailable.isNotEmpty() && !allowPartialMemberList) { + kaliumLogger.d( + "add members to MLS Group: failed " + + "${result.usersWithoutKeyPackagesAvailable.count()} user(s) missing KeyPackages" + ) Either.Left(CoreFailure.MissingKeyPackages(result.usersWithoutKeyPackagesAvailable)) } else { + kaliumLogger.d("add members to MLS Group: claiming KeyPackages succeed") Either.Right(result) } }.flatMap { result -> diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigrator.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigrator.kt index 228e7c5ec5e..d3056300495 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigrator.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/mlsmigration/MLSMigrator.kt @@ -138,7 +138,11 @@ internal class MLSMigratorImpl( when (protocolInfo) { is Conversation.ProtocolInfo.Mixed -> { conversationRepository.getConversationMembers(conversationId).flatMap { members -> - mlsConversationRepository.establishMLSGroup(protocolInfo.groupId, members) + mlsConversationRepository.establishMLSGroup( + protocolInfo.groupId, + members, + allowSkippingUsersWithoutKeyPackages = true + ) } Unit.right() } From 34549cbe5aa3dd2a94f953a376657c87d5958ddd Mon Sep 17 00:00:00 2001 From: Mojtaba Chenani Date: Tue, 2 Jul 2024 09:06:30 +0200 Subject: [PATCH 2/2] trigger CI