Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: specified bucket does not exist in TestParquetPyArrow.test_s3_roundtrip_explicit_fs #35856

Closed
charlesdong1991 opened this issue Aug 22, 2020 · 6 comments · Fixed by #35895
Labels
CI Continuous Integration

Comments

@charlesdong1991
Copy link
Member

might be related to #35655

================================== FAILURES ===================================
______________ TestParquetPyArrow.test_s3_roundtrip_explicit_fs _______________
[gw2] win32 -- Python 3.8.5 C:\Miniconda\envs\pandas-dev\python.exe

self = <pandas.tests.io.test_parquet.TestParquetPyArrow object at 0x000002B24268BF10>
df_compat =    A    B
0  1  foo
1  2  foo
2  3  foo
s3_resource = s3.ServiceResource(), pa = 'pyarrow'
s3so = {'client_kwargs': {'endpoint_url': 'http://127.0.0.1:5555/'}}

    def test_s3_roundtrip_explicit_fs(self, df_compat, s3_resource, pa, s3so):
        s3fs = pytest.importorskip("s3fs")
        if LooseVersion(pyarrow.__version__) <= LooseVersion("0.17.0"):
            pytest.skip()
        s3 = s3fs.S3FileSystem(**s3so)
        kw = dict(filesystem=s3)
>       check_round_trip(
            df_compat,
            pa,
            path="pandas-test/pyarrow.parquet",
            read_kwargs=kw,
            write_kwargs=kw,
        )

        service_id = self._service_model.service_id.hyphenize()
        handler, event_response = self.meta.events.emit_until_response(
            'before-call.{service_id}.{operation_name}'.format(
                service_id=service_id,
                operation_name=operation_name),
            model=operation_model, params=request_dict,
            request_signer=self._request_signer, context=request_context)
    
        if event_response is not None:
            http, parsed_response = event_response
        else:
            http, parsed_response = self._make_request(
                operation_model, request_dict, request_context)
    
        self.meta.events.emit(
            'after-call.{service_id}.{operation_name}'.format(
                service_id=service_id,
                operation_name=operation_name),
            http_response=http, parsed=parsed_response,
            model=operation_model, context=request_context
        )
    
        if http.status_code >= 300:
            error_code = parsed_response.get("Error", {}).get("Code")
            error_class = self.exceptions.from_code(error_code)
>           raise error_class(parsed_response, operation_name)
E           botocore.errorfactory.NoSuchBucket: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist
@charlesdong1991 charlesdong1991 added Bug Needs Triage Issue that has not been reviewed by a pandas team member CI Continuous Integration and removed Bug Needs Triage Issue that has not been reviewed by a pandas team member labels Aug 22, 2020
@TomAugspurger
Copy link
Contributor

@martindurant will you have time to look into this? I'm unsure if it's related to your recent moto changes.

@martindurant
Copy link
Contributor

Are any tests being run in parallel here? That was suggested elsewhere as a possibility, and would for certain cause races.

@TomAugspurger
Copy link
Contributor

Yes, I think that is in parallel. I'll try putting up a PR marking them as single to see if that fixes things.

@martindurant
Copy link
Contributor

The fixture could be changed to produce a random bucket for each test function, which would take some work to get the right kwargs to each s3 call.

@TomAugspurger
Copy link
Contributor

I tried that briefly, but it's a bit hard to do the synchronization since we need to start the moto server exactly once, and it needs to live until all the workers are done.

Probably best to just mark these as single.

TomAugspurger added a commit to TomAugspurger/pandas that referenced this issue Aug 25, 2020
Closes pandas-dev#35856

I think we need to update the pytest pattern though, so this should
fail.
TomAugspurger added a commit that referenced this issue Aug 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI Continuous Integration
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants