From af9dba67b940747687a70899a8e1b357ce7e466e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Jul 2021 16:47:47 +0200 Subject: [PATCH 1/7] chore(deps): update dependency google-cloud-bigquery-storage to v2.6.2 (#244) --- samples/quickstart/requirements.txt | 2 +- samples/to_dataframe/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/quickstart/requirements.txt b/samples/quickstart/requirements.txt index ca069335..204c2729 100644 --- a/samples/quickstart/requirements.txt +++ b/samples/quickstart/requirements.txt @@ -1,2 +1,2 @@ fastavro -google-cloud-bigquery-storage==2.6.0 +google-cloud-bigquery-storage==2.6.2 diff --git a/samples/to_dataframe/requirements.txt b/samples/to_dataframe/requirements.txt index 1435a6fc..95260d1a 100644 --- a/samples/to_dataframe/requirements.txt +++ b/samples/to_dataframe/requirements.txt @@ -1,5 +1,5 @@ google-auth==1.34.0 -google-cloud-bigquery-storage==2.6.0 +google-cloud-bigquery-storage==2.6.2 google-cloud-bigquery==2.23.0 pyarrow==4.0.1 ipython==7.24.0; python_version > '3.6' From f93d336c99232370dd52fb2c098e213296489011 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Jul 2021 21:46:09 +0200 Subject: [PATCH 2/7] chore(deps): update dependency pyarrow to v5 (#255) --- samples/to_dataframe/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/to_dataframe/requirements.txt b/samples/to_dataframe/requirements.txt index 95260d1a..0e0d4c79 100644 --- a/samples/to_dataframe/requirements.txt +++ b/samples/to_dataframe/requirements.txt @@ -1,7 +1,7 @@ google-auth==1.34.0 google-cloud-bigquery-storage==2.6.2 google-cloud-bigquery==2.23.0 -pyarrow==4.0.1 +pyarrow==5.0.0 ipython==7.24.0; python_version > '3.6' ipython==7.16.1; python_version <= '3.6' pandas==1.2.5; python_version > '3.6' From 41b9f427f1fc3da1c20eaf72d8f9d47e5f86b6c4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Jul 2021 22:01:48 +0200 Subject: [PATCH 3/7] chore(deps): update dependency google-cloud-bigquery to v2.23.1 (#254) --- samples/to_dataframe/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/to_dataframe/requirements.txt b/samples/to_dataframe/requirements.txt index 0e0d4c79..c06b7f29 100644 --- a/samples/to_dataframe/requirements.txt +++ b/samples/to_dataframe/requirements.txt @@ -1,6 +1,6 @@ google-auth==1.34.0 google-cloud-bigquery-storage==2.6.2 -google-cloud-bigquery==2.23.0 +google-cloud-bigquery==2.23.1 pyarrow==5.0.0 ipython==7.24.0; python_version > '3.6' ipython==7.16.1; python_version <= '3.6' From 45ee695aee61657514d91a33a981b1bfaba2a9fe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Jul 2021 21:36:55 +0200 Subject: [PATCH 4/7] chore(deps): update dependency google-cloud-bigquery to v2.23.2 (#256) --- samples/to_dataframe/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/to_dataframe/requirements.txt b/samples/to_dataframe/requirements.txt index c06b7f29..6a851c9c 100644 --- a/samples/to_dataframe/requirements.txt +++ b/samples/to_dataframe/requirements.txt @@ -1,6 +1,6 @@ google-auth==1.34.0 google-cloud-bigquery-storage==2.6.2 -google-cloud-bigquery==2.23.1 +google-cloud-bigquery==2.23.2 pyarrow==5.0.0 ipython==7.24.0; python_version > '3.6' ipython==7.16.1; python_version <= '3.6' From 1ac13561b7e555df32705dd8b7072fe70b2a4488 Mon Sep 17 00:00:00 2001 From: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Date: Mon, 2 Aug 2021 16:42:02 -0600 Subject: [PATCH 5/7] chore: require CODEOWNER review and up to date branches (#260) These two lines bring the rules on this repo in line with the defaults: https://github.com/googleapis/repo-automation-bots/blob/63c858e539e1f4d9bb8ea66e12f9c0a0de5fef55/packages/sync-repo-settings/src/required-checks.json#L40-L50 --- .github/sync-repo-settings.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index af599353..0ddb512d 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -4,6 +4,8 @@ branchProtectionRules: # Identifies the protection rule pattern. Name of the branch to be protected. # Defaults to `master` - pattern: master + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: true requiredStatusCheckContexts: - 'Kokoro' - 'cla/google' From 127caa06144b9cec04b23914b561be6a264bcb36 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Fri, 6 Aug 2021 11:58:36 -0500 Subject: [PATCH 6/7] fix: resume read stream on `Unknown` transport-layer exception (#263) --- google/cloud/bigquery_storage_v1/reader.py | 7 +++++- tests/unit/test_reader_v1.py | 27 +++++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/google/cloud/bigquery_storage_v1/reader.py b/google/cloud/bigquery_storage_v1/reader.py index a8cd226c..fd6e630c 100644 --- a/google/cloud/bigquery_storage_v1/reader.py +++ b/google/cloud/bigquery_storage_v1/reader.py @@ -39,7 +39,12 @@ pyarrow = None -_STREAM_RESUMPTION_EXCEPTIONS = (google.api_core.exceptions.ServiceUnavailable,) +_STREAM_RESUMPTION_EXCEPTIONS = ( + google.api_core.exceptions.ServiceUnavailable, + # Caused by transport-level error. No status code was received. + # https://github.com/googleapis/python-bigquery-storage/issues/262 + google.api_core.exceptions.Unknown, +) # The Google API endpoint can unexpectedly close long-running HTTP/2 streams. # Unfortunately, this condition is surfaced to the caller as an internal error diff --git a/tests/unit/test_reader_v1.py b/tests/unit/test_reader_v1.py index 838ef51a..94d63c0c 100644 --- a/tests/unit/test_reader_v1.py +++ b/tests/unit/test_reader_v1.py @@ -103,6 +103,12 @@ def _pages_w_unavailable(pages): raise google.api_core.exceptions.ServiceUnavailable("test: please reconnect") +def _pages_w_unknown(pages): + for page in pages: + yield page + raise google.api_core.exceptions.Unknown("No status received") + + def _avro_blocks_w_deadline(avro_blocks): for block in avro_blocks: yield block @@ -237,14 +243,19 @@ def test_rows_w_reconnect(class_under_test, mock_gapic_client): ] avro_blocks_1 = _pages_w_unavailable(_bq_to_avro_blocks(bq_blocks_1, avro_schema)) bq_blocks_2 = [[{"int_col": 1024}, {"int_col": 512}], [{"int_col": 256}]] - avro_blocks_2 = _bq_to_avro_blocks(bq_blocks_2, avro_schema) avro_blocks_2 = _pages_w_resumable_internal_error( _bq_to_avro_blocks(bq_blocks_2, avro_schema) ) - bq_blocks_3 = [[{"int_col": 567}, {"int_col": 789}], [{"int_col": 890}]] - avro_blocks_3 = _bq_to_avro_blocks(bq_blocks_3, avro_schema) - - mock_gapic_client.read_rows.side_effect = (avro_blocks_2, avro_blocks_3) + bq_blocks_3 = [[{"int_col": -1}, {"int_col": -2}], [{"int_col": -4}]] + avro_blocks_3 = _pages_w_unknown(_bq_to_avro_blocks(bq_blocks_3, avro_schema)) + bq_blocks_4 = [[{"int_col": 567}, {"int_col": 789}], [{"int_col": 890}]] + avro_blocks_4 = _bq_to_avro_blocks(bq_blocks_4, avro_schema) + + mock_gapic_client.read_rows.side_effect = ( + avro_blocks_2, + avro_blocks_3, + avro_blocks_4, + ) reader = class_under_test( avro_blocks_1, @@ -260,6 +271,7 @@ def test_rows_w_reconnect(class_under_test, mock_gapic_client): itertools.chain.from_iterable(bq_blocks_1), itertools.chain.from_iterable(bq_blocks_2), itertools.chain.from_iterable(bq_blocks_3), + itertools.chain.from_iterable(bq_blocks_4), ) ) @@ -267,9 +279,12 @@ def test_rows_w_reconnect(class_under_test, mock_gapic_client): mock_gapic_client.read_rows.assert_any_call( read_stream="teststream", offset=4, metadata={"test-key": "test-value"} ) - mock_gapic_client.read_rows.assert_called_with( + mock_gapic_client.read_rows.assert_any_call( read_stream="teststream", offset=7, metadata={"test-key": "test-value"} ) + mock_gapic_client.read_rows.assert_called_with( + read_stream="teststream", offset=10, metadata={"test-key": "test-value"} + ) def test_rows_w_reconnect_by_page(class_under_test, mock_gapic_client): From 71aae60e3ac26ef16981ece5266f7000ce0853aa Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 9 Aug 2021 08:44:41 -0500 Subject: [PATCH 7/7] chore: release 2.6.3 (#265) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ setup.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72f0f26a..07971c0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://pypi.org/project/google-cloud-bigquery-storage/#history +### [2.6.3](https://www.github.com/googleapis/python-bigquery-storage/compare/v2.6.2...v2.6.3) (2021-08-06) + + +### Bug Fixes + +* resume read stream on `Unknown` transport-layer exception ([#263](https://www.github.com/googleapis/python-bigquery-storage/issues/263)) ([127caa0](https://www.github.com/googleapis/python-bigquery-storage/commit/127caa06144b9cec04b23914b561be6a264bcb36)) + ### [2.6.2](https://www.github.com/googleapis/python-bigquery-storage/compare/v2.6.1...v2.6.2) (2021-07-28) diff --git a/setup.py b/setup.py index 2bef8ac6..6c34f388 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ name = "google-cloud-bigquery-storage" description = "BigQuery Storage API API client library" -version = "2.6.2" +version = "2.6.3" release_status = "Development Status :: 5 - Production/Stable" dependencies = [ # NOTE: Maintainers, please do not require google-api-core>=2.x.x