'Python script stuck in connecting to Windows computer and exits with error 107

I run this script:

The script runs in a loop on an host_ips, connects to each of them and runs a bat file in the command

from socket import *
from pypsexec.client import Client


class Windows(object):
    def __init__(self, ip, username, password):
        self.ip = ip
        self.username = username
        self.password = password
        self.cmd_exe = "C:\\Windows\\System32\\cmd.exe"
        self.windows_client = self.connect_to_windows_client()

    def connect_to_windows_client(self):
        windows_client = self.windows_connect(self.ip, self.username, self.password)
        if windows_client is not None:
            return windows_client
        self.log.error("Connection error to {}".format(self.ip))

    @staticmethod
    def windows_connect(address, username, pwd):
        try:
            windows_client = Client(address, username=username, password=pwd, encrypt=False)
            windows_client.connect()
            windows_client.create_service()
            return windows_client
        except Exception:
            print("Your Username and Password of " + getfqdn(address) + " are wrong.")
            return False


xtenders = ['host_ip1', 'host_ip2']


def main():
    for x in xtenders:
        print x
        x = Windows(x, "user_name", "password")
        result = x.windows_client.run_executable('C:\\file_bat_directory\\file.bat')
        x.windows_client.remove_service()
        x.windows_client.disconnect()
        print result


if __name__ == '__main__':
    main()

Sometimes the script run ok, but sometimes it is stuck when he connect to machine, it is print the host_ip, waits a few minutes and exit with the following error:

'host_ip1'    
Exception in thread msg_worker-'host_ip1':445:
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/threading.py", line 812, in __bootstrap_inner
        self.run()
      File "/usr/lib64/python2.7/threading.py", line 765, in run
        self.__target(*self.__args, **self.__kwargs)
      File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/connection.py", line 1199, in _process_message_thread
        self.disconnect(False)
      File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/connection.py", line 799, in disconnect
        self.transport.close()
      File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/transport.py", line 89, in close
        self._sock.shutdown(socket.SHUT_RDWR)
      File "/usr/lib64/python2.7/socket.py", line 224, in meth
        return getattr(self._sock,name)(*args)
    error: [Errno 107] Transport endpoint is not connected

Traceback (most recent call last):
  File "file_name.py", line 44, in <module>
    main()
  File "file_name.py", line 39, in main
    result = x.windows_client.run_executable('C:\\file_bat_directory\\file.bat')
  File "/home/amirh/.local/lib/python2.7/site-packages/pypsexec/client.py", line 395, in run_executable
    main_pipe.write(start_msg.pack(), 0)
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/open.py", line 1382, in write
    return self._write_response(request, wait)
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/open.py", line 1388, in _write_response
    response = self.connection.receive(request, wait=wait)
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/connection.py", line 859, in receive
    self._check_worker_running()  # The worker may have failed while waiting for the response, check again
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/connection.py", line 1004, in _check_worker_running
    self.disconnect(False)
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/connection.py", line 799, in disconnect
    self.transport.close()
  File "/home/amirh/.local/lib/python2.7/site-packages/smbprotocol/transport.py", line 89, in close
    self._sock.shutdown(socket.SHUT_RDWR)
  File "/usr/lib64/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 107] Transport endpoint is not connected

How can I fix this?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source