-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Is this a critical security issue?
- This is not a security issue.
Describe the Bug
When deleting/ cleaning certificates it takes about 30s instead of 1s. This seems to be a openvox related issue, as it does not happen using non-openvox packages. Tested on several distros and several versions, including 8.8.1, 8.8.0, 7.18.2
It appears to be some sort of timeout, perhaps it is related to #24 ?
This timeout happens also when a node creates a CSR, so it is not related to the puppetserver CLI.
Expected Behavior
Should clean and generate certificates in less than a second.
Steps to Reproduce
Install openvox-server package for ubuntu: 8.8.1-1+ubuntu24.04
Configure puppet.conf:
[server]
dns_alt_names = mainstation
autosign = true
ca_server = mainstationRun puppetserver ca setup
Start puppetserver using puppetserver foreground
Generate a certificate using puppetserver ca generate --certname asdf
Clean certificate using puppetserver ca clean --certname asdf
Environment
puppetserver 8.8.1, 8.8.0, 7.18.2
Ubuntu 24.04
Rocky 8
Additional Context
Full debug log after calling puppetserver ca clean
https://pastebin.com/pPXjKvfk
Relevant log output
-1},g=HttpGenerator@24365f32{s=START}]=>HttpChannelOverHttp@5fb5a6a5{s=HttpChannelState@207803f3{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=null,age=0}]}}
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2025-06-28T14:51:34.623+02:00 DEBUG [Connector-Scheduler-52e9c5b1-1] [o.e.j.i.s.SslConnection] onFillableFail SslConnection@44b1abcc::SocketChannelEndPoint@27d518ad[{l=/127.0.1.1:8140,r=/127.0.0.1:52624,OPEN,fill=-,flush=-,to=30002/30000}{io=1/1,kio=1,kro=1}]->[SslConnection@44b1abcc{NOT_HANDSHAKING,eio=-1/-1,di=-1,fill=INTERESTED,flush=IDLE}~>{l=/127.0.1.1:8140,r=/127.0.0.1:52624,OPEN,fill=FI,flush=-,to=30002/30000}=>HttpConnection@2f676721[p=HttpParser{s=START,0 of -1},g=HttpGenerator@24365f32{s=START}]=>HttpChannelOverHttp@5fb5a6a5{s=HttpChannelState@207803f3{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=null,age=0}]
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2025-06-28T14:51:34.623+02:00 DEBUG [Connector-Scheduler-52e9c5b1-1] [o.e.j.i.FillInterest] onFail FillInterest@307c7afa{ReadCallback@1b8d7d81{HttpConnection@2f676721::DecryptedEndPoint@71dd1c1e[{l=/127.0.1.1:8140,r=/127.0.0.1:52624,OPEN,fill=FI,flush=-,to=30002/30000}]}}
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2025-06-28T14:51:34.623+02:00 DEBUG [Connector-Scheduler-52e9c5b1-1] [o.e.j.h.HttpParser] close HttpParser{s=START,0 of -1}
2025-06-28T14:51:34.623+02:00 DEBUG [Connector-Scheduler-52e9c5b1-1] [o.e.j.h.HttpParser] START --> CLOSE
2025-06-28T14:51:34.623+02:00 DEBUG [Connector-Scheduler-52e9c5b1-1] [o.e.j.i.AbstractConnection] HttpConnection@2f676721::DecryptedEndPoint@71dd1c1e[{l=/127.0.1.1:8140,r=/127.0.0.1:52624,OPEN,fill=-,flush=-,to=30002/30000}] onFillInterestedFailed {}
java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:170)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)