[ https://issues.apache.org/jira/browse/BEAM-12504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Minbo Bae updated BEAM-12504: ----------------------------- Attachment: spanner_graph.png spanner_error.png > SpannerIO Read SessionNotFoundException for long-running pipline > ---------------------------------------------------------------- > > Key: BEAM-12504 > URL: https://issues.apache.org/jira/browse/BEAM-12504 > Project: Beam > Issue Type: Bug > Components: io-java-gcp > Reporter: Minbo Bae > Priority: P2 > Attachments: spanner_error.png, spanner_graph.png > > > [SpannderIO|https://github.com/apache/beam/blob/v2.30.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java#L328] > creates a transaction session with > [CreateTransaction|https://github.com/apache/beam/blob/v2.30.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java#L747] > at the beginning of pipeline run. If the pipeline takes a long time to run > SpannerIO.ReadAll like the following, the session can be [cleaned > up|https://cloud.google.com/spanner/docs/sessions#keep_an_idle_session_alive] > by Spanner service. The read step fails with error > `com.google.cloud.spanner.SessionNotFoundException: NOT_FOUND: > com.google.api.gax.rpc.NotFoundException: io.grpc.StatusRuntimeException: > NOT_FOUND: Session not found: > projects/<PROJECT>/instances/<INSTANCE>/databases/<DATABASE>/sessions/<SESSION_ID>` > > PCollection<ReadOperation> queries = pipeline > .apply(Create.of((Void)null)) > .apply("BeforeRead", ParDo.of( ... )); // long running. for example more > than 2 hours > queries > .apply(SpanerIO.readAll().withSpannerConfig(...)) > .apply("AfterRead", ParDo.of( ... )); > > -- This message was sent by Atlassian Jira (v8.3.4#803005)