Hl.init() stopped working

I am not sure why, as I don’t recall any change to docker images that we have, in which we meet all the version requirements (python 3.7.6, hail v0.2, Spark 2.4.x , Java 8).

I am using Python 3, Gen3 Data Commons Jupyter Notebooks, and to confirm the same error I am getting inside these, I run the following CLI via the terminal to reproduce the error:

habibi:~$ ipython3
Python 3.7.6 | packaged by conda-forge | (default, Jun 1 2020, 18:57:50)
Type ‘copyright’, ‘credits’ or ‘license’ for more information
IPython 7.15.0 – An enhanced Interactive Python. Type ‘?’ for help.

In [1]: import hail as hl

In [2]: hl.init()
2021-02-26 09:50:03 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
Setting default log level to “WARN”.
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).

Py4JJavaError Traceback (most recent call last)
in
----> 1 hl.init()

in init(sc, app_name, master, local, log, quiet, append, min_block_size, branching_factor, tmp_dir, default_reference, idempotent, global_seed, spark_conf, skip_logging_configuration, local_tmpdir, _optimizer_iterations)

/opt/conda/lib/python3.7/site-packages/hail/typecheck/check.py in wrapper(__original_func, *args, **kwargs)
612 def wrapper(original_func, *args, **kwargs):
613 args
, kwargs
= check_all(__original_func, args, kwargs, checkers, is_method=is_method)
→ 614 return original_func(*args, **kwargs)
615
616 return wrapper

/opt/conda/lib/python3.7/site-packages/hail/context.py in init(sc, app_name, master, local, log, quiet, append, min_block_size, branching_factor, tmp_dir, default_reference, idempotent, global_seed, spark_conf, skip_logging_configuration, local_tmpdir, _optimizer_iterations)

Py4JJavaError: An error occurred while calling z:is.hail.backend.spark.SparkBackend.apply.
: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
at is.hail.backend.spark.SparkBackend$.majorMinor$1(SparkBackend.scala:58)
at is.hail.backend.spark.SparkBackend$.checkSparkCompatibility(SparkBackend.scala:60)
at is.hail.backend.spark.SparkBackend$.createSparkConf(SparkBackend.scala:71)
at is.hail.backend.spark.SparkBackend$.configureAndCreateSparkContext(SparkBackend.scala:120)
at is.hail.backend.spark.SparkBackend$.apply(SparkBackend.scala:196)
at is.hail.backend.spark.SparkBackend.apply(SparkBackend.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
at py4j.Gateway.invoke(Gateway.java:282)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)

What’s the Hail version here?

V0.2, and it appears, when we do rebuild, it uses the latest version:

RUN git clone https://github.com/hail-is/hail.git … followed by including spark libs / headers and performing gradle builds.

The lines in the stack trace don’t look like the current code. What’s the last git SHA you saw with this?

Also, the best way to install is to use the makefile in hail/hail and do make install.

Hey Tim, sorry, I would need to check on the SHA sigs, but you are right, I think this build is dependent on some steps that need updates in general. I am just completely baffled at how it was working for nearly 6 months, and then one day, boom, right before loading a new data model and bringing in UKBB data - arg.