Skip to content

connection stops being reused after error hit #16

@ellieayla

Description

@ellieayla

The function xmlclient.py:SoapEnvelope.post() is called with conn as an instance of a httplib.HTTPSConnection produced by makeConnection().

The "conn" variable is, however, sometimes recreated inside here with conn = makeConnection(scheme, host). This doesn't make much sense for recovery, since it will never be propagated back up to the caller's __conn. The only valid use-case is when the caller didn't pass a connection (which does happen in Client.login() until Client.useSession() is called immediately after.

But if an exception is thrown, this sets conn=None and then makes a new local conn on the next pass.

         except (httplib.HTTPException, socket.error):
            if conn != None:
                conn.close()
                conn = None
                response = None

I think this reconnect loop was born of frustration without thinking things through.

It probably makes more sense to never set conn = None, and just do a conn.close(). The next iteration's conn.request() will cause a new open, if required, since conn.auto_open=True.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions