Remove scary message-throttling feature flags.
This commit is contained in:
parent
aa99e202b4
commit
6c0de89de8
|
@ -419,7 +419,7 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
|||
AttachmentControllerV2 attachmentControllerV2 = new AttachmentControllerV2(rateLimiters, config.getAwsAttachmentsConfiguration().getAccessKey(), config.getAwsAttachmentsConfiguration().getAccessSecret(), config.getAwsAttachmentsConfiguration().getRegion(), config.getAwsAttachmentsConfiguration().getBucket());
|
||||
AttachmentControllerV3 attachmentControllerV3 = new AttachmentControllerV3(rateLimiters, config.getGcpAttachmentsConfiguration().getDomain(), config.getGcpAttachmentsConfiguration().getEmail(), config.getGcpAttachmentsConfiguration().getMaxSizeInBytes(), config.getGcpAttachmentsConfiguration().getPathPrefix(), config.getGcpAttachmentsConfiguration().getRsaSigningKey());
|
||||
KeysController keysController = new KeysController(rateLimiters, keysDynamoDb, accountsManager, directoryQueue);
|
||||
MessageController messageController = new MessageController(rateLimiters, messageSender, receiptSender, accountsManager, messagesManager, apnFallbackManager, featureFlagsManager);
|
||||
MessageController messageController = new MessageController(rateLimiters, messageSender, receiptSender, accountsManager, messagesManager, apnFallbackManager);
|
||||
ProfileController profileController = new ProfileController(rateLimiters, accountsManager, profilesManager, usernamesManager, cdnS3Client, profileCdnPolicyGenerator, profileCdnPolicySigner, config.getCdnConfiguration().getBucket(), zkProfileOperations, isZkEnabled);
|
||||
StickerController stickerController = new StickerController(rateLimiters, config.getCdnConfiguration().getAccessKey(), config.getCdnConfiguration().getAccessSecret(), config.getCdnConfiguration().getRegion(), config.getCdnConfiguration().getBucket());
|
||||
RemoteConfigController remoteConfigController = new RemoteConfigController(remoteConfigsManager, config.getRemoteConfigConfiguration().getAuthorizedTokens(), config.getRemoteConfigConfiguration().getGlobalConfig());
|
||||
|
|
|
@ -37,12 +37,4 @@ public class AmbiguousIdentifier {
|
|||
public boolean hasNumber() {
|
||||
return number != null;
|
||||
}
|
||||
|
||||
public int sendingGateHash() {
|
||||
if (uuid != null) {
|
||||
return (int)(uuid.getLeastSignificantBits() & 0xff);
|
||||
} else {
|
||||
return number.hashCode() & 0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,7 +37,6 @@ import org.whispersystems.textsecuregcm.redis.RedisOperation;
|
|||
import org.whispersystems.textsecuregcm.storage.Account;
|
||||
import org.whispersystems.textsecuregcm.storage.AccountsManager;
|
||||
import org.whispersystems.textsecuregcm.storage.Device;
|
||||
import org.whispersystems.textsecuregcm.storage.FeatureFlagsManager;
|
||||
import org.whispersystems.textsecuregcm.storage.MessagesManager;
|
||||
import org.whispersystems.textsecuregcm.util.Base64;
|
||||
import org.whispersystems.textsecuregcm.util.Constants;
|
||||
|
@ -88,8 +87,6 @@ public class MessageController {
|
|||
private final MessagesManager messagesManager;
|
||||
private final ApnFallbackManager apnFallbackManager;
|
||||
|
||||
private final FeatureFlagsManager featureFlagsManager;
|
||||
|
||||
private static final String CONTENT_SIZE_DISTRIBUTION_NAME = name(MessageController.class, "messageContentSize");
|
||||
private static final String OUTGOING_MESSAGE_LIST_SIZE_BYTES_DISTRIBUTION_NAME = name(MessageController.class, "outgoingMessageListSizeBytes");
|
||||
|
||||
|
@ -100,8 +97,7 @@ public class MessageController {
|
|||
ReceiptSender receiptSender,
|
||||
AccountsManager accountsManager,
|
||||
MessagesManager messagesManager,
|
||||
ApnFallbackManager apnFallbackManager,
|
||||
FeatureFlagsManager featureFlagsManager)
|
||||
ApnFallbackManager apnFallbackManager)
|
||||
{
|
||||
this.rateLimiters = rateLimiters;
|
||||
this.messageSender = messageSender;
|
||||
|
@ -109,7 +105,6 @@ public class MessageController {
|
|||
this.accountsManager = accountsManager;
|
||||
this.messagesManager = messagesManager;
|
||||
this.apnFallbackManager = apnFallbackManager;
|
||||
this.featureFlagsManager = featureFlagsManager;
|
||||
}
|
||||
|
||||
@Timed
|
||||
|
@ -124,7 +119,6 @@ public class MessageController {
|
|||
@Valid IncomingMessageList messages)
|
||||
throws RateLimitExceededException
|
||||
{
|
||||
if (shouldSend(destinationName)) {
|
||||
if (source.isEmpty() && accessKey.isEmpty()) {
|
||||
throw new WebApplicationException(Response.Status.UNAUTHORIZED);
|
||||
}
|
||||
|
@ -136,7 +130,7 @@ public class MessageController {
|
|||
rateLimiters.getUnsealedSenderLimiter().validate(source.get().getUuid().toString());
|
||||
} catch (RateLimitExceededException e) {
|
||||
rejectUnsealedSenderLimit.mark();
|
||||
logger.debug("Rejected unsealed sender limit from: " + source.get().getNumber());
|
||||
logger.debug("Rejected unsealed sender limit from: {}", source.get().getNumber());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -202,46 +196,6 @@ public class MessageController {
|
|||
.entity(new StaleDevices(e.getStaleDevices()))
|
||||
.build());
|
||||
}
|
||||
} else {
|
||||
if (featureFlagsManager.isFeatureFlagActive("SEND_ALL_200_STATUS")) {
|
||||
// Forgive me for what I must do
|
||||
return Response.ok(new SendMessageResponse(false)).build();
|
||||
} else {
|
||||
return Response.status(503).build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean shouldSend(final AmbiguousIdentifier destination) {
|
||||
final double hash = destination.sendingGateHash();
|
||||
|
||||
return (hash / 256.0) < getSuccessPercentage();
|
||||
}
|
||||
|
||||
private double getSuccessPercentage() {
|
||||
if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_1_PERCENT")) {
|
||||
return 0.01;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_2_PERCENT")) {
|
||||
return 0.02;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_4_PERCENT")) {
|
||||
return 0.04;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_8_PERCENT")) {
|
||||
return 0.08;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_16_PERCENT")) {
|
||||
return 0.16;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_32_PERCENT")) {
|
||||
return 0.32;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_48_PERCENT")) {
|
||||
return 0.48;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_64_PERCENT")) {
|
||||
return 0.64;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_80_PERCENT")) {
|
||||
return 0.80;
|
||||
} else if (featureFlagsManager.isFeatureFlagActive("SEND_MESSAGE_100_PERCENT")) {
|
||||
return 1.0d;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Timed
|
||||
|
|
|
@ -96,7 +96,7 @@ public class MessageControllerTest {
|
|||
.addProvider(new PolymorphicAuthValueFactoryProvider.Binder<>(ImmutableSet.of(Account.class, DisabledPermittedAccount.class)))
|
||||
.setTestContainerFactory(new GrizzlyWebTestContainerFactory())
|
||||
.addResource(new MessageController(rateLimiters, messageSender, receiptSender, accountsManager,
|
||||
messagesManager, apnFallbackManager, featureFlagsManager))
|
||||
messagesManager, apnFallbackManager))
|
||||
.build();
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue