You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Tzu-Li (Gordon) Tai (JIRA)" <ji...@apache.org> on 2018/10/10 09:14:00 UTC

[jira] [Resolved] (FLINK-10316) Kinesalite bug fix (FLINK-9402) doesn't fully fix the problem.

     [ https://issues.apache.org/jira/browse/FLINK-10316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tzu-Li (Gordon) Tai resolved FLINK-10316.
-----------------------------------------
       Resolution: Fixed
    Fix Version/s: 1.5.5
                   1.6.2
                   1.7.0

Merged.

1.5.5: 60bab122878b320f5f55371b5aa0f9ae516c3e69
1.6.2: c363e9ee7cab768b642fb8f9fb6ede6fbddc852a
1.7.0: 9b0bf691194755823c804db28330bc343b99a5b6

> Kinesalite bug fix (FLINK-9402) doesn't fully fix the problem.
> --------------------------------------------------------------
>
>                 Key: FLINK-10316
>                 URL: https://issues.apache.org/jira/browse/FLINK-10316
>             Project: Flink
>          Issue Type: Bug
>          Components: Kinesis Connector
>    Affects Versions: 1.5.0, 1.6.0, 1.7.0
>            Reporter: Joseph Sims
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.7.0, 1.6.2, 1.5.5
>
>
> Related to: https://issues.apache.org/jira/browse/FLINK-9402
> A fix (Flink-9402) was introduced to force the configurations to have *exactly* one of "aws.region" or "aws.endpoint", but the underlying problem wasn't entirely fixed.
> If "aws.endpoint" is set and "aws.region" is unset, a different exception is thrown, instead.
> In *KinesisConfigUtil.java*, *getValidatedProducerConfiguration()* calls:
> {code:java}
>     validateAwsConfiguration(config)
> {code}
> Where the original fix was introduced ("aws.region" XOR "aws.endpoint")
>  But a couple of lines later, *getValidatedProducerConfiguration()* then calls:
> {code:java}
>     kpc.setRegion(config.getProperty(AWSConfigConstants.AWS_REGION));
> {code}
> Which explicitly checks for the existence of "aws.region", and throws an exception if it is not set.
>  Thus, this class needs to be fixed such that "aws.region" is only required if "aws.endpoint" is unset, as the original ticket indicated.
> Also, *validateAwsConfiguration()* has a minor bug where is labels the "aws.endpoint" incorrectly.
>  Current:
> {code:java}
> if (!(config.containsKey(AWSConfigConstants.AWS_REGION) ^ config.containsKey(ConsumerConfigConstants.AWS_ENDPOINT))) {
>    // per validation in AwsClientBuilder
>    throw new IllegalArgumentException(String.format("Either AWS region ('%s') or AWS endpoint ('%s') must be set in the config.",
>       AWSConfigConstants.AWS_REGION, AWSConfigConstants.AWS_REGION));
> }
> {code}
> But should be:
> {code:java}
> if (!(config.containsKey(AWSConfigConstants.AWS_REGION) ^ config.containsKey(ConsumerConfigConstants.AWS_ENDPOINT))) {
>    // per validation in AwsClientBuilder
>    throw new IllegalArgumentException(String.format("Either AWS region ('%s') or AWS endpoint ('%s') must be set in the config.",
>       AWSConfigConstants.AWS_REGION, ConsumerConfigConstants.AWS_ENDPOINT));
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)