Bug 2245952

Summary: python-google-cloud-bigquery-storage: FTBFS in Fedora Rawhide
Product: [Fedora] Fedora Reporter: Ben Beasley <code>
Component: python-google-cloud-bigquery-storageAssignee: Ben Beasley <code>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: fkolwa, mhayden, nolear, python-packagers-sig
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://koschei.fedoraproject.org/package/python-google-cloud-bigquery-storage
Whiteboard:
Fixed In Version: python-google-cloud-bigquery-storage-2.22.0-3.fc40 python-google-cloud-bigquery-storage-2.22.0-3.fc39 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-10-24 18:40:12 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ben Beasley 2023-10-24 18:26:38 UTC
Description of problem:
Package python-google-cloud-bigquery-storage fails to build from source in Fedora Rawhide.

Version-Release number of selected component (if applicable):
2.22.0-2.fc39

Steps to Reproduce:
koji build --scratch f40 python-google-cloud-bigquery-storage-2.22.0-2.fc39.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-google-cloud-bigquery-storage

Reproducible: Always

Steps to Reproduce:
1. fedpkg mockbuild
Actual Results:  
=================================== FAILURES ===================================
_____________________________ test_rows_w_scalars ______________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215168440736'>

    def test_rows_w_scalars(class_under_test, mock_gapic_client):
        avro_schema = _bq_to_avro_schema(SCALAR_COLUMNS)
        avro_blocks = _bq_to_avro_blocks(SCALAR_BLOCKS, avro_schema)
        mock_gapic_client.read_rows.return_value = avro_blocks
        reader = class_under_test(mock_gapic_client, "", 0, {})
>       got = tuple(reader.rows())

tests/unit/test_reader_v1.py:209: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:348: in __iter__
    for row in page:
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
_____________________________ test_rows_w_timeout ______________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215160712480'>

    def test_rows_w_timeout(class_under_test, mock_gapic_client):
        bq_columns = [{"name": "int_col", "type": "int64"}]
        avro_schema = _bq_to_avro_schema(bq_columns)
        bq_blocks_1 = [
            [{"int_col": 123}, {"int_col": 234}],
            [{"int_col": 345}, {"int_col": 456}],
        ]
        avro_blocks_1 = _avro_blocks_w_deadline(
            _bq_to_avro_blocks(bq_blocks_1, avro_schema)
        )
        bq_blocks_2 = [[{"int_col": 567}, {"int_col": 789}], [{"int_col": 890}]]
        avro_blocks_2 = _bq_to_avro_blocks(bq_blocks_2, avro_schema)
    
        mock_gapic_client.read_rows.side_effect = (
            avro_blocks_1,
            avro_blocks_2,
        )
    
        reader = class_under_test(
            mock_gapic_client,
            "teststream",
            0,
            {"metadata": {"test-key": "test-value"}},
        )
    
        with pytest.raises(google.api_core.exceptions.DeadlineExceeded):
>           list(reader.rows())

tests/unit/test_reader_v1.py:241: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:348: in __iter__
    for row in page:
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
___________________ test_rows_w_nonresumable_internal_error ____________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215160709360'>

    def test_rows_w_nonresumable_internal_error(class_under_test, mock_gapic_client):
        bq_columns = [{"name": "int_col", "type": "int64"}]
        avro_schema = _bq_to_avro_schema(bq_columns)
        bq_blocks = [[{"int_col": 1024}, {"int_col": 512}], [{"int_col": 256}]]
        avro_blocks = _pages_w_nonresumable_internal_error(
            _bq_to_avro_blocks(bq_blocks, avro_schema)
        )
        mock_gapic_client.read_rows.return_value = avro_blocks
        reader = class_under_test(mock_gapic_client, "teststream", 0, {})
    
        with pytest.raises(
            google.api_core.exceptions.InternalServerError, match="nonresumable error"
        ):
>           list(reader.rows())

tests/unit/test_reader_v1.py:262: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:348: in __iter__
    for row in page:
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
______________ test_rows_w_nonresumable_resource_exhausted_error _______________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215162541392'>

    def test_rows_w_nonresumable_resource_exhausted_error(
        class_under_test, mock_gapic_client
    ):
        bq_columns = [{"name": "int_col", "type": "int64"}]
        avro_schema = _bq_to_avro_schema(bq_columns)
        bq_blocks = [[{"int_col": 1024}, {"int_col": 512}], [{"int_col": 256}]]
        avro_blocks = _pages_w_nonresumable_resource_exhausted_error(
            _bq_to_avro_blocks(bq_blocks, avro_schema)
        )
    
        retry_delay_num_calls = 0
    
        def retry_delay_callback(delay):
            nonlocal retry_delay_num_calls
            retry_delay_num_calls += 1
    
        mock_gapic_client.read_rows.return_value = avro_blocks
        reader = class_under_test(mock_gapic_client, "teststream", 0, {})
    
        with pytest.raises(
            google.api_core.exceptions.ResourceExhausted, match="do not retry"
        ):
>           list(reader.rows())

tests/unit/test_reader_v1.py:289: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:348: in __iter__
    for row in page:
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
____________________________ test_rows_w_reconnect _____________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215160186176'>

    def test_rows_w_reconnect(class_under_test, mock_gapic_client):
        bq_columns = [{"name": "int_col", "type": "int64"}]
        avro_schema = _bq_to_avro_schema(bq_columns)
        bq_blocks_1 = [
            [{"int_col": 123}, {"int_col": 234}],
            [{"int_col": 345}, {"int_col": 456}],
        ]
        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 = _pages_w_resumable_internal_error(
            _bq_to_avro_blocks(bq_blocks_2, avro_schema)
        )
        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}]]
        delay_seconds = 1
        delay_nanos = 234
        avro_blocks_4 = _pages_w_resumable_resource_exhausted_error(
            _bq_to_avro_blocks(bq_blocks_4, avro_schema), delay_seconds, delay_nanos
        )
        bq_blocks_5 = [[{"int_col": 859}, {"int_col": 231}], [{"int_col": 777}]]
        avro_blocks_5 = _bq_to_avro_blocks(bq_blocks_5, avro_schema)
    
        mock_gapic_client.read_rows.side_effect = (
            avro_blocks_1,
            avro_blocks_2,
            avro_blocks_3,
            avro_blocks_4,
            avro_blocks_5,
        )
    
        retry_delay_num_calls = 0
        retry_delay = 0
    
        def retry_delay_callback(delay):
            nonlocal retry_delay_num_calls
            nonlocal retry_delay
            retry_delay_num_calls += 1
            retry_delay = delay
    
        reader = class_under_test(
            mock_gapic_client,
            "teststream",
            0,
            {"metadata": {"test-key": "test-value"}},
            retry_delay_callback=retry_delay_callback,
        )
        got = reader.rows()
    
        expected = tuple(
            itertools.chain(
                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),
                itertools.chain.from_iterable(bq_blocks_5),
            )
        )
    
>       assert tuple(got) == expected

tests/unit/test_reader_v1.py:354: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:348: in __iter__
    for row in page:
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
________________________ test_rows_w_reconnect_by_page _________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215168184976'>

    def test_rows_w_reconnect_by_page(class_under_test, mock_gapic_client):
        bq_columns = [{"name": "int_col", "type": "int64"}]
        avro_schema = _bq_to_avro_schema(bq_columns)
        bq_blocks_1 = [
            [{"int_col": 123}, {"int_col": 234}],
            [{"int_col": 345}, {"int_col": 456}],
        ]
        avro_blocks_1 = _bq_to_avro_blocks(bq_blocks_1, avro_schema)
        bq_blocks_2 = [[{"int_col": 567}, {"int_col": 789}], [{"int_col": 890}]]
        avro_blocks_2 = _bq_to_avro_blocks(bq_blocks_2, avro_schema)
    
        mock_gapic_client.read_rows.side_effect = (
            _pages_w_unavailable(avro_blocks_1),
            avro_blocks_2,
        )
    
        reader = class_under_test(
            mock_gapic_client,
            "teststream",
            0,
            {"metadata": {"test-key": "test-value"}},
        )
        got = reader.rows()
        pages = iter(got.pages)
    
        page_1 = next(pages)
        assert page_1.num_items == 2
        assert page_1.remaining == 2
>       assert tuple(page_1) == tuple(bq_blocks_1[0])

tests/unit/test_reader_v1.py:399: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:516: in next
    return next(self._iter_rows)
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
_________________________ test_to_dataframe_w_scalars __________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215164988752'>

    def test_to_dataframe_w_scalars(class_under_test, mock_gapic_client):
        avro_schema = _bq_to_avro_schema(SCALAR_COLUMNS)
        avro_blocks = _bq_to_avro_blocks(SCALAR_BLOCKS, avro_schema)
    
        mock_gapic_client.read_rows.return_value = avro_blocks
        reader = class_under_test(mock_gapic_client, "", 0, {})
>       got = reader.to_dataframe()

tests/unit/test_reader_v1.py:462: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:299: in to_dataframe
    return self.rows(read_session=read_session).to_dataframe(dtypes=dtypes)
google/cloud/bigquery_storage_v1/reader.py:415: in to_dataframe
    frames = [page.to_dataframe(dtypes=dtypes) for page in self.pages]
google/cloud/bigquery_storage_v1/reader.py:556: in to_dataframe
    return self._stream_parser.to_dataframe(self._message, dtypes=dtypes)
google/cloud/bigquery_storage_v1/reader.py:670: in to_dataframe
    for row in self.to_rows(message):
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
__________________________ test_to_dataframe_w_dtypes __________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215159518944'>

    def test_to_dataframe_w_dtypes(class_under_test, mock_gapic_client):
        avro_schema = _bq_to_avro_schema(
            [
                {"name": "bigfloat", "type": "float64"},
                {"name": "lilfloat", "type": "float64"},
            ]
        )
        blocks = [
            [{"bigfloat": 1.25, "lilfloat": 30.5}, {"bigfloat": 2.5, "lilfloat": 21.125}],
            [{"bigfloat": 3.75, "lilfloat": 11.0}],
        ]
        avro_blocks = _bq_to_avro_blocks(blocks, avro_schema)
    
        mock_gapic_client.read_rows.return_value = avro_blocks
        reader = class_under_test(mock_gapic_client, "", 0, {})
>       got = reader.to_dataframe(dtypes={"lilfloat": "float16"})

tests/unit/test_reader_v1.py:499: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:299: in to_dataframe
    return self.rows(read_session=read_session).to_dataframe(dtypes=dtypes)
google/cloud/bigquery_storage_v1/reader.py:415: in to_dataframe
    frames = [page.to_dataframe(dtypes=dtypes) for page in self.pages]
google/cloud/bigquery_storage_v1/reader.py:556: in to_dataframe
    return self._stream_parser.to_dataframe(self._message, dtypes=dtypes)
google/cloud/bigquery_storage_v1/reader.py:670: in to_dataframe
    for row in self.to_rows(message):
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
__________________________ test_to_dataframe_by_page ___________________________

class_under_test = <class 'google.cloud.bigquery_storage_v1.reader.ReadRowsStream'>
mock_gapic_client = <MagicMock spec='BigQueryReadClient' id='140215167063472'>

    def test_to_dataframe_by_page(class_under_test, mock_gapic_client):
        bq_columns = [
            {"name": "int_col", "type": "int64"},
            {"name": "bool_col", "type": "bool"},
        ]
        avro_schema = _bq_to_avro_schema(bq_columns)
        block_1 = [{"int_col": 123, "bool_col": True}, {"int_col": 234, "bool_col": False}]
        block_2 = [{"int_col": 345, "bool_col": True}, {"int_col": 456, "bool_col": False}]
        block_3 = [{"int_col": 567, "bool_col": True}, {"int_col": 789, "bool_col": False}]
        block_4 = [{"int_col": 890, "bool_col": True}]
        # Break blocks into two groups to test that iteration continues across
        # reconnection.
        bq_blocks_1 = [block_1, block_2]
        bq_blocks_2 = [block_3, block_4]
        avro_blocks_1 = _bq_to_avro_blocks(bq_blocks_1, avro_schema)
        avro_blocks_2 = _bq_to_avro_blocks(bq_blocks_2, avro_schema)
    
        mock_gapic_client.read_rows.side_effect = (
            _pages_w_unavailable(avro_blocks_1),
            avro_blocks_2,
        )
    
        reader = class_under_test(
            mock_gapic_client,
            "teststream",
            0,
            {"metadata": {"test-key": "test-value"}},
        )
        got = reader.rows()
        pages = iter(got.pages)
    
        page_1 = next(pages)
        pandas.testing.assert_frame_equal(
>           page_1.to_dataframe().reset_index(drop=True),
            pandas.DataFrame(block_1, columns=["int_col", "bool_col"]).reset_index(
                drop=True
            ),
        )

tests/unit/test_reader_v1.py:596: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
google/cloud/bigquery_storage_v1/reader.py:556: in to_dataframe
    return self._stream_parser.to_dataframe(self._message, dtypes=dtypes)
google/cloud/bigquery_storage_v1/reader.py:670: in to_dataframe
    for row in self.to_rows(message):
google/cloud/bigquery_storage_v1/reader.py:714: in to_rows
    yield fastavro.schemaless_reader(messageio, self._fastavro_schema)
fastavro/_read.pyx:1126: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:1153: in fastavro._read.schemaless_reader
    ???
fastavro/_read.pyx:743: in fastavro._read._read_data
    ???
fastavro/_read.pyx:616: in fastavro._read.read_record
    ???
fastavro/_read.pyx:735: in fastavro._read._read_data
    ???
fastavro/_read.pyx:526: in fastavro._read.read_union
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   EOFError

fastavro/_read.pyx:176: EOFError
=============================== warnings summary ===============================
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
  /usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(pkg)

../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
  /usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google.cloud')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(pkg)

../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2345
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2345
../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2345
  /usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2345: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(parent)

../../../../usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866
  /usr/lib/python3.12/site-packages/pkg_resources/__init__.py:2866: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google.logging')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(pkg)

../../../../usr/lib/python3.12/site-packages/google/rpc/__init__.py:20
  /usr/lib/python3.12/site-packages/google/rpc/__init__.py:20: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google.rpc')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    pkg_resources.declare_namespace(__name__)

<frozen importlib._bootstrap>:488
  <frozen importlib._bootstrap>:488: DeprecationWarning: Type google.protobuf.pyext._message.ScalarMapContainer uses PyType_Spec with a metaclass that has custom tp_new. This is deprecated and will no longer be allowed in Python 3.14.

<frozen importlib._bootstrap>:488
  <frozen importlib._bootstrap>:488: DeprecationWarning: Type google.protobuf.pyext._message.MessageMapContainer uses PyType_Spec with a metaclass that has custom tp_new. This is deprecated and will no longer be allowed in Python 3.14.

../../../../usr/lib64/python3.12/site-packages/google/protobuf/internal/well_known_types.py:92
  /usr/lib64/python3.12/site-packages/google/protobuf/internal/well_known_types.py:92: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
    _EPOCH_DATETIME = datetime.utcfromtimestamp(0)

../../../../usr/lib/python3.12/site-packages/proto/datetime_helpers.py:24
  /usr/lib/python3.12/site-packages/proto/datetime_helpers.py:24: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
    _UTC_EPOCH = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=datetime.timezone.utc)

tests/unit/gapic/bigquery_storage_v1/test_big_query_read.py::test_big_query_read_client_from_service_account_info[BigQueryReadAsyncClient-grpc_asyncio]
  /usr/lib64/python3.12/site-packages/grpc/aio/_channel.py:290: DeprecationWarning: There is no current event loop
    self._loop = cygrpc.get_working_loop()

tests/unit/gapic/bigquery_storage_v1/test_big_query_read.py: 75 warnings
tests/unit/gapic/bigquery_storage_v1/test_big_query_write.py: 147 warnings
tests/unit/gapic/bigquery_storage_v1beta2/test_big_query_read.py: 75 warnings
tests/unit/gapic/bigquery_storage_v1beta2/test_big_query_write.py: 147 warnings
  /usr/lib/python3.12/site-packages/google/api_core/datetime_helpers.py:45: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    return datetime.datetime.utcnow()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/unit/test_reader_v1.py::test_rows_w_scalars - EOFError
FAILED tests/unit/test_reader_v1.py::test_rows_w_timeout - EOFError
FAILED tests/unit/test_reader_v1.py::test_rows_w_nonresumable_internal_error
FAILED tests/unit/test_reader_v1.py::test_rows_w_nonresumable_resource_exhausted_error
FAILED tests/unit/test_reader_v1.py::test_rows_w_reconnect - EOFError
FAILED tests/unit/test_reader_v1.py::test_rows_w_reconnect_by_page - EOFError
FAILED tests/unit/test_reader_v1.py::test_to_dataframe_w_scalars - EOFError
FAILED tests/unit/test_reader_v1.py::test_to_dataframe_w_dtypes - EOFError
FAILED tests/unit/test_reader_v1.py::test_to_dataframe_by_page - EOFError
================= 9 failed, 506 passed, 459 warnings in 3.69s ==================

Expected Results:  
All tests pass.

It looks like this is a regression associated with python-fastavro 1.8.4, even though python-google-cloud-bigquery-storage has only an indirect dependency on python-fastavro.

Based on that knowledge, I found the corresponding upstream https://github.com/googleapis/python-bigquery-storage/issues/683 and the PR https://github.com/googleapis/python-bigquery-storage/pull/687 which seems to fix it.

I have revoked the python-fastavro-1.8.4 update for Fedora 39, https://bodhi.fedoraproject.org/updates/FEDORA-2023-abedc4b179 until this package can be fixed.

Comment 1 Fedora Update System 2023-10-24 18:39:13 UTC
FEDORA-2023-3f82735712 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-3f82735712

Comment 2 Fedora Update System 2023-10-24 18:40:12 UTC
FEDORA-2023-3f82735712 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 3 Fedora Update System 2023-10-24 19:20:25 UTC
FEDORA-2023-427f7d3cbb has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-427f7d3cbb

Comment 4 Fedora Update System 2023-10-25 02:53:17 UTC
FEDORA-2023-427f7d3cbb has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-427f7d3cbb`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-427f7d3cbb

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2023-11-03 18:45:49 UTC
FEDORA-2023-427f7d3cbb has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.