mapbox / mapbox/tilesets-cli

Broken pipe error with upload-source

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

Nobody has claimed this yet.

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

Description

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

`tilesets upload-source 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
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?

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.