Forum Discussion
SessionExpiredException occurs regularly in driver's stderr (org.apache.zookeeper.ClientCnxn)
- 10 months ago
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
Hi dbeavon3,
Thank you for the detailed response, can you please try increasing the following Spark settings and re-run the job:
--conf spark.network.timeout=300s
--conf spark.executor.heartbeatInterval=30s
These control the heartbeat between the Spark driver and ZooKeeper, increasing them helps brief pauses or GC delays that can otherwise cause session expiry.
Regarding ZooKeeper hosting in Fabric, the Spark coordination services (including ZooKeeper) are managed within the service, not on separate customer visible VMs like in HDInsight. If your workspace runs on dedicated capacity, those resources are isolated to your tenant on shared capacity, they are multi-tenant but still isolated at the process level.
If the failures continue even after adjusting the timeouts, I recommend raising a Fabric support ticket with the job ID and timestamps so the backend team can check ZooKeeper health and capacity side metrics.
Thanks and regards,
Anjan Kumar Chippa
>> "managed within the service".
Ideally we wouldn't be seeing errors about these things that we don't manage ourselves; especially when they don't have any customer-facing surface area and we cannot troubleshoot them.
I will try the configuration settings that you shared and see if there is a difference.
>> If your workspace runs on dedicated capacity, those resources are isolated to your tenant
Are they isolated to a workspace? Is it possible that my workloads are conflicting with other workloads in the same tenant? It is unfortunate that the zookeeper behavior is decreasing the reliability and health of the cluster. I'm guessing it is underprovisioned in some way, or shared in ways that customers wouldn't expect.
- v-achippa10 months ago
Community Support
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