Skip to main content

Unexpected EOF on client connection

  • June 25, 2014
  • 4 replies
  • 19 views

Rupendra
Forum|alt.badge.img+1
In Vertica log file, I am seeing following messages periodically-
2014-06-24 10:22:48.133 Init Session:0x7f54e0048930-c00000004e5114 <LOG> @v_dw_prod_1_node0003: 08006/2907: Could not send data to client: No such file or directory  2014-06-24 10:22:48.133 Init Session:0x7f54e0048930-c00000004e5114 <LOG> @v_dw_prod_1_node0003: 08006/5167: Unexpected EOF on client connection  
Has anyone ever encountered similar situation? 

Thanks,
Rupendra

4 replies

Sajan_Sangraula
Forum|alt.badge.img+1
  • Participating Frequently
  • June 25, 2014
It happened to me when ha-proxy, used to load balance the ETL and reporting tools connecting to Vertica, had the default timeout period of a few minutes. For queries running longer than the timeout of the load balancer, the session closed with an Unexpected EOF in Vertica log.


Rupendra
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 25, 2014
I believe it is the same situation. We are using F5 load balancer. One thing that I did not understand was which file or directory was being referred in the error message which says " No such file or directory".

eli_revach_1
Forum|alt.badge.img
  • Participating Frequently
  • June 26, 2014
In most of the case it socket  file

Prasanta_Pal
Forum|alt.badge.img
  • Participating Frequently
  • June 27, 2014
Setting the ResultBufferSize to 0 would help but may cause a small performance hit due to the serialization (This forces the multiple queries to be result set processed serially, eliminating the breakup of the result set into multiple buffers)

To set the connection parameter ResultBufferSize to 0
------------------------------------------------------------------------
in odbc see the DSN Parameters page
in jdbc see the JDBC Connection Properties page
in ado.net see the ADO.Net cConnection Properties page

You can set this param value like below if using a java application:
Connection dbconn = mydataManager.getConnection( "jdbc:vertica://ipaddress:5433/dbname", "dbadmin", "password"); ((VerticaConnection)dbconn).setProperty("ResultBufferSize", "0" );

For GUI client apps you might have to find the client app's connection editing dialog and figure out how to pass it as a property/parameter, e.g. adding "?ResultBufferSize=0" to the JDBC url in the connection dialog something like "jdbc:vertica://hostname:5433/dbname?ResultBufferSize=0"