linkedin/coral

Improve Reliability of Dynamic UDF Resolution in Coral Hive

Opened this issue · 0 comments

Problem

The ArtifactsResolver in Coral Hive is getting stuck for extended periods (15+ minutes) when fetching Ivy artifacts during dynamic UDF resolution. This issue is causing significant delays and requiring manual retries of entire translation operations.

Current Behavior

  • No timeout mechanism for artifact resolution
  • No automatic retry logic

Observed Symptoms

  • Log entries showing repeated failed attempts to acquire locks
  • Extended periods of inactivity (15+ minutes)
  • Eventual failure with "Unable to fetch dependencies" error

Example Log Output

24/05/20 11:32:00 INFO functions.ArtifactsResolver: Reading Ivy settings from: jar:file:/Users/stewang/.gradle/caches/modules-2/files-2.1/com.linkedin.coral/coral-hive/2.2.1/9b95be32614d2247ae7f4b16266bfc514967012b/coral-hive-2.2.1.jar!/ivy.settings.xml
:: problems summary ::
24/05/20 11:48:04 WARN functions.ArtifactsResolver: Unable to fetch dependencies for UDF org.apache.hadoop.hive.ql.udf.generic.GenericUDFReflect: [download failed: com.google.inject.extensions#guice-servlet;3.0!guice-servlet.jar]
:::: ERRORS
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0
impossible to acquire lock for com.google.inject.extensions#guice-servlet;3.0

Impact

Resolving this issue will:

  • Reduce unexpected delays in translation operations
  • Improve overall reliability of the Coral Hive module
  • Enhance developer experience when working with dynamic UDFs

Additional Context

This issue is particularly impactful when developing tools that rely on Coral's translation capabilities, as it requires retrying entire operations at a higher level.