I’m having an issue with Fuseki where, once the first request is submitted, the server never returns a response and never returns any responses for subsequent requests either. The server also starts increasing its memory usage quite significantly until it finally runs out of memory, a GC occurs, and the whole process starts over with the next request. In looking at the logs, I found that the log output at the bottom of this message repeated every 30 seconds or so (the default jetty timeout time period). Even while completely “idle”, this same output would spit out like clockwork, indefinitely. The only thing that I can do to stop it is to stop the server. This has made it so that I cannot query anything from my dataset. The only change that has occurred is the size of the dataset…which makes sense as it now takes longer to load into memory, thus suddenly going over the timeout limit.
Is this a bug? I would expect at least the request to fail with a timeout status if something like this were to occur. I’m using RDF-Delta’s embedded Fuseki, 6GB of RAM, TDB2, running in a Docker container. LOGS (formatted for readability): [Connector-Scheduler-7ac48e10-1-23] org.eclipse.jetty.io.IdleTimeout : SocketChannelEndPoint@114206bf{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=30001/30000 } { io=0/0, kio=0, kro=1 }-> SslConnection@3e970f93{ NOT_HANDSHAKING, eio=-1/-1, di=-1, fill=IDLE, flush=IDLE }~> DecryptedEndPoint@5fce624a{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=330537/30000 }=> HttpConnection@6f2ce996[ p=HttpParser{ s=END, 271 of 271 }, g=HttpGenerator@12e7e639{ s=START } ]=> HttpChannelOverHttp@1bba6dcf{ s=HttpChannelState@5eb8f0dc{ s=HANDLING rs=BLOCKING os=OPEN is=READY awp=false se=false i=true al=0 }, r=1, c=false/false, a=HANDLING, uri=https://localhost:3043/rdf, age=330183 } idle timeout check, elapsed: 30000 ms, remaining: 0 ms [Connector-Scheduler-7ac48e10-1-23] org.eclipse.jetty.io.IdleTimeout : SocketChannelEndPoint@114206bf{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=30002/30000 } { io=0/0, kio=0, kro=1 }-> SslConnection@3e970f93{ NOT_HANDSHAKING, eio=-1/-1, di=-1, fill=IDLE, flush=IDLE }~> DecryptedEndPoint@5fce624a{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=330538/30000 }=> HttpConnection@6f2ce996[ p=HttpParser{ s=END, 271 of 271 }, g=HttpGenerator@12e7e639{ s=START } ]=> HttpChannelOverHttp@1bba6dcf{ s=HttpChannelState@5eb8f0dc{ s=HANDLING rs=BLOCKING os=OPEN is=READY awp=false se=false i=true al=0 }, r=1, c=false/false, a=HANDLING, uri=https://localhost:3043/rdf, age=330184 } idle timeout expired [Connector-Scheduler-7ac48e10-1-23] org.eclipse.jetty.io.FillInterest : onFail FillInterest@3cb42e3f{null} java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171) ~[delta-server.jar:?] at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[delta-server.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?] [Connector-Scheduler-7ac48e10-1-23] org.eclipse.jetty.io.WriteFlusher : ignored: WriteFlusher@7186c8ca{IDLE}->null java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171) ~[delta-server.jar:?] at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113) ~[delta-server.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?] [Connector-Scheduler-7ac48e10-1-23] org.eclipse.jetty.io.AbstractEndPoint : Ignored idle endpoint SocketChannelEndPoint@114206bf{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=30011/30000 } { io=0/0, kio=0, kro=1 }-> SslConnection@3e970f93{ NOT_HANDSHAKING, eio=-1/-1, di=-1, fill=IDLE, flush=IDLE }~> DecryptedEndPoint@5fce624a{ l=/172.18.0.2:3043, r=/172.18.0.1:60440, OPEN, fill=-, flush=-, to=330548/30000 }=> HttpConnection@6f2ce996[ p=HttpParser{ s=END, 271 of 271 }, g=HttpGenerator@12e7e639{ s=START } ]=> HttpChannelOverHttp@1bba6dcf{ s=HttpChannelState@5eb8f0dc{ s=HANDLING rs=BLOCKING os=OPEN is=READY awp=false se=false i=true al=0 }, r=1, c=false/false, a=HANDLING, uri=https://localhost:3043/rdf, age=330194 } No PHI in Email: PointClickCare and Collective Medical, A PointClickCare Company, policies prohibit sending protected health information (PHI) by email, which may violate regulatory requirements. If sending PHI is necessary, please contact the sender for secure delivery instructions. Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.