Broken pipe error with upload-source

Open
#101 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
python
Domain
cli

Research direction

Start with mapbox_tilesets/scripts/cli.py, specifically the upload_source and _upload_source entry points shown in the traceback. Reproduce the reported tilesets upload-source command with the provided GeoJSON and flags, then trace the request handling; done means the upload completes without the BrokenPipeError or reports a clear actionable failure.

Written by the indexing model from the issue text.

Description

Similar to #77 , I get the broken pipe error with the following command:

tilesets upload-source <user-name> <project-name> populated_places.geojson.ld with the environment variable and the --token flag. The json is from the example on the website, and I tried another geojson file that passes the validation test. Also, tried with --no-validation flag with the same result.

The error is below:

Traceback (most recent call last):
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 392, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1240, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1286, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1235, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1045, in _send_output
    self.send(chunk)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 967, in send
    self.sock.sendall(data)
  File "/home/chintan/anaconda3/lib/python3.8/ssl.py", line 1204, in sendall
    v = self.send(byte_view[count:])
  File "/home/chintan/anaconda3/lib/python3.8/ssl.py", line 1173, in send
    return self._sslobj.write(data)
BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 724, in urlopen
    retries = retries.increment(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/util/retry.py", line 403, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/packages/six.py", line 734, in reraise
    raise value.with_traceback(tb)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py", line 392, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1240, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1286, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1235, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 1045, in _send_output
    self.send(chunk)
  File "/home/chintan/anaconda3/lib/python3.8/http/client.py", line 967, in send
    self.sock.sendall(data)
  File "/home/chintan/anaconda3/lib/python3.8/ssl.py", line 1204, in sendall
    v = self.send(byte_view[count:])
  File "/home/chintan/anaconda3/lib/python3.8/ssl.py", line 1173, in send
    return self._sslobj.write(data)
urllib3.exceptions.ProtocolError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/chintan/anaconda3/bin/tilesets", line 8, in <module>
    sys.exit(cli())
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/mapbox_tilesets/scripts/cli.py", line 516, in upload_source
    return _upload_source(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/mapbox_tilesets/scripts/cli.py", line 592, in _upload_source
    resp = getattr(s, method)(
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/requests/sessions.py", line 578, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/home/chintan/anaconda3/lib/python3.8/site-packages/requests/adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe'))

My OS info:
lsb_release -a

Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal

Mapbox-tilesets info:
pip show mapbox-tilesets

Name: mapbox-tilesets
Version: 1.4.2
Summary: CLI for interacting with and preparing data for the Tilesets API
Home-page: https://github.com/mapbox/tilesets-cli
Author: Mapbox
Author-email: sam@mapbox.com
License: BSD-2
Location: /home/chintan/anaconda3/lib/python3.8/site-packages
Requires: jsonseq, requests-toolbelt, boto3, requests, jsonschema, click, cligj
Required-by: 

Any help in this regard is appreciated?

Dominant language
Python
Stars
141
Forks
27
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mapbox/tilesets-cli

All issues in mapbox/tilesets-cli

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.