{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/114","repository_url":"https://api.github.com/repos/GoogleCloudPlatform/pontem","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/114/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/114/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/114/events","html_url":"https://github.com/GoogleCloudPlatform/pontem/issues/114","id":343470934,"node_id":"MDU6SXNzdWUzNDM0NzA5MzQ=","number":114,"title":"'varint overflow -62135596800' occurs with an zero value of timestamp type at restore","user":{"login":"shohhei1126","id":1279170,"node_id":"MDQ6VXNlcjEyNzkxNzA=","avatar_url":"https://avatars0.githubusercontent.com/u/1279170?v=4","gravatar_id":"","url":"https://api.github.com/users/shohhei1126","html_url":"https://github.com/shohhei1126","followers_url":"https://api.github.com/users/shohhei1126/followers","following_url":"https://api.github.com/users/shohhei1126/following{/other_user}","gists_url":"https://api.github.com/users/shohhei1126/gists{/gist_id}","starred_url":"https://api.github.com/users/shohhei1126/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shohhei1126/subscriptions","organizations_url":"https://api.github.com/users/shohhei1126/orgs","repos_url":"https://api.github.com/users/shohhei1126/repos","events_url":"https://api.github.com/users/shohhei1126/events{/privacy}","received_events_url":"https://api.github.com/users/shohhei1126/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-07-23T02:55:47Z","updated_at":"2018-07-24T14:55:50Z","closed_at":null,"author_association":"NONE","body":"When restoring with the recently released google cloud spanner backup feature, but an error occurred. It seems that an error occurs if a zero value(0001-01-01T00:00:00Z) is included in the timestamp type field. It succeeded if null was included.\r\n\r\nschema\r\n```\r\nCREATE TABLE sample (\r\n\tid STRING(MAX),\r\n\ttimestamp1 TIMESTAMP,\r\n) PRIMARY KEY (id)\r\n```\r\n\r\ndata\r\n```\r\nid \ttimestamp1\r\n1\t0001-01-01T00:00:00Z\r\n```\r\n\r\nerror\r\n```\r\nCaused by: java.io.IOException: varint overflow -62135596800\r\n\tat org.apache.beam.sdk.util.VarInt.decodeInt(VarInt.java:65)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.MutationGroupEncoder.decodePrimitive(MutationGroupEncoder.java:454)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.MutationGroupEncoder.decodeModification(MutationGroupEncoder.java:327)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.MutationGroupEncoder.decodeMutation(MutationGroupEncoder.java:281)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.MutationGroupEncoder.decode(MutationGroupEncoder.java:265)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.SpannerIO$BatchFn.processElement(SpannerIO.java:1035)\r\n\tat com.google.cloud.teleport.spanner.connector.spanner.SpannerIO$BatchFn$DoFnInvoker.invokeProcessElement(Unknown Source)\r\n\tat org.apache.beam.runners.core.SimpleDoFnRunner.invokeProcessElement(SimpleDoFnRunner.java:185)\r\n\tat org.apache.beam.runners.core.SimpleDoFnRunner.processElement(SimpleDoFnRunner.java:146)\r\n\tat com.google.cloud.dataflow.worker.SimpleParDoFn.processElement(SimpleParDoFn.java:323)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.ParDoOperation.process(ParDoOperation.java:43)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.OutputReceiver.process(OutputReceiver.java:48)\r\n\tat com.google.cloud.dataflow.worker.GroupAlsoByWindowsParDoFn$1.output(GroupAlsoByWindowsParDoFn.java:181)\r\n\tat com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner$1.outputWindowedValue(GroupAlsoByWindowFnRunner.java:102)\r\n\tat com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowViaIteratorsFn.processElement(BatchGroupAlsoByWindowViaIteratorsFn.java:124)\r\n\tat com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowViaIteratorsFn.processElement(BatchGroupAlsoByWindowViaIteratorsFn.java:53)\r\n\tat com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner.invokeProcessElement(GroupAlsoByWindowFnRunner.java:115)\r\n\tat com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner.processElement(GroupAlsoByWindowFnRunner.java:73)\r\n\tat com.google.cloud.dataflow.worker.GroupAlsoByWindowsParDoFn.processElement(GroupAlsoByWindowsParDoFn.java:113)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.ParDoOperation.process(ParDoOperation.java:43)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.OutputReceiver.process(OutputReceiver.java:48)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.ReadOperation.runReadLoop(ReadOperation.java:200)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.ReadOperation.start(ReadOperation.java:158)\r\n\tat com.google.cloud.dataflow.worker.util.common.worker.MapTaskExecutor.execute(MapTaskExecutor.java:75)\r\n\tat com.google.cloud.dataflow.worker.BatchDataflowWorker.executeWork(BatchDataflowWorker.java:391)\r\n\tat com.google.cloud.dataflow.worker.BatchDataflowWorker.doWork(BatchDataflowWorker.java:360)\r\n\tat com.google.cloud.dataflow.worker.BatchDataflowWorker.getAndPerformWork(BatchDataflowWorker.java:288)\r\n\tat com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.doWork(DataflowBatchWorkerHarness.java:134)\r\n\tat com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.call(DataflowBatchWorkerHarness.java:114)\r\n\tat com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.call(DataflowBatchWorkerHarness.java:101)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n```"},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/comments/407436882","html_url":"https://github.com/GoogleCloudPlatform/pontem/issues/114#issuecomment-407436882","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/pontem/issues/114","id":407436882,"node_id":"MDEyOklzc3VlQ29tbWVudDQwNzQzNjg4Mg==","user":{"login":"EricBeach","id":3344366,"node_id":"MDQ6VXNlcjMzNDQzNjY=","avatar_url":"https://avatars3.githubusercontent.com/u/3344366?v=4","gravatar_id":"","url":"https://api.github.com/users/EricBeach","html_url":"https://github.com/EricBeach","followers_url":"https://api.github.com/users/EricBeach/followers","following_url":"https://api.github.com/users/EricBeach/following{/other_user}","gists_url":"https://api.github.com/users/EricBeach/gists{/gist_id}","starred_url":"https://api.github.com/users/EricBeach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EricBeach/subscriptions","organizations_url":"https://api.github.com/users/EricBeach/orgs","repos_url":"https://api.github.com/users/EricBeach/repos","events_url":"https://api.github.com/users/EricBeach/events{/privacy}","received_events_url":"https://api.github.com/users/EricBeach/received_events","type":"User","site_admin":false},"created_at":"2018-07-24T14:55:49Z","updated_at":"2018-07-24T14:55:49Z","author_association":"MEMBER","body":"@shohhei1126 - The crux of the issue appears to be that 0001-01-01T00:00:00Z, which is a valid Timestamp per https://cloud.google.com/spanner/docs/data-types#timestamp-type, is too large for an integer. See the two lines of code below. I can take a look at filing a bug or trying to submit a fix to the library.\r\n\r\n1.\r\nhttps://github.com/apache/beam/blob/release-2.5.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/MutationGroupEncoder.java#L453\r\n\r\n2.\r\nhttps://github.com/apache/beam/blob/279a05604b83a54e8e5a79e13d8761f94841f326/sdks/java/core/src/main/java/org/apache/beam/sdk/util/VarInt.java#L58\r\n"}}
{"actor":{"display_login":"EricBeach"}}