apache / apache/jena

Idle timeout expired

Open
#3,345 5 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Java
Stars
1.4k
Forks
712
Avg merge
15h 41m
Merged PRs (30d)
53

Description

### Version

5.2.0

### Question

We very occasionally run into errors like these during large and long-running backups and restores (~50min.):

Backup:
```
[74449] Runtime IO Exception (client left?) RC = 500 : java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms
```

Restore:
```
[line: 79482794, col: 22] Bad input stream [java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30000/30000 ms]
```

Unfortunately the logs above are the only ones we have on this problem right now, as it happens very sporadically.

For backups e.g. we use curl like so:
```
curl --fail --silent --show-error -X GET -H "Accept: application/trig" -u "user:password" "http://db:3030/repo" > "backup.trig"
```

Curiously, despite the above error, `curl` exited successfully with status code `0`, which makes it seem like the connection was actually closed gracefully instead of unexpectedly disconnected. The backup was of course incomplete/cut off.

What is the meaning of this "Idle timeout expired" exception?

Is the timeout configurable somewhere?

Thanks!

Contributor guide

Open the contributing guide

Research direction

The payload names no source file or test; begin with the Java HTTP/server timeout handling associated with the logged 30-second idle timeout and compare the backup and restore paths. Reproduce or trace a long-running transfer using the shown curl command, identify whether the timeout is configurable, and document behavior that prevents incomplete transfers from appearing successful.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.