You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Jason Gustafson (JIRA)" <ji...@apache.org> on 2016/10/07 16:44:20 UTC

[jira] [Updated] (KAFKA-3759) Incorrect JDBC credentials cause Connect worker to permanently fail

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

Jason Gustafson updated KAFKA-3759:
-----------------------------------
    Fix Version/s:     (was: 0.10.1.0)

> Incorrect JDBC credentials cause Connect worker to permanently fail
> -------------------------------------------------------------------
>
>                 Key: KAFKA-3759
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3759
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 0.9.0.1
>         Environment: I work on a cloudera quickstart VM. I installed kafka / confluent via yum :
>  
> [cloudera@quickstart confluent]$ yum list installed | grep confluent
> confluent-camus.noarch              2.0.1-1               @confluent-2.0       
> confluent-common.noarch             2.0.1-1               @confluent-2.0       
> confluent-kafka-2.11.7.noarch       0.9.0.1-1             @confluent-2.0       
> confluent-kafka-connect-hdfs.noarch 2.0.1-1               @confluent-2.0       
> confluent-kafka-connect-jdbc.noarch 2.0.1-1               @confluent-2.0       
> confluent-kafka-rest.noarch         2.0.1-1               @confluent-2.0       
> confluent-rest-utils.noarch         2.0.1-1               @confluent-2.0       
> confluent-schema-registry.noarch    2.0.1-1               @confluent-2.0  
>  
>            Reporter: Lars George
>            Assignee: Ewen Cheslack-Postava
>
> As reported by our peers:
> All the following steps are executed in one cloudera instance, each in a different terminal.
> - I start the kafka server with the (unchanged) properties file in /etc/kafka/server.properties
> - I start the schema-registry with the (unchanged) properties file in /etc/schema-registry/schema-registry.properties
> - I start the connect worker with the properties file /etc/schema-registry/connect-avro-distributed.properties
> HOWEVER I have changed the following 2 properties for my test:
> config.storage.topic=connect-configs-broken
> offset.storage.topic=connect-offsets-broken
>  
> Now I execute a shell script that uses the REST API to post a connector configuration to the worker. Here the snippet from the script
> that shows the connector config:
> {noformat} 
> ==========================================================
> read -resp $'please enter the password for the postgresql user \n' postgres_password
>  
> echo posting connector config into the kafka cluster
> data="{
>                 \"name\": \"projectx-postgres-test\",
>                 \"config\": {
>                                \"connection.url\":\"jdbc:postgresql://$postgres_db_url/$postgres_db_name?user=$postgres_user&password=$postgres_password\",
>                                \"connector.class\":\"io.confluent.connect.jdbc.JdbcSourceConnector\",
>                                \"tasks.max\":\"1\",
>                                \"mode\":\"incrementing\",
>                                \"incrementing.column.name\":\"id\",
>                                \"topic.prefix\":\"test-postgres-jdbc-\"
>                 }
> }"
> url=http://$kafka_connect_rest_url/connectors
> ctype="Content-Type: application/json"
> curl -X POST $url -H "$ctype" --data "$data"
>  
> ==========================================================
> {noformat}
>  
> - I exectute the script with correct connection settings, but incorrect postgresql username / password.
> - I receive the following answer from the REST API:
> {noformat}
> {"name":"projectx-postgres-test","config":{"connection.url":"jdbc:postgresql://localhost/connect_test?user=cloudera&password=wrongPW","connector.class":"io.confluent.connect.jdbc.JdbcSourceConnector","tasks.max":"1","mode":"incrementing","incrementing.column.name":"id","topic.prefix":"test-postgres-jdbc-","name":"projectx-postgres-test"},"tasks":[]}
> {noformat}
>  
> Now the connect worker stops and I see the following error and stack trace:
>  
> {noformat}
> [2016-05-23 05:53:43,966] INFO 127.0.0.1 - - [23/May/2016:12:53:41 +0000] "POST /connectors HTTP/1.1" 201 343  2500 (org.apache.kafka.connect.runtime.rest.RestServer:60)
> [2016-05-23 05:53:44,656] ERROR Couldn't open connection to jdbc:postgresql://localhost/connect_test?user=cloudera&password=wrongPW: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "cloudera" (io.confluent.connect.jdbc.JdbcSourceConnector:76)
> [2016-05-23 05:53:44,663] ERROR Uncaught exception in herder work thread, exiting:  (org.apache.kafka.connect.runtime.distributed.DistributedHerder:166)
> org.apache.kafka.connect.errors.ConnectException: Connector threw an exception while starting
>         at org.apache.kafka.connect.runtime.Worker.addConnector(Worker.java:188)
>         at org.apache.kafka.connect.runtime.distributed.DistributedHerder.startConnector(DistributedHerder.java:670)
>         at org.apache.kafka.connect.runtime.distributed.DistributedHerder.startWork(DistributedHerder.java:642)
>         at org.apache.kafka.connect.runtime.distributed.DistributedHerder.handleRebalanceCompleted(DistributedHerder.java:600)
>         at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:184)
>         at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:159)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.kafka.connect.errors.ConnectException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "cloudera"
>         at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:77)
>         at org.apache.kafka.connect.runtime.Worker.addConnector(Worker.java:186)
>         ... 6 more
> Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "cloudera"
>         at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:427)
>         at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:203)
>         at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)
>         at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:149)
>         at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:35)
>         at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
>         at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:47)
>         at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:30)
>         at org.postgresql.Driver.makeConnection(Driver.java:414)
>         at org.postgresql.Driver.connect(Driver.java:282)
>         at java.sql.DriverManager.getConnection(DriverManager.java:571)
>         at java.sql.DriverManager.getConnection(DriverManager.java:233)
>         at io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:74)
>         ... 7 more
> [2016-05-23 05:53:44,706] INFO Kafka Connect stopping (org.apache.kafka.connect.runtime.Connect:68)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)