
##### SUMMARY
I add a user to a group, execute the meta module reset_connection, check the group association again, just to find that the connection is still the same. And it's still the same ssh session!

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
Meta Module : reset_connection 

##### ANSIBLE VERSION
ansible 2.9.1                                                                                                                                                                         config file = /workspace/ansible_test_2@2/ansible/ansible.cfg                                                                                                                    configured module search path = [u'/var/jenkins_home/.ansible/plugins/modules', u'/usr/shar   e/ansible/plugins/modules']                                                                                                                                                                ansible python module location = /usr/lib/python2.7/site-packages/ansible                                                                                                           executable location = /usr/bin/ansible                                                                                                                                                   python version = 2.7.5 (default, Aug  7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-                                                                                            39)]                                      

```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_SSH_ARGS(/workspace/ansible_test_2@2/ansible/ansible.cfg) = -o ControlMaster=auto -o ControlPersist=30m                                                                           ANSIBLE_SSH_CONTROL_PATH(/workspace/ansible_test_2@2/ansible/ansible.cfg) = %(directory)s/%%h-%%p-%%r                                                                                     DEFAULT_HOST_LIST(/workspace/ansible_test_2@2/ansible/ansible.cfg) = [u'/environmen_data']                                                                                                DEFAULT_REMOTE_USER(/workspace/ansible_test_2@2/ansible/ansible.cfg) = USER                                                                                                               DEFAULT_ROLES_PATH(/workspace/ansible_test_2@2/ansible/ansible.cfg) = [u'/etc/ansible/roles', u'/usr/share/ansible/roles', u'/${WORKSPACE}/ansible/roles', u'/workspace/ansible_test_2@2/aHOST_KEY_CHECKING(/workspace/ansible_test_2@2/ansible/ansible.cfg) = False 
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Targed OS = Red Hat Enterprise Linux Server release 7.7 (Maipo) running a normal docker-ce installation 
Source OS = Docker Container based on a CentOS v5 image, Ansible has been installed manually and it works perfectly. 


##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
Check group association with id shell command, change group association using the normal ansible module -> Check id shell command again. 
<!--- Paste example playbooks or commands between quotes below -->
```yaml
- name: Id Check 1 
  shell: id 
  register: id_output 

- name: Give output of Id Check 1 
  debug: 
   msg: '{{ id_output.stdout }}'

- name: Modify User User group association 
  user: 
   name: '{{ ansible_user }}'
   groups: docker
   append: true
   state: present

- name: reset the SSH_CONNECTION!!!!
  meta: reset_connection 

# Optional , try a docker  command 

- name: try a docker ps command                                                                                                                                                             
  shell: docker ps                                                                                                                                                                          
  register: docker_output                                                                                                                                                                   
  ignore_errors: true                                                                                                                                                                                                                                                                                                                                                               

- name: give output of docker command                                                                                                                                                       
  debug:                                                                                                                                                                                     
   msg: '{{ docker_output.stdout  }}'

- name: Id Check 2 
  shell: id 
  register: id_output_2 

- name: Give output of Id Check 2 
  debug: 
   msg: '{{ id_output_2.stdout }}'

```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
The ansible user is added to the docker group, SSH Connection is resetted so that group association is updated. And the second ID command reflects the new group association.  

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
The session is not interrupted, so that the current session is not updated with the new Group ! Thus i cannot use a docker command.
<!--- Paste verbatim command output between quotes -->
```paste below
The -vvv run of the playbook runs with the META task    .                                                                                                                                                                              META: reset connection 
So maybe i'm missing something,  But i cannot find any indicator that it's the problem with my config file or so. 
```

'''
        Takes a command array and scans it for ControlPersist and ControlPath
        settings and returns two booleans indicating whether either was found.
        This could be smarter, e.g. returning false if ControlPersist is 'no',
        but for now we do it simple way.
        '''
        controlpersist = False
        controlpath = False
        for b_arg in (a.lower() for a in b_command):
            if b'controlpersist' in b_arg:
                controlpersist = True
            elif b'controlpath' in b_arg:
                controlpath = True
        return controlpersist, controlpath
    def _add_args(self, b_command, b_args, explanation):
        """
        Adds arguments to the ssh command and displays a caller-supplied explanation of why.
        :arg b_command: A list containing the command to add the new arguments to.
            This list will be modified by this method.
        :arg b_args: An iterable of new arguments to add.  This iterable is used
            more than once so it must be persistent (ie: a list is okay but a
            StringIO would not)
        :arg explanation: A text string containing explaining why the arguments
            were added.  It will be displayed with a high enough verbosity.
        .. note:: This function does its work via side-effect.  The b_command list has the new arguments appended.
        """
        display.vvvvv(u'SSH: %s: (%s)' % (explanation, ')('.join(to_text(a) for a in b_args)), host=self._play_context.remote_addr)
        b_command += b_args
    def _build_command(self, binary, subsystem, *other_args):