EBADF is "Bad file descriptor", which on a close() is supposed to mean it's not open. On the truss output, prior to the 'close(9)', do you see an open() that returns the 9 file descriptor ?
On Thursday, May 19, 2022 at 2:23:29 PM UTC+1 Benjamin Lienard wrote: > Hello, > > We use Ansible to manage our +/- 450 AIX lpars & wpars + some linux and > some Solaris server. > > For the big picture : > > The ansible server is an AIX lpar with 5 CPU POWER9 in SMT8 mode ( 40 > threads ), 128 Gb of ram. we use ssh multiplexing, SAN disks, etc. > > All is well configured and any other program that we run for admin on this > LPAR is lightspeed execution. The ansible setup is done by a collogue of > mine. > > Some day ago I have to run a role that I've write to simply copy a a file > on multiple LPARs and... it was slow as hell! > > Here the result of time .... > real 57m59.909s > user 21m35.657s > *sys 40m17.558s* > > The system time is, for me, way too high. > > One more information: we use vaults. > > I've made some truss and I see that the process do an inimaginable number > of errors "close" with the following code: EBADF > > 22610386: 88670545: close(9) Err#9 > EBADF > > The number of of syscall is almsot 2Million / minute. > > I've done a truss -fc for the ansible command and the profile is the > following : > ( I've stopped it, running for 3hours and not finished ) > > signals ------------ > SIGHUP 17 > SIGTERM 5 > SIGCHLD 55 > total: 77 > > syscall seconds calls errors > kfork 86.39 10130 > execve 74.58 9109 1 > thread_create .00 613 > kill .00 8 1 > getuidx .06 126144 > getgidx .03 82074 > checkpnt_block .00 38382 > _exit .00 9859 > kwaitpid .01 82043 54 > getprocs64 .00 2 > getprocs .01 8313 > appgetrlimit .00 2 > getrpid .00 8315 > __ksetjmp .00 60 > _sigaction .08 215799 > sigprocmask .06 164428 > thread_waitlock_ .00 2090 > thread_unlock_ .03 627360 > thread_twakeup .00 9352 > thread_tsleep .05 14477 > kthread_ctl .00 602 > thread_setstate .00 613 > thread_setmymask_fast .03 83114 > thread_setmystate_fas .00 2113 > thread_setmystate .01 80825 > thread_init .00 8315 > times .00 3 > _nsleep .00 10 2 > ksetcontext_sigreturn .00 55 > getgroups .00 15 > getkerninfo .00 1 > getpeereid .00 16 > ngetpeername .00 48 > ngetsockname .00 70 > getsockopt .14 233929 5 > setsockopt .01 16782 > shutdown .00 129 > _enrecvmsg .00 52 4 > _erecv .01 17694 2807 > _enrecvfrom .00 30 > _ensendmsg .03 24852 > _esend .01 12216 > accept1 .00 16 > listen .00 19 > bind .00 19 > socket .02 16869 > connext .05 16850 64 > gethostname .00 8314 > unicount .00 1 > close 214.11597170646 595396092 > kwrite .02 36669 > kread 7.40 669885 29591 > klseek .05 219649 > lseek .57 1965085 56688 > kloadquery .00 2 > _select .14 508357 > _poll 1.20 39916 20 > sysconfig .00 1 > sys_parm .00 9045 > chmod .00 1 > finfo .00 1 > getdirent64 .14 335910 > getdirent .03 151048 > kioctl .10 323190 258064 > link .00 20 > mkdir .00 3 1 > mknodat .00 3 > mntctl .06 134364 > kopen .48 474148 27041 > rename .00 3 > fstatx .13 497636 > statx .57 991522 79975 > readlink .00 6 1 > umask .00 9086 > uname .00 9048 > unlink .00 42 1 > _sem_wait .00 3654 3 > _sem_open .00 641 > sem_unlink .00 641 > sem_post .00 3650 > sem_getvalue .00 3650 > read_sysconfig 1.20 9108 > __libc_sbrk .03 44142 > sbrk .01 26586 > sigaltstack .00 1 > appulimit .00 8315 > _setsid .00 5 > _getpgrp .00 2 > _getppid .00 733 > _thread_self .08 252144 > _getpid .06 208113 > pipe .01 35446 > mprotect .00 3529 > munmap .09 15101 > mmap .04 18081 > vmgetinfo .01 17423 > corral_getcid .00 1 > smcr_procattr .00 8315 > access .00 8439 4 > kfcntl .24 961488 10 > kusla .00 2263 > kload .02 2888 629 > accessx .09 155777 63642 > __statxacl .00 1 > getpriv .00 9045 > _kgrantpt .00 1346 > loadquery .02 49878 > __loadx .88 1015019 > ---- --- --- > sys totals: .00608342843 595914700 > usr time: .00 > elapsed: .00 > > You can see the number of close error. I don't have word to describe that. > If I run ansible with only one host, the close is not present. > I've search on the net for any kind of information about that but I don't > find any. > > Here the ansible --vesion > > /opt/ansible$ ansible --version > ansible 2.9.14 > config file = /opt/ansible/ansible.cfg > configured module search path = ['/home/XXXX/.ansible/plugins/modules', > '/usr/share/ansible/plugins/modules'] > ansible python module location = > /opt/freeware/lib/python3.7/site-packages/ansible > executable location = /usr/bin/ansible > python version = 3.7.11 (default, Sep 6 2021, 10:46:05) [GCC 8.3.0] > > Do some one have an idea about that ? > > Thank you! > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0ef0248b-a4ba-40ce-b7b2-5a430c40b19an%40googlegroups.com.
