I’ve been driving myself nuts trying to resolve a problem with running Asterisk under selinux
I’ve worked through all the various permissions, and have asterisk running just fine as far as functionality is concerned (i.e. no errors loading anything, and no selinux errors whether run as permissive or enforcing).
However, once I run it under Enforcing, the CPU jumps to 100%, and stays there.
Here’s what strace has to say about it (over and over again):
$ sudo strace -fp 5640
[pid 5640] write(1, “\0”, 1 <unfinished …>
[pid 5640] <… write resumed> ) = 1
[pid 6353] epoll_wait(22, <unfinished …>
[pid 6238] epoll_wait(12, <unfinished …>
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 6353] <… epoll_wait resumed> , 16, 10) = 0
[pid 6238] <… epoll_wait resumed> , 16, 10) = 0
[pid 5640] write(1, “\0”, 1 <unfinished …>
[pid 6353] epoll_wait(22, <unfinished …>
[pid 6238] epoll_wait(12, <unfinished …>
[pid 5640] <… write resumed> ) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 6353] <… epoll_wait resumed> , 16, 10) = 0
[pid 6238] <… epoll_wait resumed> , 16, 10) = 0
[pid 6353] epoll_wait(22, <unfinished …>
[pid 6238] epoll_wait(12, <unfinished …>
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
[pid 5640] poll([{fd=-1}, {fd=0, events=POLLIN}], 2, -1) = 1 ([{fd=0, revents=POLLIN}])
[pid 5640] read(0, “”, 1) = 0
[pid 5640] write(1, “\0”, 1) = 1
And if I look at the file handles for Asterisk, I get this:
$ sudo ls /proc/5640/fd -l
total 0
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 0 -> /null
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 1 -> /null
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 10 -> socket:[27400]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 11 -> socket:[27402]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 12 -> anon_inode:[eventpoll]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 13 -> socket:[27592]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 14 -> socket:[27593]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 15 -> socket:[27490]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 16 -> socket:[27531]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 17 -> socket:[27595]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 18 -> socket:[27596]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 19 -> socket:[27597]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 2 -> /null
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 20 -> socket:[27598]
lr-x------. 1 asterisk asterisk 64 Mar 17 23:32 21 -> /dev/urandom
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 22 -> anon_inode:[eventpoll]
lr-x------. 1 asterisk asterisk 64 Mar 17 23:32 23 -> anon_inode:inotify
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 24 -> anon_inode:[eventfd]
l-wx------. 1 asterisk asterisk 64 Mar 17 23:32 25 -> /var/log/asterisk/queue_log
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 26 -> socket:[35668]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 27 -> socket:[35669]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 28 -> socket:[35670]
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 3 -> /var/lib/asterisk/astdb.sqlite3
lr-x------. 1 asterisk asterisk 64 Mar 17 23:32 4 -> /dev/urandom
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 5 -> socket:[27012]
l-wx------. 1 asterisk asterisk 64 Mar 17 23:32 6 -> /var/log/asterisk/messages
l-wx------. 1 asterisk asterisk 64 Mar 17 23:32 7 -> /var/log/asterisk/full
lr-x------. 1 asterisk asterisk 64 Mar 17 23:32 8 -> /dev/urandom
lrwx------. 1 asterisk asterisk 64 Mar 17 23:32 9 -> socket:[27394]
I’m at the limit of my code troubleshooting abilities. What is Asterisk trying to do? What is blocking it? I cannot find anything that explains it.
Any ideas on next steps would be gratefully appreciated.
Jim