Hopefully this is the right place to ask this, but let me know if there is a better location.
I am trying to put in my first PR for some minor changes to the new Hail VDS sex imputation method, but I am running into some errors during testing that are likely just because I installed something incorrectly.
Here are the steps I took:
I did this, but within PyCharm:
git clone https://github.com/hail-is/hail.git
Made my changes in PyCharm and added some small test code. Then I tried to run the tests by doing the following:
conda activate hail
python --version
Python 3.7.11
brew install --cask adoptopenjdk8
export PATH="/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin:$PATH"
export JAVA_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/"
java -version
openjdk version “1.8.0_292”
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.292-b10, mixed mode)
cd hail/hail
make cloud_base=gs://gnomad-tmp/hailctl/dataproc/jgoodric install HAIL_COMPILE_NATIVES=1 SCALA_VERSION=2.12.13 SPARK_VERSION=3.1.2
make install-dev-deps
make -j8 test
For many of the tests I get this error:
hail.utils.java.FatalError: ClassCastException: java.lang.reflect.Constructor cannot be cast to is.hail.types.encoded.EncoderAsmFunction
Java stack trace:
java.lang.ClassCastException: java.lang.reflect.Constructor cannot be cast to is.hail.types.encoded.EncoderAsmFunction
at is.hail.io.CompiledEncoder.<init>(Encoder.scala:30)
at is.hail.types.encoded.EType.$anonfun$buildEncoder$1(EType.scala:33)
at is.hail.io.TypedCodecSpec.$anonfun$buildEncoder$1(TypedCodecSpec.scala:25)
at is.hail.expr.ir.EmitClassBuilder.encodeLiterals(EmitClassBuilder.scala:315)
at is.hail.expr.ir.EmitClassBuilder.resultWithIndex(EmitClassBuilder.scala:676)
at is.hail.expr.ir.WrappedEmitClassBuilder.resultWithIndex(EmitClassBuilder.scala:167)
at is.hail.expr.ir.WrappedEmitClassBuilder.resultWithIndex$(EmitClassBuilder.scala:167)
at is.hail.expr.ir.EmitFunctionBuilder.resultWithIndex(EmitClassBuilder.scala:1109)
at is.hail.expr.ir.Emit.$anonfun$emitI$225(Emit.scala:2334)
at is.hail.expr.ir.IEmitCodeGen.map(Emit.scala:334)
at is.hail.expr.ir.Emit.emitI(Emit.scala:2275)
at is.hail.expr.ir.Emit.emitI$2(Emit.scala:780)
at is.hail.expr.ir.Emit.$anonfun$emitI$219(Emit.scala:2232)
at is.hail.expr.ir.Emit.$anonfun$emitI$219$adapted(Emit.scala:2231)
at scala.collection.mutable.ArraySeq.foreach(ArraySeq.scala:75)
at is.hail.expr.ir.Emit.emitI(Emit.scala:2231)
at is.hail.expr.ir.Emit.$anonfun$emitSplitMethod$1(Emit.scala:575)
at is.hail.expr.ir.Emit.$anonfun$emitSplitMethod$1$adapted(Emit.scala:573)
at is.hail.expr.ir.EmitCodeBuilder$.scoped(EmitCodeBuilder.scala:18)
at is.hail.expr.ir.EmitCodeBuilder$.scopedVoid(EmitCodeBuilder.scala:28)
at is.hail.expr.ir.EmitMethodBuilder.voidWithBuilder(EmitClassBuilder.scala:1042)
at is.hail.expr.ir.Emit.emitSplitMethod(Emit.scala:573)
at is.hail.expr.ir.Emit.emitInSeparateMethod(Emit.scala:590)
at is.hail.expr.ir.Emit.$anonfun$emit$1(Emit.scala:2470)
at is.hail.expr.ir.EmitCode$.fromI(Emit.scala:429)
at is.hail.expr.ir.Emit.emit(Emit.scala:2470)
at is.hail.expr.ir.Emit.emit$2(Emit.scala:2475)
at is.hail.expr.ir.Emit.$anonfun$emit$6(Emit.scala:2501)
at is.hail.expr.ir.EmitCode$.fromI(Emit.scala:429)
at is.hail.expr.ir.Emit.emit(Emit.scala:2500)
at is.hail.expr.ir.Emit.emitFallback$1(Emit.scala:792)
at is.hail.expr.ir.Emit.emitI(Emit.scala:2399)
at is.hail.expr.ir.Emit.emitI$3(Emit.scala:2478)
at is.hail.expr.ir.Emit.$anonfun$emit$7(Emit.scala:2503)
at is.hail.expr.ir.EmitCodeBuilder.withScopedMaybeStreamValue(EmitCodeBuilder.scala:182)
at is.hail.expr.ir.Emit.$anonfun$emit$6(Emit.scala:2502)
at is.hail.expr.ir.EmitCode$.fromI(Emit.scala:429)
at is.hail.expr.ir.Emit.emit(Emit.scala:2500)
at is.hail.expr.ir.Emit.emitFallback$1(Emit.scala:792)
at is.hail.expr.ir.Emit.emitI(Emit.scala:2399)
at is.hail.expr.ir.Emit.$anonfun$emitSplitMethod$1(Emit.scala:575)
at is.hail.expr.ir.Emit.$anonfun$emitSplitMethod$1$adapted(Emit.scala:573)
at is.hail.expr.ir.EmitCodeBuilder$.scoped(EmitCodeBuilder.scala:18)
at is.hail.expr.ir.EmitCodeBuilder$.scopedVoid(EmitCodeBuilder.scala:28)
at is.hail.expr.ir.EmitMethodBuilder.voidWithBuilder(EmitClassBuilder.scala:1042)
at is.hail.expr.ir.Emit.emitSplitMethod(Emit.scala:573)
at is.hail.expr.ir.Emit.emitInSeparateMethod(Emit.scala:590)
at is.hail.expr.ir.Emit.emitI(Emit.scala:774)
at is.hail.expr.ir.Emit.emitInNewBuilder$1(Emit.scala:783)
at is.hail.expr.ir.Emit.$anonfun$emitI$29(Emit.scala:931)
at is.hail.expr.ir.EmitCode$.fromI(Emit.scala:429)
at is.hail.expr.ir.Emit.$anonfun$emitI$28(Emit.scala:931)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:286)
at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
at scala.collection.TraversableLike.map(TraversableLike.scala:286)
at scala.collection.TraversableLike.map$(TraversableLike.scala:279)
at scala.collection.AbstractTraversable.map(Traversable.scala:108)
at is.hail.expr.ir.Emit.emitI(Emit.scala:930)
at is.hail.expr.ir.Emit$.$anonfun$apply$5(Emit.scala:78)
at is.hail.expr.ir.EmitCodeBuilder$.scoped(EmitCodeBuilder.scala:18)
at is.hail.expr.ir.EmitCodeBuilder$.scopedCode(EmitCodeBuilder.scala:23)
at is.hail.expr.ir.EmitMethodBuilder.emitWithBuilder(EmitClassBuilder.scala:1040)
at is.hail.expr.ir.WrappedEmitMethodBuilder.emitWithBuilder(EmitClassBuilder.scala:1093)
at is.hail.expr.ir.WrappedEmitMethodBuilder.emitWithBuilder$(EmitClassBuilder.scala:1093)
at is.hail.expr.ir.EmitFunctionBuilder.emitWithBuilder(EmitClassBuilder.scala:1109)
at is.hail.expr.ir.Emit$.apply(Emit.scala:75)
at is.hail.expr.ir.Compile$.apply(Compile.scala:77)
at is.hail.expr.ir.CompileAndEvaluate$.$anonfun$_apply$4(CompileAndEvaluate.scala:61)
at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
at is.hail.expr.ir.CompileAndEvaluate$._apply(CompileAndEvaluate.scala:61)
at is.hail.expr.ir.CompileAndEvaluate$.evalToIR(CompileAndEvaluate.scala:30)
at is.hail.expr.ir.LowerOrInterpretNonCompilable$.evaluate$1(LowerOrInterpretNonCompilable.scala:30)
at is.hail.expr.ir.LowerOrInterpretNonCompilable$.rewrite$1(LowerOrInterpretNonCompilable.scala:67)
at is.hail.expr.ir.LowerOrInterpretNonCompilable$.rewrite$1(LowerOrInterpretNonCompilable.scala:53)
at is.hail.expr.ir.LowerOrInterpretNonCompilable$.apply(LowerOrInterpretNonCompilable.scala:72)
at is.hail.expr.ir.lowering.LowerOrInterpretNonCompilablePass$.transform(LoweringPass.scala:69)
at is.hail.expr.ir.lowering.LoweringPass.$anonfun$apply$3(LoweringPass.scala:16)
at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
at is.hail.expr.ir.lowering.LoweringPass.$anonfun$apply$1(LoweringPass.scala:16)
at is.hail.utils.ExecutionTimer.time(ExecutionTimer.scala:81)
at is.hail.expr.ir.lowering.LoweringPass.apply(LoweringPass.scala:14)
at is.hail.expr.ir.lowering.LoweringPass.apply$(LoweringPass.scala:13)
at is.hail.expr.ir.lowering.LowerOrInterpretNonCompilablePass$.apply(LoweringPass.scala:64)
at is.hail.expr.ir.lowering.LoweringPipeline.$anonfun$apply$1(LoweringPipeline.scala:15)
at is.hail.expr.ir.lowering.LoweringPipeline.$anonfun$apply$1$adapted(LoweringPipeline.scala:13)
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:38)
at is.hail.expr.ir.lowering.LoweringPipeline.apply(LoweringPipeline.scala:13)
at is.hail.expr.ir.CompileAndEvaluate$._apply(CompileAndEvaluate.scala:47)
at is.hail.backend.spark.SparkBackend._execute(SparkBackend.scala:383)
at is.hail.backend.spark.SparkBackend.$anonfun$executeLiteral$2(SparkBackend.scala:394)
at is.hail.backend.ExecuteContext$.$anonfun$scoped$3(ExecuteContext.scala:48)
at is.hail.utils.package$.using(package.scala:638)
at is.hail.backend.ExecuteContext$.$anonfun$scoped$2(ExecuteContext.scala:48)
at is.hail.utils.package$.using(package.scala:638)
at is.hail.annotations.RegionPool$.scoped(RegionPool.scala:17)
at is.hail.backend.ExecuteContext$.scoped(ExecuteContext.scala:47)
at is.hail.backend.spark.SparkBackend.withExecuteContext(SparkBackend.scala:277)
at is.hail.backend.spark.SparkBackend.$anonfun$executeLiteral$1(SparkBackend.scala:391)
at is.hail.utils.ExecutionTimer$.time(ExecutionTimer.scala:52)
at is.hail.utils.ExecutionTimer$.logTime(ExecutionTimer.scala:59)
at is.hail.backend.spark.SparkBackend.executeLiteral(SparkBackend.scala:390)
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)
Hail version: 0.2.90-fd85443c0aac
Error summary: ClassCastException: java.lang.reflect.Constructor cannot be cast to is.hail.types.encoded.EncoderAsmFunction
I didn’t run the full test, but I can send the full output before I stopped it, unable to upload here.
Thank you!
-Julia