Long running Jobs give connectionError when signing in

Open
#1,180 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

Start at the server.auth.sign_in entry point and inspect how its HTTP connection or session behaves after a 10-minute-to-4-hour delay. Reproduce the reported ConnectionError with the stated Python and TSC versions; done means long-running jobs can sign in reliably without caller retry loops, with regression coverage if the project has a relevant test location.

Written by the indexing model from the issue text.

Description

bug needs investigation

Describe the bug

I have a package where I standardize the way we're authenticating. So the server and tableau_auth are initialized on import of my package. Then downstream there are jobs that run anywhere from 10 minutes to 4 hours. But if they use

with server.auth.sign_in(tableau_auth):
  print("do_anything")

It fails. Funnily enough, after it runs I can run the same function and it runs fine.

I can get around it by just trying multiple times for the sign in.

def sign_in():
    for i in range(5):
        try:
            cxn = server.auth.sign_in(tableau_auth)
            return cxn
        except requests.exceptions.ConnectionError as e:
            continue
        except:
            raise
    if i == 5: 
        raise ConnectionError("Failed to connect after 5 attempts")

# and doing
with sign_in():
  print("do_anything")

Versions

Details of your environment, including:

  • tableau online
  • Python version 3.9.12
  • TSC library version =0.18.0

Results

ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

Other Info

I tried to sign in multiple times because of this SO post

NOTE: Be careful not to post user names, passwords, auth tokens or any other private or sensitive information.

Dominant language
Python
Stars
716
Forks
446
Avg merge
8d 8h
Merged PRs (30d)
2

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 tableau/server-client-python

All issues in tableau/server-client-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.