Ruifeng Zheng created SPARK-59618:
-------------------------------------

             Summary: Concurrent F2J LAPACK initialization can hang 
MultivariateGaussian
                 Key: SPARK-59618
                 URL: https://issues.apache.org/jira/browse/SPARK-59618
             Project: Spark
          Issue Type: Bug
          Components: ML
    Affects Versions: 4.2.0
            Reporter: Ruifeng Zheng


F2J LAPACK caches machine parameters in unsynchronized mutable static fields. 
During concurrent first use, Dlamc2 publishes first=false before lrmin and 
lrmax are initialized. A racing Dsyev call can consume zero machine limits and 
enter a non-terminating Dlascl scaling loop.

This can occur when MultivariateGaussian instances evaluate their lazy 
covariance constants concurrently. Repeated thread dumps show one task 
remaining RUNNABLE in Dlascl -> Dsyev -> F2jLAPACK while its peer finishes 
normally.

The proposed fix warms up the selected LAPACK backend once per executor JVM 
before concurrent eigSym calls. It does not change library dependencies or 
serialize real eigendecompositions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to