Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

Problem

Your pipelines reads or writes to a Microsoft SQL server and you get the following error:

Error: "Socket is closed". ClientConnectionId:<ID>

Symptom

Your Cloud Data Fusion pipeline reads or writes to a SQL Server. When you run your pipeline, it fails, throwing a Socket is closed exception. You get the following error message:

java.lang.RuntimeException: java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Socket is closed". ClientConnectionId:<ID>
	at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.setConf(DBInputFormat.java:171) ~[hadoop-mapreduce-client-core-2.8.5.jar:na]

By default, your Cloud Data Fusion pipeline is configured to use Cloud Dataproc, which uses the Conscrypt SSL provider. There is a known bug, that pertains to Cloud Dataproc’s use of Conscrypt, that causes the Socket is closed exception.

Solution

To fix the issue, disable the use of Conscrypt in your Cloud Dataproc cluster. You can do this while your pipeline is running.

  1. Go to the Control Center.

  2. In the Data Pipeline card, click on the wrench tool icon.

3. In the Preferences window that opens, paste the following argument into the Key field.

system.profile.properties.dataproc:dataproc.conscrypt.provider.enable false

4. Click Save & Close.

  • No labels