acd_cli icon indicating copy to clipboard operation
acd_cli copied to clipboard

Bug: file fails to download on token refresh (stacktrace attached)

Open iliakan opened this issue 9 years ago • 3 comments

I'm using acd_cli from git.

Here's the stack:

16-08-29 06:57:56.764 [ERROR] [acd_cli] - Traceback (most recent call last):
  File "/usr/local/bin/acd_cli.py", line 246, in wrapped
    ret_val = f(*args, **kwargs)
  File "/usr/local/bin/acd_cli.py", line 677, in download_file
    write_callbacks=[hasher.update, pg_handler.update])
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/content.py", line 280, in download_file
    self.chunked_download(node_id, f, offset=offset, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/common.py", line 48, in decorated
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/content.py", line 319, in chunked_download
    headers={'Range': 'bytes=%d-%d' % (chunk_start, chunk_end)})
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/backoff_req.py", line 125, in get
    return self._request('GET', url, acc_codes, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/common.py", line 48, in decorated
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/backoff_req.py", line 104, in _request
    **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/requests/sessions.py", line 461, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.4/dist-packages/requests/sessions.py", line 394, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/local/lib/python3.4/dist-packages/requests/models.py", line 298, in prepare
    self.prepare_auth(auth, url)
  File "/usr/local/lib/python3.4/dist-packages/requests/models.py", line 500, in prepare_auth
    r = auth(self)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 50, in __call__
    r.headers['Authorization'] = self.get_auth_token()
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 117, in get_auth_token
    self.refresh_auth_token()
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 216, in refresh_auth_token
    self.write_oauth_data()
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 135, in write_oauth_data
    os.rename(self.oauth_data_path, rm_nm)
FileNotFoundError: [Errno 2] No such file or directory: '/root/.cache/acd_cli/oauth_data' -> '/root/.cache/acd_cli/oauth_data39D5868D'

Looks like there was a retry in the middle of the file, and on retry auth token refreshed.

I have the full debug log. Will append if necessary.

iliakan avatar Aug 29 '16 21:08 iliakan

That's odd. Did you use multiple connections?

yadayada avatar Aug 30 '16 03:08 yadayada

acdcli -dd download -r 4 -x 1 /archive/old/foto/2012/2012.part15.rar

iliakan avatar Aug 30 '16 07:08 iliakan

I got the similar error when I was uploading a lot of files (over 100GB in total).

--- Logging error ---
Traceback (most recent call last):
  File "/usr/local/bin/acd_cli.py", line 246, in wrapped
    ret_val = f(*args, **kwargs)
  File "/usr/local/bin/acd_cli.py", line 491, in upload_file
    deduplication=dedup)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/content.py", line 137, in upload_file
    headers={'Content-Type': m.content_type})
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/backoff_req.py", line 128, in post
    return self._request('POST', url, acc_codes, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/common.py", line 48, in decorated
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/backoff_req.py", line 104, in _request
    **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/requests/sessions.py", line 461, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.4/dist-packages/requests/sessions.py", line 394, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/local/lib/python3.4/dist-packages/requests/models.py", line 298, in prepare
    self.prepare_auth(auth, url)
  File "/usr/local/lib/python3.4/dist-packages/requests/models.py", line 500, in prepare_auth
    r = auth(self)
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 50, in __call__
    r.headers['Authorization'] = self.get_auth_token()
  File "/usr/local/lib/python3.4/dist-packages/acdcli/api/oauth.py", line 112, in get_auth_token
    with open(self.oauth_data_path) as oa:
FileNotFoundError: [Errno 2] No such file or directory: '/home/jun06t/.cache/acd_cli/oauth_data'

When I start to upload files, it works well. But after a while it occurs above error and stop uploading. Of course the file '.cache/acd_cli/oauth_data' exists.

my environment is following.

OS: OSX 10.11.6
acdcli: v0.3.2

and the command i used is this.

$ acd_cli --utf upload --overwrite --exclude-ending encfs6.xml ${ACD_HOME}/local/files/* ${ACD_SUB}/

thanks

jun06t avatar Sep 13 '16 04:09 jun06t