Forum Discussion

dbeavon3's avatar
dbeavon3
Memorable Member
10 months ago
Solved

SessionExpiredException occurs regularly in driver's stderr (org.apache.zookeeper.ClientCnxn)

My spark jobs have been failing regularly and the following seems to be one of the things that predicts an imminent failure:

 

2025-10-12 23:29:27,220 WARN ClientCnxn [Thread-62-SendThread(vm-6a611403:2181)]: Session 0x1000000cfbb0000 for sever vm-6a611403/10.0.0.4:2181, Closing socket connection. Attempting reconnect except it is a SessionExpiredException.
org.apache.zookeeper.ClientCnxn$SessionTimeoutException: Client session timed out, have not heard from server in 37256ms for session id 0x1000000cfbb0000
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1258)

 

Whenever we see that SessionExpiredException from ClientCnxn in org.apache.zookeeper, then soon afterwards our executors will stop sending heartbeats and then they will be unceremoniously terminated.

... continued...

 

 

Our jobs don't respond well, if the executors are terminated mid-way thru a series of tasks.


Can someone please explain what the ClientCnxn is (zookeeper) and why we keep getting this issue (SessionTimeoutException)?

 

 

  • Hi dbeavon3,

     

    Thank you for the response. In Fabric the spark coordination components(including ZooKeeper) are service-managed and containerized, not customer-managed.
    They are isolated at the capacity level, not at the individual workspace level.

    • On a dedicated capacity, these services run within resources allocated only to that capacity and are not shared with other tenants.
    • Multiple workspaces under the same capacity will share that capacity’s resources, but the service manages scheduling and isolation internally to prevent one job from affecting another.
    • On a shared capacity, the coordination layer is multi-tenant and managed by Microsoft’s service fabric layer, but each job runs in its own isolated session.

    You are right that these logs can appear even though the component is not customer-managed, they simply reflect transient coordination retries within the platform.

    If the timeout changes reduce failures, it confirms a transient condition, If not the Fabric Support can review the backend ZooKeeper health for your job timestamps.

     

    Thanks and regards,

    Anjan Kumar Chippa

9 Replies

  • Hi dbeavon3 

     

    Hope you are fine. As per you, your jobs don't respond well and driver/executor is failing. Could you please tell me how you are using bronze, silver and gold layer. Also, In Databricks it is relatively easy and Microsoft adopted the same system (Delta Lake). In Microsoft Fabric, there is not different cluster ( job cluster, or all purpose cluster ) etc.

    by the way, It's a Linux System. ( %fs ls ) commands.

    • dbeavon3's avatar
      dbeavon3
      Memorable Member

      Yes, we extract data with multiple layers.  

       

      Can you please focus on the technical reason for these job failures?  The messages in the logs are meaningless without having a very low-level understanding of how Microsoft is hosting the so-called "ClientCnxn" (for zookeeper).  I have NEVER seen zookeeper errors from my spark jobs on other platforms.  And I have been working with spark for over three years now.

       

      • v-achippa's avatar
        v-achippa
        Community Support

        Hi dbeavon3,

         

        Thank you for reaching out to Microsoft Fabric Community.

         

        Thank you BhaveshPatel for the prompt response.

         

        Thank you for sharing the detailed logs. This is a zookeeper client session expiry, which usually occurs when the spark driver temporarily loses connection with the zookeeper service. Mostly this causes because of driver side GC or CPU pause or transient network interruption between the driver and zookeeper service.

        Please try re-running the job once with slightly higher timeouts like increase the spark timeouts, if it stabilizes then the issue was likely transient.

        If it still fails with the same ZooKeeper error, then it can be platform side zookeeper issue. This error is not related to bronze/silver/gold data layers it is a coordination issue at the spark runtime level.

         

        In this case I recommend raising a Fabric support ticket with the timestamps so the backend team can check the zookeeper health. To raise a support ticket, kindly follow the steps outlined in the following guide:

        How to create a Fabric and Power BI Support ticket - Power BI | Microsoft Learn

         

        Thanks and regards,

        Anjan Kumar Chippa