# ansible stuck at setup module

**URL:** <https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475>\
**Category:** Ansible Project\
**Created:** [September 3, 2016, 5:18pm UTC](https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475 "2016-09-03T17:18:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sharuzzaman\_Ahmat\_Ra](https://avatars.discourse-cdn.com/v4/letter/s/3bc359/32.png) [@Sharuzzaman\_Ahmat\_Ra](https://forum.ansible.com/u/Sharuzzaman_Ahmat_Ra)\
**Post date:** [September 3, 2016, 5:18pm UTC](https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475/1 "2016-09-03T17:18:36Z")

</div>

Hi,

Initially my playbook stuck at setup stage for a specific server.

Upon running ansible -vvvv -m setup , the process also stuck.

I have set the environment variable ANSIBLE\_KEEP\_REMOTE\_FILES=1 then trying again, and still stuck.

In the target server, I went to the folder /root/.ansible/tmp/ansible-tmp-1472920749.88-102164203403323 and executed

python -m trace --trace ./setup

it stuck at the last line:

— modulename: subprocess, funcname: close\_unregister\_and\_remove  
subprocess.py(1437): poller.unregister(fd)  
subprocess.py(1438): fd2file[fd].close()  
subprocess.py(1439): fd2file.pop(fd)  
subprocess.py(1461): for fd, mode in ready:  
subprocess.py(1462): if mode & select.POLLOUT:  
subprocess.py(1474): elif mode & select\_POLLIN\_POLLPRI:  
subprocess.py(1475): data = os.read(fd, 4096)  
subprocess.py(1476): if not data:  
subprocess.py(1478): fd2output[fd].append(data)  
subprocess.py(1461): for fd, mode in ready:  
subprocess.py(1453): while fd2file:  
subprocess.py(1454): try:  
subprocess.py(1455): ready = poller.poll()

when pressing ctrl-c, the traceback is:

Traceback (most recent call last):  
File “/usr/lib64/python2.7/runpy.py”, line 162, in \_run\_module\_as\_main  
“ **main** ”, fname, loader, pkg\_name)  
File “/usr/lib64/python2.7/runpy.py”, line 72, in \_run\_code  
exec code in run\_globals  
File “/usr/lib64/python2.7/trace.py”, line 819, in   
main()  
File “/usr/lib64/python2.7/trace.py”, line 807, in main  
t.runctx(code, globs, globs)  
File “/usr/lib64/python2.7/trace.py”, line 513, in runctx  
exec cmd in globals, locals  
File “./setup”, line 237, in   
exitcode = invoke\_module(module, zipped\_mod, ZIPLOADER\_PARAMS)  
File “./setup”, line 62, in invoke\_module  
(stdout, stderr) = p.communicate(json\_params)  
File “/usr/lib64/python2.7/subprocess.py”, line 800, in communicate  
return self.\_communicate(input)  
File “/usr/lib64/python2.7/subprocess.py”, line 1401, in \_communicate  
stdout, stderr = self.\_communicate\_with\_poll(input)  
File “/usr/lib64/python2.7/subprocess.py”, line 1455, in \_communicate\_with\_poll  
ready = poller.poll()  
KeyboardInterrupt

For other machine, they did not stuck at the polling process.

Any idea to troubleshoot further?

Thanks

– extended output –

setup(237): exitcode = invoke\_module(module, zipped\_mod, ZIPLOADER\_PARAMS)  
— modulename: setup, funcname: invoke\_module  
setup(55): pythonpath = os.environ.get(‘PYTHONPATH’)  
— modulename: UserDict, funcname: get  
UserDict.py(59): if key not in self:  
— modulename: UserDict, funcname: **contains**  
UserDict.py(71): return key in self.data  
UserDict.py(60): return failobj  
setup(56): if pythonpath:  
setup(59): os.environ[‘PYTHONPATH’] = modlib\_path  
— modulename: os, funcname: **setitem**  
os.py(471): putenv(key, item)  
os.py(472): self.data[key] = item  
setup(61): p = subprocess.Popen([‘/usr/bin/python’, module], env=os.environ, shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)  
— modulename: subprocess, funcname: **init**  
subprocess.py(656): \_cleanup()  
— modulename: subprocess, funcname: \_cleanup  
subprocess.py(461): for inst in \_active[:]:  
subprocess.py(658): self.\_child\_created = False  
subprocess.py(659): if not isinstance(bufsize, (int, long)):  
subprocess.py(662): if mswindows:  
subprocess.py(672): if startupinfo is not None:  
subprocess.py(675): if creationflags != 0:  
subprocess.py(679): self.stdin = None  
subprocess.py(680): self.stdout = None  
subprocess.py(681): self.stderr = None  
subprocess.py(682): self.pid = None  
subprocess.py(683): self.returncode = None  
subprocess.py(684): self.universal\_newlines = universal\_newlines  
subprocess.py(703): errread, errwrite), to\_close = self.\_get\_handles(stdin, stdout, stderr)  
— modulename: subprocess, funcname: \_get\_handles  
subprocess.py(1104): to\_close = set()  
subprocess.py(1105): p2cread, p2cwrite = None, None  
subprocess.py(1106): c2pread, c2pwrite = None, None  
subprocess.py(1107): errread, errwrite = None, None  
subprocess.py(1109): if stdin is None:  
subprocess.py(1111): elif stdin == PIPE:  
subprocess.py(1112): p2cread, p2cwrite = self.pipe\_cloexec()  
— modulename: subprocess, funcname: pipe\_cloexec  
subprocess.py(1168): r, w = os.pipe()  
subprocess.py(1169): self.\_set\_cloexec\_flag(r)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1170): self.\_set\_cloexec\_flag(w)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1171): return r, w  
subprocess.py(1113): to\_close.update((p2cread, p2cwrite))  
subprocess.py(1120): if stdout is None:  
subprocess.py(1122): elif stdout == PIPE:  
subprocess.py(1123): c2pread, c2pwrite = self.pipe\_cloexec()  
— modulename: subprocess, funcname: pipe\_cloexec  
subprocess.py(1168): r, w = os.pipe()  
subprocess.py(1169): self.\_set\_cloexec\_flag(r)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1170): self.\_set\_cloexec\_flag(w)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1171): return r, w  
subprocess.py(1124): to\_close.update((c2pread, c2pwrite))  
subprocess.py(1131): if stderr is None:  
subprocess.py(1133): elif stderr == PIPE:  
subprocess.py(1134): errread, errwrite = self.pipe\_cloexec()  
— modulename: subprocess, funcname: pipe\_cloexec  
subprocess.py(1168): r, w = os.pipe()  
subprocess.py(1169): self.\_set\_cloexec\_flag(r)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1170): self.\_set\_cloexec\_flag(w)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1171): return r, w  
subprocess.py(1135): to\_close.update((errread, errwrite))  
subprocess.py(1144): return (p2cread, p2cwrite,  
subprocess.py(1145): c2pread, c2pwrite,  
subprocess.py(1146): errread, errwrite), to\_close  
subprocess.py(705): try:  
subprocess.py(706): self.\_execute\_child(args, executable, preexec\_fn, close\_fds,  
subprocess.py(707): cwd, env, universal\_newlines,  
subprocess.py(708): startupinfo, creationflags, shell, to\_close,  
subprocess.py(709): p2cread, p2cwrite,  
subprocess.py(710): c2pread, c2pwrite,  
subprocess.py(711): errread, errwrite)  
— modulename: subprocess, funcname: \_execute\_child  
subprocess.py(1196): if isinstance(args, types.StringTypes):  
subprocess.py(1199): args = list(args)  
subprocess.py(1201): if shell:  
subprocess.py(1206): if executable is None:  
subprocess.py(1207): executable = args[0]  
subprocess.py(1209): def \_close\_in\_parent(fd):  
subprocess.py(1216): errpipe\_read, errpipe\_write = self.pipe\_cloexec()  
— modulename: subprocess, funcname: pipe\_cloexec  
subprocess.py(1168): r, w = os.pipe()  
subprocess.py(1169): self.\_set\_cloexec\_flag(r)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1170): self.\_set\_cloexec\_flag(w)  
— modulename: subprocess, funcname: \_set\_cloexec\_flag  
subprocess.py(1150): try:  
subprocess.py(1151): cloexec\_flag = fcntl.FD\_CLOEXEC  
subprocess.py(1155): old = fcntl.fcntl(fd, fcntl.F\_GETFD)  
subprocess.py(1156): if cloexec:  
subprocess.py(1157): fcntl.fcntl(fd, fcntl.F\_SETFD, old | cloexec\_flag)  
subprocess.py(1171): return r, w  
subprocess.py(1217): try:  
subprocess.py(1218): try:  
subprocess.py(1219): gc\_was\_enabled = gc.isenabled()  
subprocess.py(1222): gc.disable()  
subprocess.py(1223): try:  
subprocess.py(1224): self.pid = os.fork()  
subprocess.py(1229): self.\_child\_created = True  
subprocess.py(1230): if self.pid == 0:  
subprocess.py(1300): if gc\_was\_enabled:  
subprocess.py(1229): self.\_child\_created = True  
subprocess.py(1301): gc.enable()  
subprocess.py(1230): if self.pid == 0:  
subprocess.py(1304): os.close(errpipe\_write)  
subprocess.py(1232): try:  
subprocess.py(1234): if p2cwrite is not None:  
subprocess.py(1308): data = \_eintr\_retry\_call(os.read, errpipe\_read, 1048576)  
subprocess.py(1235): os.close(p2cwrite)  
subprocess.py(1236): if c2pread is not None:  
subprocess.py(1237): os.close(c2pread)  
subprocess.py(1238): if errread is not None:  
subprocess.py(1239): os.close(errread)  
subprocess.py(1240): os.close(errpipe\_read)  
— modulename: subprocess, funcname: \_eintr\_retry\_call  
subprocess.py(1245): if c2pwrite == 0:  
subprocess.py(476): while True:  
subprocess.py(1247): if errwrite == 0 or errwrite == 1:  
subprocess.py(477): try:  
subprocess.py(1251): def \_dup2(a, b):  
subprocess.py(478): return func(\*args)  
subprocess.py(1259): \_dup2(p2cread, 0)  
— modulename: subprocess, funcname: \_dup2  
subprocess.py(1255): if a == b:  
subprocess.py(1257): elif a is not None:  
subprocess.py(1258): os.dup2(a, b)  
subprocess.py(1260): \_dup2(c2pwrite, 1)  
— modulename: subprocess, funcname: \_dup2  
subprocess.py(1255): if a == b:  
subprocess.py(1257): elif a is not None:  
subprocess.py(1258): os.dup2(a, b)  
subprocess.py(1310): if p2cread is not None and p2cwrite is not None:  
subprocess.py(1311): \_close\_in\_parent(p2cread)  
— modulename: subprocess, funcname: \_close\_in\_parent  
subprocess.py(1210): os.close(fd)  
subprocess.py(1211): to\_close.remove(fd)  
subprocess.py(1312): if c2pwrite is not None and c2pread is not None:  
subprocess.py(1313): \_close\_in\_parent(c2pwrite)  
— modulename: subprocess, funcname: \_close\_in\_parent  
subprocess.py(1210): os.close(fd)  
subprocess.py(1211): to\_close.remove(fd)  
subprocess.py(1314): if errwrite is not None and errread is not None:  
subprocess.py(1315): \_close\_in\_parent(errwrite)  
— modulename: subprocess, funcname: \_close\_in\_parent  
subprocess.py(1210): os.close(fd)  
subprocess.py(1211): to\_close.remove(fd)  
subprocess.py(1318): os.close(errpipe\_read)  
subprocess.py(1320): if data != “”:  
subprocess.py(727): if mswindows:  
subprocess.py(735): if p2cwrite is not None:  
subprocess.py(736): self.stdin = os.fdopen(p2cwrite, ‘wb’, bufsize)  
subprocess.py(737): if c2pread is not None:  
subprocess.py(738): if universal\_newlines:  
subprocess.py(741): self.stdout = os.fdopen(c2pread, ‘rb’, bufsize)  
subprocess.py(742): if errread is not None:  
subprocess.py(743): if universal\_newlines:  
subprocess.py(746): self.stderr = os.fdopen(errread, ‘rb’, bufsize)  
setup(62): (stdout, stderr) = p.communicate(json\_params)  
— modulename: subprocess, funcname: communicate  
subprocess.py(780): if [self.stdin, self.stdout, self.stderr].count(None) \>= 2:  
subprocess.py(800): return self.\_communicate(input)  
— modulename: subprocess, funcname: \_communicate  
subprocess.py(1393): if self.stdin:  
subprocess.py(1396): self.stdin.flush()  
subprocess.py(1397): if not input:  
subprocess.py(1400): if \_has\_poll:  
subprocess.py(1401): stdout, stderr = self.\_communicate\_with\_poll(input)  
— modulename: subprocess, funcname: \_communicate\_with\_poll  
subprocess.py(1426): stdout = None # Return  
subprocess.py(1427): stderr = None # Return  
subprocess.py(1428): fd2file = {}  
subprocess.py(1429): fd2output = {}  
subprocess.py(1431): poller = select.poll()  
subprocess.py(1432): def register\_and\_append(file\_obj, eventmask):  
subprocess.py(1436): def close\_unregister\_and\_remove(fd):  
subprocess.py(1441): if self.stdin and input:  
subprocess.py(1442): register\_and\_append(self.stdin, select.POLLOUT)  
— modulename: subprocess, funcname: register\_and\_append  
subprocess.py(1433): poller.register(file\_obj.fileno(), eventmask)  
subprocess.py(1434): fd2file[file\_obj.fileno()] = file\_obj  
subprocess.py(1444): select\_POLLIN\_POLLPRI = select.POLLIN | select.POLLPRI  
subprocess.py(1445): if self.stdout:  
subprocess.py(1446): register\_and\_append(self.stdout, select\_POLLIN\_POLLPRI)  
— modulename: subprocess, funcname: register\_and\_append  
subprocess.py(1433): poller.register(file\_obj.fileno(), eventmask)  
subprocess.py(1434): fd2file[file\_obj.fileno()] = file\_obj  
subprocess.py(1447): fd2output[self.stdout.fileno()] = stdout =   
subprocess.py(1448): if self.stderr:  
subprocess.py(1449): register\_and\_append(self.stderr, select\_POLLIN\_POLLPRI)  
— modulename: subprocess, funcname: register\_and\_append  
subprocess.py(1433): poller.register(file\_obj.fileno(), eventmask)  
subprocess.py(1434): fd2file[file\_obj.fileno()] = file\_obj  
subprocess.py(1450): fd2output[self.stderr.fileno()] = stderr =   
subprocess.py(1452): input\_offset = 0  
subprocess.py(1453): while fd2file:  
subprocess.py(1454): try:  
subprocess.py(1455): ready = poller.poll()  
subprocess.py(1461): for fd, mode in ready:  
subprocess.py(1462): if mode & select.POLLOUT:  
subprocess.py(1463): chunk = input[input\_offset : input\_offset + \_PIPE\_BUF]  
subprocess.py(1464): try:  
subprocess.py(1465): input\_offset += os.write(fd, chunk)  
subprocess.py(1472): if input\_offset \>= len(input):  
subprocess.py(1473): close\_unregister\_and\_remove(fd)  
— modulename: subprocess, funcname: close\_unregister\_and\_remove  
subprocess.py(1437): poller.unregister(fd)  
subprocess.py(1438): fd2file[fd].close()  
subprocess.py(1439): fd2file.pop(fd)  
subprocess.py(1461): for fd, mode in ready:  
subprocess.py(1462): if mode & select.POLLOUT:  
subprocess.py(1474): elif mode & select\_POLLIN\_POLLPRI:  
subprocess.py(1475): data = os.read(fd, 4096)  
subprocess.py(1476): if not data:  
subprocess.py(1478): fd2output[fd].append(data)  
subprocess.py(1461): for fd, mode in ready:  
subprocess.py(1453): while fd2file:  
subprocess.py(1454): try:  
subprocess.py(1455): ready = poller.poll()

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [September 4, 2016, 9:54am UTC](https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475/2 "2016-09-04T09:54:27Z")

</div>

It might be that the node has some file system issues, setup is gathering information about mount points and can be hanging there.

Do running "mount" and/or "df" manually on the node return successfully?

---

<div class="post-metadata">

**Author:** ![Sharuzzaman\_Ahmat\_Ra](https://avatars.discourse-cdn.com/v4/letter/s/3bc359/32.png) [@Sharuzzaman\_Ahmat\_Ra](https://forum.ansible.com/u/Sharuzzaman_Ahmat_Ra)\
**Post date:** [September 5, 2016, 7:49am UTC](https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475/3 "2016-09-05T07:49:25Z")

</div>

mount and df return successfully when I’m in the node

---

<div class="post-metadata">

**Author:** ![Sharuzzaman\_Ahmat\_Ra](https://avatars.discourse-cdn.com/v4/letter/s/3bc359/32.png) [@Sharuzzaman\_Ahmat\_Ra](https://forum.ansible.com/u/Sharuzzaman_Ahmat_Ra)\
**Post date:** [September 6, 2016, 4:22pm UTC](https://forum.ansible.com/t/ansible-stuck-at-setup-module/22475/4 "2016-09-06T16:22:57Z")

</div>

this issue was solved by my colleague

it turns out that there is LVM lock that cause vgs command to stall

clearing that lock, also allow vgs to complete, and ansible to work after that

in summary, if you are stuck with setup, check your filesystem.
