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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions