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.