googleapis / java-firestore

Apache License 2.0
99 stars 66 forks source link

Troubleshooting a java.lang.VerifyError #1306

Open ployRun opened 1 year ago

ployRun commented 1 year ago

I'm using the dataflow to save data to firestore. when i create the docker and submit to cloud. it show this error. I have no idea what wrong. can anyone help to suggest me. Thank you so much.

java.lang.VerifyError: Bad type on operand stack Exception Details: Location: com/google/firestore/v1/Value$Builder.setTimestampValue(Lcom/google/protobuf/Timestamp;)Lcom/google/firestore/v1/Value$Builder; @36: invokevirtual Reason: Type 'com/google/protobuf/Timestamp' (current frame, stack[1]) is not assignable to 'com/google/protobuf/AbstractMessage' Current Frame: bci: @36 flags: { } locals: { 'com/google/firestore/v1/Value$Builder', 'com/google/protobuf/Timestamp' } stack: { 'com/google/protobuf/SingleFieldBuilderV3', 'com/google/protobuf/Timestamp' } Bytecode: 0x0000000: 2ab4 0015 c700 1b2b c700 0bbb 0049 59b7 0x0000010: 004a bf2a 2bb5 000e 2ab6 0032 a700 0c2a 0x0000020: b400 152b b600 5857 2a10 0ab5 0009 2ab0 0x0000030: Stackmap Table: same_frame(@19) same_frame(@31) same_frame(@40)

#### Environment details
####### build.sbt ################
val scioVersion = "0.6.1"
val beamVersion = "2.6.0"
val scalaMacrosVersion = "2.1.1"
unmanagedBase := baseDirectory.value / "lib"

lazy val root: Project = project
  .in(file("."))
  .settings(commonSettings)
  .settings(macroSettings)
  .settings(
    name := "scio-job",
    description := "scio job",
    publish / skip := true,
    libraryDependencies ++= Seq(
      "com.spotify" %% "scio-core" % scioVersion,
      "com.spotify" %% "scio-extra" % scioVersion,
      "com.spotify" %% "scio-test" % scioVersion % Test,
      "org.apache.beam" % "beam-runners-direct-java" % beamVersion,
      // optional dataflow runner
       "org.apache.beam" % "beam-runners-google-cloud-dataflow-java" % beamVersion,
      "org.slf4j" % "slf4j-simple" % "1.7.25",
      "com.nrinaudo" %% "kantan.csv" % "0.4.0",
      "com.github.nscala-time" %% "nscala-time" % "2.20.0",
      "com.google.cloud" % "google-cloud-storage" % "1.49.0",
      "io.circe" %% "circe-parser" % "0.10.0",
      "io.circe" %% "circe-optics" % "0.10.0",
      "org.json4s" %% "json4s-jackson" % "3.6.6",

      "me.lyh" %% "shapeless-datatype-datastore_1.3" % "0.1.10",
      "com.google.cloud" % "google-cloud-bigquery" % "1.35.0",
      "com.google.cloud" % "google-cloud-secretmanager" % "1.4.2",
      "io.grpc" % "grpc-okhttp" % "1.24.0",
      "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.12.2",
      "com.google.cloud" % "google-cloud-secretmanager" % "1.4.2",
      "org.springframework.boot" % "spring-boot-starter-data-jpa" % "2.0.4.RELEASE",
      "com.google.cloud" % "google-cloud-firestore" % "3.11.0"
    )
  )
  .enablePlugins(PackPlugin, sbtdocker.DockerPlugin)
-------------------------------------------------------

**this is the docker file**

FROM openjdk:8-jre-stretch
WORKDIR /script
ADD ./target/pack .
ADD ./script .
USER root
RUN chmod 777 -R /script
RUN echo "deb http://archive.debian.org/debian stretch main contrib non-free" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get install lsb-release -y
RUN apt-get install -my wget gnupg
RUN ln -s $JAVA_HOME/lib $JAVA_HOME/conf
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
    echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list  && \
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
    apt-get update -y && apt-get install google-cloud-sdk -y
meltsufin commented 1 year ago

It looks like a problem related to Firestore and Beam. I suggest that you file a ticket with Google Cloud Support.

ployRun commented 1 year ago

@meltsufin

Got it. Appreciated for your support. I try my best to resolve this issue.