Upload 3 files
Browse files- hs_err_pid24760.log +0 -0
- poc_tensorflow_passthrough.scala +38 -0
- run_output.txt +91 -0
hs_err_pid24760.log
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
poc_tensorflow_passthrough.scala
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import ml.combust.mleap.tensorflow.TensorflowModel
|
| 2 |
+
import ml.combust.mleap.core.types.TensorType
|
| 3 |
+
import ml.combust.mleap.tensor.{DenseTensor, Tensor}
|
| 4 |
+
import scala.util.{Try, Success, Failure}
|
| 5 |
+
|
| 6 |
+
println("=== Test A: does TensorflowModel construction/load itself parse the GraphDef eagerly? ===")
|
| 7 |
+
val garbage: Array[Byte] = Array.fill(64)(0x41.toByte) // 64 bytes of 'A', not a valid GraphDef
|
| 8 |
+
val modelA = TensorflowModel(
|
| 9 |
+
inputs = Seq(),
|
| 10 |
+
outputs = Seq(),
|
| 11 |
+
nodes = None,
|
| 12 |
+
format = Some("graph"),
|
| 13 |
+
modelBytes = garbage
|
| 14 |
+
)
|
| 15 |
+
println(s"[Test A] TensorflowModel(...) constructed WITHOUT any exception at construction time (garbage modelBytes of ${garbage.length} bytes) -- confirms MLeap does zero eager validation at load/construction: $modelA")
|
| 16 |
+
|
| 17 |
+
println("\n=== Test B: what happens when apply() actually triggers GraphDef.parseFrom + importGraphDef on garbage bytes? ===")
|
| 18 |
+
val resultB = Try { modelA.apply() }
|
| 19 |
+
resultB match {
|
| 20 |
+
case Success(v) => println(s"[Test B UNEXPECTED SUCCESS] $v")
|
| 21 |
+
case Failure(e) => println(s"[Test B EXCEPTION] ${e.getClass.getName}: ${e.getMessage}")
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
println("\n=== Test C: same, but with a well-formed EMPTY protobuf (0 bytes) as modelBytes, to see baseline behavior ===")
|
| 25 |
+
val modelC = TensorflowModel(
|
| 26 |
+
inputs = Seq(),
|
| 27 |
+
outputs = Seq(),
|
| 28 |
+
nodes = None,
|
| 29 |
+
format = Some("graph"),
|
| 30 |
+
modelBytes = Array.emptyByteArray
|
| 31 |
+
)
|
| 32 |
+
val resultC = Try { modelC.apply() }
|
| 33 |
+
resultC match {
|
| 34 |
+
case Success(v) => println(s"[Test C UNEXPECTED SUCCESS] $v")
|
| 35 |
+
case Failure(e) => println(s"[Test C EXCEPTION] ${e.getClass.getName}: ${e.getMessage}")
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
println("\n=== DONE ===")
|
run_output.txt
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
|
| 2 |
+
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/C:/Users/user/Documents/Framework%20IA/framework-ia/targets/mleap/verify/tools/sbt/bin/sbt-launch.jar)
|
| 3 |
+
WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
|
| 4 |
+
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
|
| 5 |
+
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
|
| 6 |
+
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/C:/Users/user/Documents/Framework%20IA/framework-ia/targets/mleap/verify/tools/sbt/bin/sbt-launch.jar)
|
| 7 |
+
WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
|
| 8 |
+
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
|
| 9 |
+
WARNING: A restricted method in java.lang.System has been called
|
| 10 |
+
WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/C:/Users/user/.sbt/boot/scala-2.12.21/org.scala-sbt/sbt/1.12.5/jna-5.12.0.jar)
|
| 11 |
+
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
|
| 12 |
+
WARNING: Restricted methods will be blocked in a future release unless native access is enabled
|
| 13 |
+
|
| 14 |
+
[info] welcome to sbt 1.12.5 (Oracle Corporation Java 24.0.1)
|
| 15 |
+
[info] loading settings for project repo-build from plugins.sbt...
|
| 16 |
+
[info] loading project definition from C:\Users\user\Documents\Framework IA\framework-ia\targets\mleap\repo\project
|
| 17 |
+
[info] loading settings for project mleap from build.sbt...
|
| 18 |
+
[info] loading settings for project mleap-base from build.sbt...
|
| 19 |
+
[info] loading settings for project bundle-ml from build.sbt...
|
| 20 |
+
[info] loading settings for project bundle-hdfs from build.sbt...
|
| 21 |
+
[info] loading settings for project mleap-tensor from build.sbt...
|
| 22 |
+
[info] loading settings for project mleap-core from build.sbt...
|
| 23 |
+
[info] loading settings for project mleap-runtime from build.sbt...
|
| 24 |
+
[info] loading settings for project mleap-avro from build.sbt...
|
| 25 |
+
[info] loading settings for project mleap-spark-base from build.sbt...
|
| 26 |
+
[info] loading settings for project mleap-spark-testkit from build.sbt...
|
| 27 |
+
[info] loading settings for project mleap-spark from build.sbt...
|
| 28 |
+
[info] loading settings for project mleap-spark-extension from build.sbt...
|
| 29 |
+
[info] loading settings for project mleap-tensorflow from build.sbt...
|
| 30 |
+
[info] loading settings for project mleap-xgboost-runtime from build.sbt...
|
| 31 |
+
[info] loading settings for project mleap-xgboost-spark from build.sbt...
|
| 32 |
+
[info] loading settings for project mleap-serving from build.sbt...
|
| 33 |
+
[info] loading settings for project mleap-executor from build.sbt...
|
| 34 |
+
[info] loading settings for project mleap-executor-testkit from build.sbt...
|
| 35 |
+
[info] loading settings for project mleap-executor-tests from build.sbt...
|
| 36 |
+
[info] loading settings for project mleap-repository-s3 from build.sbt...
|
| 37 |
+
[info] loading settings for project mleap-grpc from build.sbt...
|
| 38 |
+
[info] loading settings for project mleap-grpc-server from build.sbt...
|
| 39 |
+
[info] loading settings for project mleap-benchmark from build.sbt...
|
| 40 |
+
[info] loading settings for project mleap-spring-boot from build.sbt...
|
| 41 |
+
[info] loading settings for project mleap-databricks-runtime-fat from build.sbt...
|
| 42 |
+
[info] loading settings for project mleap-databricks-runtime from build.sbt...
|
| 43 |
+
[info] loading settings for project mleap-databricks-runtime-testkit from build.sbt...
|
| 44 |
+
[info] resolving key references (31183 settings) ...
|
| 45 |
+
[info] set current project to mleap (in build file:/C:/Users/user/Documents/Framework%20IA/framework-ia/targets/mleap/repo/)
|
| 46 |
+
[info] Installing the s3:// URLStreamHandler via java.net.URL.setURLStreamHandlerFactory
|
| 47 |
+
[info] Creating a new Ivy URLHandlerDispatcher to handle s3:// URLs
|
| 48 |
+
Warning: Tried to extract the base path for relative glob bundle-protobuf\bundle\**\*. To disable this warning, re-run the program with java option, -Dsbt.io.implicit.relative.glob.conversion=allow
|
| 49 |
+
Warning: Tried to extract the base path for relative glob bundle-protobuf\bundle\**\*. To disable this warning, re-run the program with java option, -Dsbt.io.implicit.relative.glob.conversion=allow
|
| 50 |
+
Warning: Tried to extract the base path for relative glob bundle-protobuf\bundle\**\*.{java,scala}. To disable this warning, re-run the program with java option, -Dsbt.io.implicit.relative.glob.conversion=allow
|
| 51 |
+
Warning: Tried to extract the base path for relative glob bundle-protobuf\bundle\**\*.{java,scala}. To disable this warning, re-run the program with java option, -Dsbt.io.implicit.relative.glob.conversion=allow
|
| 52 |
+
[info] Starting scala interpreter...
|
| 53 |
+
Welcome to Scala 2.13.18 (Java HotSpot(TM) 64-Bit Server VM, Java 24.0.1).
|
| 54 |
+
Type in expressions for evaluation. Or try :help.
|
| 55 |
+
[?2004h>....import ml.combust.mleap.tensorflow.TensorflowModel
|
| 56 |
+
[?2004h>....import ml.combust.mleap.core.types.TensorType
|
| 57 |
+
[?2004h>....import ml.combust.mleap.tensor.{DenseTensor, Tensor}
|
| 58 |
+
[?2004h>....import scala.util.{Try, Success, Failure}
|
| 59 |
+
[?2004h>....[?2004h>....=== Test A: does TensorflowModel construction/load itself parse the GraphDef eagerly? ===
|
| 60 |
+
[?2004h>....val garbage: Array[Byte] = Array(65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65)
|
| 61 |
+
[?2004h>....val modelA: ml.combust.mleap.tensorflow.TensorflowModel = TensorflowModel(None,None,List(),List(),None,Some(graph),[B@1068375)
|
| 62 |
+
[?2004h>....[Test A] TensorflowModel(...) constructed WITHOUT any exception at construction time (garbage modelBytes of 64 bytes) -- confirms MLeap does zero eager validation at load/construction: TensorflowModel(None,None,List(),List(),None,Some(graph),[B@1068375)
|
| 63 |
+
[?2004h>....[?2004h>....
|
| 64 |
+
=== Test B: what happens when apply() actually triggers GraphDef.parseFrom + importGraphDef on garbage bytes? ===
|
| 65 |
+
[?2004h>....2026-07-23 10:32:29.561010: I tensorflow/core/util/port.cc:113] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
|
| 66 |
+
val resultB: scala.util.Try[Seq[Any]] = Failure(com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.)
|
| 67 |
+
[?2004h>....[Test B EXCEPTION] com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length.
|
| 68 |
+
[?2004h>....[?2004h>....
|
| 69 |
+
=== Test C: same, but with a well-formed EMPTY protobuf (0 bytes) as modelBytes, to see baseline behavior ===
|
| 70 |
+
[?2004h>....val modelC: ml.combust.mleap.tensorflow.TensorflowModel = TensorflowModel(None,None,List(),List(),None,Some(graph),[B@564023b5)
|
| 71 |
+
[?2004h>....#
|
| 72 |
+
# A fatal error has been detected by the Java Runtime Environment:
|
| 73 |
+
#
|
| 74 |
+
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffc6f92f3f7, pid=24760, tid=31724
|
| 75 |
+
#
|
| 76 |
+
# JRE version: Java(TM) SE Runtime Environment (24.0.1+9) (build 24.0.1+9-30)
|
| 77 |
+
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0.1+9-30, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
|
| 78 |
+
# Problematic frame:
|
| 79 |
+
# C 0x00007ffc6f92f3f7
|
| 80 |
+
#
|
| 81 |
+
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
|
| 82 |
+
#
|
| 83 |
+
# An error report file with more information is saved as:
|
| 84 |
+
# C:\Users\user\Documents\Framework IA\framework-ia\targets\mleap\repo\hs_err_pid24760.log
|
| 85 |
+
[38.154s][warning][os] Loading hsdis library failed
|
| 86 |
+
#
|
| 87 |
+
# If you would like to submit a bug report, please visit:
|
| 88 |
+
# https://bugreport.java.com/bugreport/crash.jsp
|
| 89 |
+
# The crash happened outside the Java Virtual Machine in native code.
|
| 90 |
+
# See problematic frame for where to report the bug.
|
| 91 |
+
#
|