Knowledge Drop

What does "async socket check failed" mean in the logs?

  • 15 June 2021
  • 1 reply
  • 122 views

Userlevel 3

Last tested: Oct 25, 2019
 

Basically there is a connection between the client browser and Looker server that Looker periodically checks. Whenever it fails, an async socket check failure happens, and Looker says “no need to keep running a query if nobody is waiting for it. Terminate db session”

Note that in response to the async socket check failure, Looker will initiate a kill command to the database; for example, for Snowflake Looker will initiate CALL SYSTEM$CANCEL_ALL_QUERIES(#{sick_query_data[:connection_id]}) . This does NOT mean that Looker is initiating the timeout—as noted here, Looker does not timeout queries once they have been sent to the database. While Looker may be initiating the CANCEL_ALL_QUERIES command, it is only doing so in response to a closed connection between the UI client and the Looker server (supported by the socket check failure in the logs being first in the sequence of events).

tl;dr: there’s usually something client-side responsible for this failure. Network devices with timeout settings, internal connection drops, anti virus software, etc. are all things we’ve seen. If your network ops team isn't aware of anything among these that could be closing the connection, try testing queries on a different browser, machine, network, etc. to help isolate the source of the closed connection.

 

This content is subject to limited support.                

 

 


1 reply

Userlevel 3

Some related resources:

  • More detailed explanation of how socket-based query killing works: 
  • Another example of something client-side that can kill queries prematurely: VPNs

     

Reply