Bug 1852460

Summary: crond uses high amount of cpu for itself to close nonexisting filedescriptors
Product: [Fedora] Fedora Reporter: customercare
Component: cronieAssignee: Matej Mužila <mmuzila>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 32CC: mmaslano, tmraz, tm
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-17 16:29:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Screenshot of cpu usage
none
strace for SCREEN startup none

Description customercare 2020-06-30 13:20:57 UTC
Created attachment 1699305 [details]
Screenshot of cpu usage

Description of problem:

when crond starts subcrond processes to execute a cronjob, the started CROND process eats up all cpu.

See Screenshot attached.

the VM in question runs together with identical vms, same os, same cronie version, and do not have this problem.

Downgrading to other cronie version, does not change this. 
Rebooting the system does not change this.

While they eat up cpu, they try to close() thousands of notopen filedescriptors. I think they iterate  in an quasi-endless loop.


Version-Release number of selected component (if applicable):

cronie-anacron-1.5.4-2.fc31
cronie-1.5.4-2.fc31  

Additional info:

[pid 15742] close(601015 <unfinished ...>
[pid 15743] close(477865 <unfinished ...>
[pid 15740] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15741] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15742] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15743] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15740] close(548390 <unfinished ...>
[pid 15741] close(351866 <unfinished ...>
[pid 15742] close(601016 <unfinished ...>
[pid 15740] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15741] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15743] close(477866 <unfinished ...>
[pid 15740] close(548391 <unfinished ...>
[pid 15741] close(351867 <unfinished ...>
[pid 15742] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15740] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15741] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15743] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15742] close(601017 <unfinished ...>
[pid 15740] close(548392 <unfinished ...>
[pid 15741] close(351868 <unfinished ...>
[pid 15743] close(477867 <unfinished ...>
[pid 15740] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15741] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15742] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15743] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15740] close(548393 <unfinished ...>
[pid 15741] close(351869 <unfinished ...>
[pid 15742] close(601018 <unfinished ...>
[pid 15743] close(477868 <unfinished ...>
[pid 15740] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15741] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15742] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15743] <... close resumed>)        = -1 EBADF (Bad file descriptor)
[pid 15740] close(548394 <unfinished ...>
[pid 15741] close(351870 <unfinished ...>
[pid 15742] close(601019 <unfinished ...>
^C
strace: Process 15743 detached
strace: Process 15742 detached
strace: Process 15741 detached
strace: Process 15740 detached
strace: Process 15739 detached
strace: Process 15738 detached
strace: Process 15737 detached
strace: Process 15736 detached

Comment 1 customercare 2020-06-30 13:22:10 UTC
Add: identical cronjobs too, they all do the same, at the same time, for the same reason.

the jobs itself, executed  via bash, run in the expected time ( i.e. 0,3s )

Comment 2 customercare 2020-06-30 13:27:17 UTC
I sysbenched the servercpu and got this:

check the events used.. It's the same physical CPU thoses vms run on. 


Server with problem:

# sysbench cpu run --threads=4 --time=10
sysbench 1.0.17 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time

Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  5654.49

General statistics:
    total time:                          10.0005s
    total number of events:              56554

Latency (ms):
         min:                                    0.59
         avg:                                    0.70
         max:                                   24.62
         95th percentile:                        0.70
         sum:                                39846.33

Threads fairness:
    events (avg/stddev):           14138.5000/479.26
    execution time (avg/stddev):   9.9616/0.00



Server without problem:


# sysbench cpu run --threads=4 --time=10
sysbench 1.0.17 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  2852.90

General statistics:
    total time:                          10.0012s
    total number of events:              28535

Latency (ms):
         min:                                    0.58
         avg:                                    1.39
         max:                                   41.75
         95th percentile:                        7.56
         sum:                                39805.77

Threads fairness:
    events (avg/stddev):           7133.7500/72.09
    execution time (avg/stddev):   9.9514/0.01


repeating this test, gives the same result for both servers. so , something is wrong on server 1  with the CROND prozesses using to much cpu

Comment 3 customercare 2020-06-30 13:30:39 UTC
after several tries with sysbench i got the same result for server 1, as for server 2.

So, the results above just show that it's cpu time got eaten up by something else
 ( the cronds i.e. )

Comment 4 customercare 2020-06-30 13:40:27 UTC
after stopping crond, the system wents, while serving data as usual, into a solid, none cpu using state, as it was expected on the used server hw. 

Our monitoring confirm that this is solely caused by crond itself, as any other task is performed on maximum speed.

Comment 5 customercare 2020-06-30 13:54:21 UTC
Update:

starting screen results in the same problem:

close(8877086)                          = -1 EBADF (Bad file descriptor)
close(8877085)                          = -1 EBADF (Bad file descriptor)
close(8877084)                          = -1 EBADF (Bad file descriptor)
close(8877083)                          = -1 EBADF (Bad file descriptor)
close(8877082)                          = -1 EBADF (Bad file descriptor)
close(8877081)                          = -1 EBADF (Bad file descriptor)
close(8877080)                          = -1 EBADF (Bad file descriptor)
close(8877079)                          = -1 EBADF (Bad file descriptor)
close(8877078)                          = -1 EBADF (Bad file descriptor)
close(8877077)                          = -1 EBADF (Bad file descriptor)
close(8877076)                          = -1 EBADF (Bad file descriptor)
close(8877075)                          = -1 EBADF (Bad file descriptor)
close(8877074)                          = -1 EBADF (Bad file descriptor)
close(8877073)                          = -1 EBADF (Bad file descriptor)
close(8877072)                          = -1 EBADF (Bad file descriptor)
close(8877071)                          = -1 EBADF (Bad file descriptor)
close(8877070)                          = -1 EBADF (Bad file descriptor)
close(8877069)                          = -1 EBADF (Bad file descriptor)
close(8877068)                          = -1 EBADF (Bad file descriptor)
close(8877067)                          = -1 EBADF (Bad file descriptor)
close(8877066)                          = -1 EBADF (Bad file descriptor)
close(8877065)                          = -1 EBADF (Bad file descriptor)
close(8877064)                          = -1 EBADF (Bad file descriptor)
close(8877063)                          = -1 EBADF (Bad file descriptor)
close(8877062)                          = -1 EBADF (Bad file descriptor)
close(8877061)                          = -1 EBADF (Bad file descriptor)
close(8877060)                          = -1 EBADF (Bad file descriptor)
close(8877059)                          = -1 EBADF (Bad file descriptor)
close(8877058)                          = -1 EBADF (Bad file descriptor)
close(8877057)                          = -1 EBADF (Bad file descriptor)
close(8877056)                          = -1 EBADF (Bad file descriptor)
close(8877055)                          = -1 EBADF (Bad file descriptor)
close(8877054)                          = -1 EBADF (Bad file descriptor)
close(8877053)                          = -1 EBADF (Bad file descriptor)
close(8877052)                          = -1 EBADF (Bad file descriptor)
close(8877051)                          = -1 EBADF (Bad file descriptor)
close(8877050)                          = -1 EBADF (Bad file descriptor)
close(8877049)                          = -1 EBADF (Bad file descriptor)
close(8877048)                          = -1 EBADF (Bad file descriptor)
close(8877047)                          = -1 EBADF (Bad file descriptor)
close(8877046)                          = -1 EBADF (Bad file descriptor)
close(8877045)                          = -1 EBADF (Bad file descriptor)
close(8877044)                          = -1 EBADF (Bad file descriptor)
close(8877043)                          = -1 EBADF (Bad file descriptor)
close(8877042)                          = -1 EBADF (Bad file descriptor)
close(8877041)                          = -1 EBADF (Bad file descriptor)
close(8877040)                          = -1 EBADF (Bad file descriptor)
close(8877039)                          = -1 EBADF (Bad file descriptor)
close(8877038)                          = -1 EBADF (Bad file descriptor)
close(8877037)                          = -1 EBADF (Bad file descriptor)
close(8877036)                          = -1 EBADF (Bad file descriptor)
close(8877035)                          = -1 EBADF (Bad file descriptor)
close(8877034)                          = -1 EBADF (Bad file descriptor)
close(8877033)                          = -1 EBADF (Bad file descriptor)
close(8877032)                          = -1 EBADF (Bad file descriptor)
close(8877031)                          = -1 EBADF (Bad file descriptor)
close(8877030)                          = -1 EBADF (Bad file descriptor)
close(8877029)                          = -1 EBADF (Bad file descriptor)
close(8877028)                          = -1 EBADF (Bad file descriptor)
close(8877027)                          = -1 EBADF (Bad file descriptor)
close(8877026)                          = -1 EBADF (Bad file descriptor)
close(8877025)                          = -1 EBADF (Bad file descriptor)
close(8877024)                          = -1 EBADF (Bad file descriptor)
close(8877023)                          = -1 EBADF (Bad file descriptor)
close(8877022)                          = -1 EBADF (Bad file descriptor)
close(8877021)                          = -1 EBADF (Bad file descriptor)
close(8877020)                          = -1 EBADF (Bad file descriptor)
close(8877019)                          = -1 EBADF (Bad file descriptor)
close(8877018)                          = -1 EBADF (Bad file descriptor)
close(8877017)                          = -1 EBADF (Bad file descriptor)
close(8877016)                          = -1 EBADF (Bad file descriptor)
close(8877015)                          = -1 EBADF (Bad file descriptor)
close(8877014)                          = -1 EBADF (Bad file descriptor)
close(8877013)                          = -1 EBADF (Bad file descriptor)
close(8877012)                          = -1 EBADF (Bad file descriptor)
close(8877011)                          = -1 EBADF (Bad file descriptor)
close(8877010)                          = -1 EBADF (Bad file descriptor)
close(8877009)                          = -1 EBADF (Bad file descriptor)
close(8877008)                          = -1 EBADF (Bad file descriptor)
close(8877007)                          = -1 EBADF (Bad file descriptor)
close(8877006)                          = -1 EBADF (Bad file descriptor)
close(8877005)                          = -1 EBADF (Bad file descriptor)
close(8877004)                          = -1 EBADF (Bad file descriptor)
close(8877003)                          = -1 EBADF (Bad file descriptor)
close(8877002)                          = -1 EBADF (Bad file descriptor)
close(8877001)                          = -1 EBADF (Bad file descriptor)
close(8877000)                          = -1 EBADF (Bad file descriptor)
close(8876999)                          = -1 EBADF (Bad file descriptor)
close(8876998)                          = -1 EBADF (Bad file descriptor)
close(8876997)                          = -1 EBADF (Bad file descriptor)
close(8876996)                          = -1 EBADF (Bad file descriptor)
close(8876995)                          = -1 EBADF (Bad file descriptor)
close(8876994)                          = -1 EBADF (Bad file descriptor)
close(8876993)                          = -1 EBADF (Bad file descriptor)
close(8876992)                          = -1 EBADF (Bad file descriptor)
close(8876991)                          = -1 EBADF (Bad file descriptor)
close(8876990)                          = -1 EBADF (Bad file descriptor)
close(8876989)                          = -1 EBADF (Bad file descriptor)
close(8876988)                          = -1 EBADF (Bad file descriptor)
close(8876987)                          = -1 EBADF (Bad file descriptor)
close(8876986)                          = -1 EBADF (Bad file descriptor)
close(8876985)                          = -1 EBADF (Bad file descriptor)
close(8876984)                          = -1 EBADF (Bad file descriptor)
close(8876983)                          = -1 EBADF (Bad file descriptor)
close(8876982)                          = -1 EBADF (Bad file descriptor)
close(8876981)                          = -1 EBADF (Bad file descriptor)
close(8876980)                          = -1 EBADF (Bad file descriptor)
close(8876979)                          = -1 EBADF (Bad file descriptor)
close(8876978)                          = -1 EBADF (Bad file descriptor)
close(8876977)                          = -1 EBADF (Bad file descriptor)
close(8876976)                          = -1 EBADF (Bad file descriptor)
close(8876975)                          = -1 EBADF (Bad file descriptor)
close(8876974)                          = -1 EBADF (Bad file descriptor)
close(8876973)                          = -1 EBADF (Bad file descriptor)
close(8876972)                          = -1 EBADF (Bad file descriptor)
close(8876971)                          = -1 EBADF (Bad file descriptor)
close(8876970)                          = -1 EBADF (Bad file descriptor)
close(8876969)                          = -1 EBADF (Bad file descriptor)
close(8876968)                          = -1 EBADF (Bad file descriptor)
close(8876967)                          = -1 EBADF (Bad file descriptor)
close(8876966)                          = -1 EBADF (Bad file descriptor)
close(8876965)                          = -1 EBADF (Bad file descriptor)
close(8876964)                          = -1 EBADF (Bad file descriptor)
close(8876963)                          = -1 EBADF (Bad file descriptor)
close(8876962)                          = -1 EBADF (Bad file descriptor)
close(8876961)                          = -1 EBADF (Bad file descriptor)
close(8876960)                          = -1 EBADF (Bad file descriptor)
close(8876959)                          = -1 EBADF (Bad file descriptor)
close(8876958)                          = -1 EBADF (Bad file descriptor)
close(8876957)                          = -1 EBADF (Bad file descriptor)
close(8876956)                          = -1 EBADF (Bad file descriptor)
close(8876955)                          = -1 EBADF (Bad file descriptor)
close(8876954)                          = -1 EBADF (Bad file descriptor)
close(8876953)                          = -1 EBADF (Bad file descriptor)
close(8876952)                          = -1 EBADF (Bad file descriptor)
close(8876951)                          = -1 EBADF (Bad file descriptor)
close(8876950)                          = -1 EBADF (Bad file descriptor)
close(8876949)                          = -1 EBADF (Bad file descriptor)
close(8876948)                          = -1 EBADF (Bad file descriptor)
close(8876947)                          = -1 EBADF (Bad file descriptor)
close(8876946)                          = -1 EBADF (Bad file descriptor)
close(8876945)                          = -1 EBADF (Bad file descriptor)
close(8876944)                          = -1 EBADF (Bad file descriptor)
close(8876943)                          = -1 EBADF (Bad file descriptor)
close(8876942)                          = -1 EBADF (Bad file descriptor)
close(8876941)                          = -1 EBADF (Bad file descriptor)
close(8876940)                          = -1 EBADF (Bad file descriptor)
close(8876939)                          = -1 EBADF (Bad file descriptor)
close(8876938)                          = -1 EBADF (Bad file descriptor)
close(8876937)                          = -1 EBADF (Bad file descriptor)
close(8876936)                          = -1 EBADF (Bad file descriptor)
close(8876935)                          = -1 EBADF (Bad file descriptor)
close(8876934)                          = -1 EBADF (Bad file descriptor)
close(8876933)                          = -1 EBADF (Bad file descriptor)
close(8876932)                          = -1 EBADF (Bad file descriptor)
close(8876931)                          = -1 EBADF (Bad file descriptor)
close(8876930)                          = -1 EBADF (Bad file descriptor)
close(8876929)                          = -1 EBADF (Bad file descriptor)
close(8876928)                          = -1 EBADF (Bad file descriptor)
close(8876927)                          = -1 EBADF (Bad file descriptor)
close(8876926)                          = -1 EBADF (Bad file descriptor)
close(8876925)                          = -1 EBADF (Bad file descriptor)
close(8876924)                          = -1 EBADF (Bad file descriptor)
close(8876923)                          = -1 EBADF (Bad file descriptor)
close(8876922)                          = -1 EBADF (Bad file descriptor)
close(8876921)                          = -1 EBADF (Bad file descriptor)
close(8876920)                          = -1 EBADF (Bad file descriptor)
close(8876919)                          = -1 EBADF (Bad file descriptor)
close(8876918)                          = -1 EBADF (Bad file descriptor)
close(8876917)                          = -1 EBADF (Bad file descriptor)
close(8876916)                          = -1 EBADF (Bad file descriptor)
close(8876915)                          = -1 EBADF (Bad file descriptor)
close(8876914)                          = -1 EBADF (Bad file descriptor)
close(8876913)                          = -1 EBADF (Bad file descriptor)
close(8876912)                          = -1 EBADF (Bad file descriptor)
close(8876911)                          = -1 EBADF (Bad file descriptor)
close(8876910)                          = -1 EBADF (Bad file descriptor)
close(8876909)                          = -1 EBADF (Bad file descriptor)
close(8876908)                          = -1 EBADF (Bad file descriptor)
close(8876907)                          = -1 EBADF (Bad file descriptor)
close(8876906)                          = -1 EBADF (Bad file descriptor)
close(8876905)                          = -1 EBADF (Bad file descriptor)
close(8876904)                          = -1 EBADF (Bad file descriptor)
close(8876903)                          = -1 EBADF (Bad file descriptor)
close(8876902)                          = -1 EBADF (Bad file descriptor)
close(8876901)                          = -1 EBADF (Bad file descriptor)
close(8876900)                          = -1 EBADF (Bad file descriptor)
close(8876899)                          = -1 EBADF (Bad file descriptor)
close(8876898)                          = -1 EBADF (Bad file descriptor)
close(8876897)                          = -1 EBADF (Bad file descriptor)
close(8876896)                          = -1 EBADF (Bad file descriptor)
close(8876895)                          = -1 EBADF (Bad file descriptor)
close(8876894)                          = -1 EBADF (Bad file descriptor)
close(8876893)                          = -1 EBADF (Bad file descriptor)
close(8876892)                          = -1 EBADF (Bad file descriptor)
close(8876891)                          = -1 EBADF (Bad file descriptor)
close(8876890)                          = -1 EBADF (Bad file descriptor)
close(8876889)                          = -1 EBADF (Bad file descriptor)
close(8876888)                          = -1 EBADF (Bad file descriptor)
close(8876887)                          = -1 EBADF (Bad file descriptor)


an strace later:

check for the rlimit! and the start FD strace uses...

mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f08d4604000
arch_prctl(ARCH_SET_FS, 0x7f08d4604b80) = 0
mprotect(0x7f08d4824000, 12288, PROT_READ) = 0
mprotect(0x7f08d4622000, 4096, PROT_READ) = 0
mprotect(0x7f08d462e000, 4096, PROT_READ) = 0
mprotect(0x7f08d4635000, 4096, PROT_READ) = 0
mprotect(0x7f08d4657000, 4096, PROT_READ) = 0
mprotect(0x7f08d483e000, 4096, PROT_READ) = 0
mprotect(0x7f08d4871000, 4096, PROT_READ) = 0
mprotect(0x7f08d487e000, 4096, PROT_READ) = 0
mprotect(0x7f08d48ab000, 16384, PROT_READ) = 0
mprotect(0x5611683ae000, 4096, PROT_READ) = 0
mprotect(0x7f08d48ec000, 4096, PROT_READ) = 0
munmap(0x7f08d48b2000, 60305)           = 0
set_tid_address(0x7f08d4604e50)         = 36426
set_robust_list(0x7f08d4604e60, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f08d460dc50, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f08d461ab20}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f08d460dcf0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f08d461ab20}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=9000000, rlim_max=9000000}) = 0
close(8999999)                          = -1 EBADF (Bad file descriptor)
close(8999998)                          = -1 EBADF (Bad file descriptor)
close(8999997)                          = -1 EBADF (Bad file descriptor)
close(8999996)                          = -1 EBADF (Bad file descriptor)
close(8999995)                          = -1 EBADF (Bad file descriptor)
close(8999994)                          = -1 EBADF (Bad file descriptor)
close(8999993)                          = -1 EBADF (Bad file descriptor)
close(8999992)                          = -1 EBADF (Bad file descriptor)
close(8999991)                          = -1 EBADF (Bad file descriptor)
close(8999990)                          = -1 EBADF (Bad file descriptor)
close(8999989)                          = -1 EBADF (Bad file descriptor)
close(8999988)                          = -1 EBADF (Bad file descriptor)
close(8999987)                          = -1 EBADF (Bad file descriptor)
close(8999986)                          = -1 EBADF (Bad file descriptor)
close(8999985)                          = -1 EBADF (Bad file descriptor)
close(8999984)                          = -1 EBADF (Bad file descriptor)
close(8999983)                          = -1 EBADF (Bad file descriptor)
close(8999982)                          = -1 EBADF (Bad file descriptor)
close(8999981)                          = -1 EBADF (Bad file descriptor)

Comment 6 Tomas Mraz 2020-06-30 13:59:58 UTC
This is fixed in the upstream version 1.5.5

Comment 7 Tomas Mraz 2020-06-30 14:04:35 UTC
As a workaround you can set the limit of open file descriptors to some reasonable value.

Comment 8 customercare 2020-06-30 14:18:37 UTC
# FOUND IT OUT #

Caused by SYSTEMD NOFILELIMIT!

The server with the problem had a changed system.conf, where is the diff with system.conf.rpmnew: 

# diff system.conf system.conf.rpmnew 
26c26,27
< #JoinControllers=cpu,cpuacct net_cls,net_prio
---
> #NUMAPolicy=default
> #NUMAMask=
27a29
> #RebootWatchdogSec=10min
28a31
> #KExecWatchdogSec=0
30a34
> #NoNewPrivileges=no
32a37
> #StatusUnitFormat=description
37a43
> #DefaultTimeoutAbortSec=
48c54
< #DefaultTasksMax=20000
---
> #DefaultTasksMax=15%
55c61
< DefaultLimitNOFILE=9000000
---
> #DefaultLimitNOFILE=1024:524288


It's the same 9000000 (9 million ) which get used as the first FD to get closed by the mad running processes.

After reloading systemd with the defaults,  it's working normal.

Comment 9 customercare 2020-07-15 07:03:58 UTC
Problem gets worse:

- Different Server
- original systemd.conf :

[root@XXXXX systemd]# grep 52428 /etc/systemd/* -r
/etc/systemd/system.conf:#DefaultLimitNOFILE=1024:524288

- same problem:

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=512*1024}) = 0
close(524287)                           = -1 EBADF (Ungültiger Dateideskriptor)
close(524286)                           = -1 EBADF (Ungültiger Dateideskriptor)
close(524285)                           = -1 EBADF (Ungültiger Dateideskriptor)
close(524284)                           = -1 EBADF (Ungültiger Dateideskriptor)
close(524283)                           = -1 EBADF (Ungültiger Dateideskriptor)


What do mean with: "This is fixed in the upstream version 1.5.5"

What 1.5.5 Version? Systemd, which causes this bug? Crond, who suffers from this bug? or -> "screen", whos strace you see above <- ?

Because systemd is applying filelimits to any program started, any program is effected if vulnerable for this kind of shananiganz. 

It's not just cronie, it's a lot of other apps too, and this issue needs to be raised in prio and escalated to any maintainer/upstream project. 

PHP, Perl, Bash i.e. do not not suffer from it. The question is, who is affected too?

Comment 10 customercare 2020-07-15 07:06:51 UTC
Created attachment 1701155 [details]
strace for SCREEN startup

Comment 11 Tomas Mraz 2020-07-15 07:36:43 UTC
The 1.5.5 version mentioned above is cronie crond. It contains internal limit for closing the descriptors so the rlimit_nofile change by systemd should not affect it.

Comment 12 customercare 2020-07-15 07:49:34 UTC
can you please build a 1.5.5  and push it to testing or koji?

Comment 14 Ben Cotton 2020-11-03 16:49:58 UTC
This message is a reminder that Fedora 31 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 31 on 2020-11-24.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '31'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 31 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 15 customercare 2020-11-03 20:24:04 UTC
*** Bug 1857113 has been marked as a duplicate of this bug. ***

Comment 16 Tomáš Mráz 2021-03-17 16:29:52 UTC
This is fixed in cronie-1.5.5.

Comment 17 Red Hat Bugzilla 2023-09-15 00:33:45 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 500 days