Modify

Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#22160 closed defect (fixed)

[PATCH] Retry on `SocketException: Unexpected end of file from server`

Reported by: MichaelFS Owned by: team
Priority: normal Milestone: 22.08
Component: Core Version: latest
Keywords: Api 0.6, Upload Cc:

Description (last modified by taylor.smock)

What steps will reproduce the problem?

  1. Open JOSM and create one or more changes, no matter whether on ode, way or relation
  2. Click UPload

What is the expected result?

UPload should be accepted, a "SUCCESS"-message should be displayed.

What happens instead?

Message: Connection with Remote-Server
https://api.openstreetmap.org/api/0.6/failed.
Please check your Internet-connection.

Of course, the Internet-connection is stable and ONline. Nevertheless, I experienced such failures up to five times for one changeset.

The issue has been reported multiple times since January 2022 from several users in the German Forum [ https://forum.openstreetmap.org/viewtopic.php?id=74624]

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-04-04 22:26:00 +0200 (Mon, 04 Apr 2022)
Revision:18427
Build-Date:2022-04-05 01:30:55
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18427 de) Linux Manjaro Linux
Memory Usage: 292 MB / 7832 MB (143 MB allocated, but free)
Java version: 18.0.1.1+2, N/A, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.nimbus.NimbusLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: de_DE.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: de_DE
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: KDE
VM arguments: [--add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, -Djosm.restart=true, -Dawt.useSystemAAFontSettings=gasp]

Plugins:
+ buildings_tools (35978)
+ continuosDownload (99)
+ fieldpapers (v0.5.0)
+ reverter (35980)
+ terracer (35893)
+ undelete (35893)
+ utilsplugin2 (35978)

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1

Note: The below stack traces may not be related to the above issue (was closed as othersoftware, see comment:1 )
From comment:12/comment:24

2022-06-23 21:48:55.554 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)
2022-06-23 21:48:55.559 WARNING: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
	at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
	at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
	at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
	at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
	at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
	at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
	... 15 more

2022-06-23 21:48:55.560 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.684 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (74 ms; 9 B)
2022-06-23 21:48:55.684 INFO: OK

Attachments (1)

22160.patch (1.0 KB ) - added by taylor.smock 4 years ago.
Instead of catching ConnectException, catch its super class SocketException, and retry

Download all attachments as: .zip

Change History (82)

comment:1 by taylor.smock, 4 years ago

Resolution: othersoftware
Status: newclosed

It looks like the OSM servers were down again. See https://prometheus.openstreetmap.org/d/ST-7bi5Gz/api-database?orgId=1&from=1655847307102&to=1655891753255 (specifically, I suspect you were trying to upload during the outage at around 06:00 UTC).

comment:2 by mmd, 4 years ago

No, there are repeated reports from different users all saying that they need multiple attempts to upload data. So that's unrelated to the single event you've mentioned here.

Kindly request to reopen this ticket, and continue investigating the issue, and find some mitigation. We don't see none of these reports with others editing apps, and we're suspecting the issue to be related to some Java issue. Thanks.

comment:3 by stoecker, 4 years ago

We cannot investigate anything without additional data about the issue. As should be pretty obvious it does not happen on our systems.

comment:4 by mmd, 4 years ago

I also checked minutely diffs here https://planet.openstreetmap.org/replication/minute/005/112/ , starting with file

488.osc.gz 2022-06-22 06:00 90K
489.osc.gz 2022-06-22 06:01 71K

...

502.osc.gz 2022-06-22 06:15 67K

Based on these minutely diffs, I cannot follow your argument, that the changeset upload was unavailable at 06:00 UTC today.

comment:5 by mmd, 4 years ago

As should be pretty obvious it does not happen on our systems.

As I've mentioned earlier on, the one thing I don't understand is, why we're only seeing these reports from JOSM users. Is JOSM doing anything special here? Are other apps more resilient to temporary network hickups? Are there some strange JDK issues with some versions, that are impacting maybe some parts of your users?

in reply to:  2 comment:6 by taylor.smock, 4 years ago

Replying to mmd:

No, there are repeated reports from different users all saying that they need multiple attempts to upload data. So that's unrelated to the single event you've mentioned here.

That is, however, most likely what caused the issue for this specific user.

Kindly request to reopen this ticket, and continue investigating the issue, and find some mitigation. We don't see none of these reports with others editing apps, and we're suspecting the issue to be related to some Java issue. Thanks.

I've seen the same problem as well. The problem is tracking it down. I have yet to find a way to reliably reproduce it, and it usually doesn't happen. Which has implications for fixing it. Since I have no reliable way to reproduce, I cannot step through the code to find the problematic section, and fix it in our code or file a ticket in upstream Java. For all we know, it might be an implementation specific bug (aka Azul Java). If you want to try and track it down, you can try running the jar files using Liberica Java, Temurin Java, etc. You can also try different versions of Java (starting with Java 8) and see if it starts occurring with a specific Java version. But then we come back to the fact it doesn't happen consistently, which means that you might use Java 8 for a week, see nothing, and move to Java 11, when the next upload may have caused the issue.

If someone can come up with a way to reliably reproduce the problem, then I will be able to fix it in fairly short order if it is in JOSM, or report it upstream otherwise.

Regardless, I do not believe that this ticket is the appropriate place for the unrelated (probably java) bug (given the time that the bug was reported).

I am working on a ticket which will give better feedback when the OSM api is down (see #22138, which you've already commented on), which will at least let us know if the api was up or down.

Replying to mmd:

Based on these minutely diffs, I cannot follow your argument, that the changeset upload was unavailable at 06:00 UTC today.

All I can say is that the OSM monitoring service said that it was down. Maybe it was still processing changesets during that period, but something was happening on the OSM server end.

in reply to:  5 comment:7 by stoecker, 4 years ago

Replying to mmd:

As should be pretty obvious it does not happen on our systems.

As I've mentioned earlier on, the one thing I don't understand is, why we're only seeing these reports from JOSM users. Is JOSM doing anything special here? Are other apps more resilient to temporary network hickups?

Network I/O is a rather complicated thing and there are big differences between different implementations. E.G. the browser based system rely on browser network I/O and this is designed to try more connections in case of issues instead of waiting and reporting to the user. JOSM tries a connect usually only once and reports back to the user.

Best example is when e.g. IPv6 of a server is down. JOSM will report an error in this case. Most browsers will silently switch to IPv4 access (which is disturbing sometimes when you yourself are responsible for server setup and you simply don't see the error :-).

So yes - in case of network trouble JOSM is more likely to report this to the users than other systems.

There are lots of possible mitigation methods and when there are important issues we'll try to workaround them, but most often a more stable network or simply "retry" is the proper solution.

comment:8 by mmd, 4 years ago

Thanks to both for your insights, much appreciated.

All I can say is that the OSM monitoring service said that it was down. Maybe it was still processing changesets during that period, but something was happening on the OSM server end.

Just wanted to quickly comment on this one. Since I've also noticed that prometheus lacks some data specifically at 06:00 UTC, I started looking into minutely diffs a bit. Typically, a changeset upload would take a few seconds, a really, really large changeset with a huge relations maybe about 1 minute in exceptional cases. That's like the 0.005% case. In case you're interested, I did a more in-depth analysis on this topic last year: https://lists.openstreetmap.org/pipermail/dev/2021-March/031139.html

Looking into the minutely diff files and checking the timestamps in there, changeset uploads were happening pretty much all the time without much obvious interruption. My assumption is that data collection by prometheus / grafana might have had some temporary issue. Yes, even collecting stats can be a fun exercise. :)

but most often a more stable network or simply "retry" is the proper solution.

I generally agree that retrying will help in a lot of cases, and I would also assume that this is exactly what browsers are doing under the hood.

Unfortunately, we still have this gap in the API that the upload is not idempotent: in case a user uploads a changeset with only new buildings in there, and the upload is retried for whatever reason, we might end up creating duplicate buildings on the database.

Maybe you still recall the discussion we've had in https://github.com/openstreetmap/openstreetmap-website/issues/2201 . It would make a retry basically a "zero risk" activity. As we couldn't agree on implementation specifics, this feature is not available as of today.

comment:9 by chris66, 4 years ago

I'm also having this problem. After changing the Java Version from V8-32 bit to V11-64 bit the upload is failing less often.
Today I had this error two or three times. One Retry was successfull in every case.

With java8 I sometimes needed 4 retries until the upload succeeded.

OS=Win 10

in reply to:  8 ; comment:10 by stoecker, 4 years ago

Maybe you still recall the discussion we've had in https://github.com/openstreetmap/openstreetmap-website/issues/2201 . It would make a retry basically a "zero risk" activity.

I don't think I've even seen this discussion before. Interesting how easy the participants blame JOSM for doing something wrong when they either didn't understand the problem or have not solution. "Asking the user" is the ultimate bullshit answer to any problem.

Reading the discussion I think we could further mitigate upload duplications when we download and merge the changeset in case of retry attemps.

in reply to:  10 ; comment:11 by skyper, 4 years ago

Is there a problem with checking for open changesets (#21570) or creating changesets (#21976)?

Replying to stoecker:

Reading the discussion I think we could further mitigate upload duplications when we download and merge the changeset in case of retry attemps.

How does this help with new objects? I would be happy about some magic as it is a real pain to recheck all of them if the connection is cut in the middle or end of a bigger upload.

comment:12 by anonymous, 4 years ago

It seems that the server closes the TCP connection (FIN, ACK), after that JOSM tries to PUT and fails?

Wireshark log:

|Time     | OSM mapper PC                         |
|         |                   | api.openstreetmap.org                 
|10:58:37,800577477|         SYN       |                   |Seq = 0
|         |(37866)  ------------------>  (443)    |
|10:58:37,815469006|         SYN, ACK  |                   |Seq = 0 Ack = 1
|         |(37866)  <------------------  (443)    |
|10:58:37,815491939|         ACK       |                   |Seq = 1 Ack = 1
|         |(37866)  ------------------>  (443)    |
|10:58:37,817174486|         PSH, ACK - Len: 1037          |Seq = 1 Ack = 1
|         |(37866)  ------------------>  (443)    |
|10:58:37,832314372|         ACK       |                   |Seq = 1 Ack = 1038
|         |(37866)  <------------------  (443)    |
|10:58:37,833799716|         ACK - Len: 1440               |Seq = 1 Ack = 1038
|         |(37866)  <------------------  (443)    |
|10:58:37,833804130|         ACK       |                   |Seq = 1038 Ack = 1441
|         |(37866)  ------------------>  (443)    |
|10:58:37,833921115|         PSH, ACK - Len: 1440          |Seq = 1441 Ack = 1038
|         |(37866)  <------------------  (443)    |
|10:58:37,833928327|         ACK       |                   |Seq = 1038 Ack = 2881
|         |(37866)  ------------------>  (443)    |
|10:58:37,834923146|         PSH, ACK - Len: 1216          |Seq = 2881 Ack = 1038
|         |(37866)  <------------------  (443)    |
|10:58:37,834927572|         ACK       |                   |Seq = 1038 Ack = 4097
|         |(37866)  ------------------>  (443)    |
|10:58:37,835034867|         PSH, ACK - Len: 1126          |Seq = 4097 Ack = 1038
|         |(37866)  <------------------  (443)    |
|10:58:37,835036577|         ACK       |                   |Seq = 1038 Ack = 5223
|         |(37866)  ------------------>  (443)    |
|10:58:37,836016930|         PSH, ACK - Len: 90            |Seq = 1038 Ack = 5223
|         |(37866)  ------------------>  (443)    |
|10:58:37,836319917|         PSH, ACK - Len: 655           |Seq = 1128 Ack = 5223
|         |(37866)  ------------------>  (443)    |
|10:58:37,851186883|         ACK       |                   |Seq = 5223 Ack = 1128
|         |(37866)  <------------------  (443)    |
|10:58:37,851663210|         PSH, ACK - Len: 303           |Seq = 5223 Ack = 1128
|         |(37866)  <------------------  (443)    |
|10:58:37,851672051|         ACK       |                   |Seq = 1783 Ack = 5526
|         |(37866)  ------------------>  (443)    |
|10:58:37,852645587|         PSH, ACK - Len: 303           |Seq = 5526 Ack = 1128
|         |(37866)  <------------------  (443)    |
|10:58:37,852646908|         ACK       |                   |Seq = 1783 Ack = 5829
|         |(37866)  ------------------>  (443)    |
|10:58:37,852723662|         ACK       |                   |Seq = 5829 Ack = 1783
|         |(37866)  <------------------  (443)    |
|10:58:37,902396083|         ACK - Len: 1440               |Seq = 5829 Ack = 1783
|         |(37866)  <------------------  (443)    |
|10:58:37,902410055|         ACK       |                   |Seq = 1783 Ack = 7269
|         |(37866)  ------------------>  (443)    |
|10:58:37,902818810|         PSH, ACK - Len: 578           |Seq = 7269 Ack = 1783
|         |(37866)  <------------------  (443)    |
|10:58:37,902823230|         ACK       |                   |Seq = 1783 Ack = 7847
|         |(37866)  ------------------>  (443)    |
|10:58:38,082921856|         PSH, ACK - Len: 24            |Seq = 7847 Ack = 1783
|         |(37866)  <------------------  (443)    |
|10:58:38,082934024|         ACK       |                   |Seq = 1783 Ack = 7871
|         |(37866)  ------------------>  (443)    |
|10:58:38,082946251|         FIN, ACK  |                   |Seq = 7871 Ack = 1783
|         |(37866)  <------------------  (443)    |
|10:58:38,123034242|         ACK       |                   |Seq = 1783 Ack = 7872
|         |(37866)  ------------------>  (443)    |
|10:58:38,875773751|         PSH, ACK - Len: 682           |Seq = 1783 Ack = 7872
|         |(37866)  ------------------>  (443)    |
|10:58:38,875859865|         PSH, ACK - Len: 530           |Seq = 2465 Ack = 7872
|         |(37866)  ------------------>  (443)    |
|10:58:38,876049086|         PSH, ACK - Len: 40            |Seq = 2995 Ack = 7872
|         |(37866)  ------------------>  (443)    |
|10:58:38,876077289|         FIN, PSH, ACK - Len:          |Seq = 3035 Ack = 7872
|         |(37866)  ------------------>  (443)    |
|10:58:38,890965810|         ACK       |                   |Seq = 7872 Ack = 2465
|         |(37866)  <------------------  (443)    |
|10:58:38,891001069|         ACK       |                   |Seq = 7872 Ack = 2995
|         |(37866)  <------------------  (443)    |
|10:58:38,891460628|         ACK       |                   |Seq = 7872 Ack = 3035
|         |(37866)  <------------------  (443)    |
|10:58:38,891880357|         ACK       |                   |Seq = 7872 Ack = 3076
|         |(37866)  <------------------  (443)    |

JOSM log:

10:58:37.785 FEIN: Änderungssätze einlesen …
10:58:37.785 FEIN: Verbinde mit Server ...
10:58:37.785 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=...}
10:58:37.903 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=77777&open=true -> HTTP/1.1 200 (117 ms; 459 B)
10:58:37.903 FEIN: RESPONSE HEADERS: {null=[HTTP/1.1 200 OK], Server=[Apache/2.4.41 (Ubuntu)], ...}
10:58:37.903 FEIN: Daten werden heruntergeladen …
10:58:37.903 FEIN: Änderungssätze werden heruntergeladen …
10:58:37.903 FEIN: 
10:58:37.903 FEIN: Liste der Änderungssätze einlesen …
10:58:37.903 FEIN: Starting SAX parsing of org.xml.sax.InputSource@4a73ceed using org.openstreetmap.josm.io.OsmChangesetParser$Parser@3accd9c1
10:58:37.904 FEIN: 'SAX parsing' in 0 ms beendet
10:58:37.904 INFORMATION: 1 open changesets on server
10:58:38.858 INFORMATION: Starting upload with tags {comment=...}
10:58:38.858 INFORMATION: Strategy: CHUNKED_DATASET_STRATEGY, ChunkSize: 10, Policy: none, Close after: false
10:58:38.858 INFORMATION: Änderungssatz 55555: ...
10:58:38.874 FEIN: Exiting map mode: Auswählen
10:58:38.875 INFORMATION: Message notifier inactive
10:58:38.875 FEIN: Verbinde mit Server ...
10:58:38.875 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/55555 (492 B) ...
10:58:38.875 FEIN: Daten werden hochgeladen …
10:58:38.875 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=...}
10:58:38.876 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/55555 -> !!! (0 ms)
10:58:38.876 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.updateChangeset(OsmApi.java:498)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:206)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        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:833)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:903)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:726)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3257)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:269)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

10:58:38.876 WARNUNG: Already here java.net.SocketException: Unexpected end of file from server
10:58:38.876 INFORMATION: Message notifier active (checks every 5 minutes)
10:58:38.960 SCHWERWIEGEND: org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:777)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.updateChangeset(OsmApi.java:498)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:206)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        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:833)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        ... 12 more
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:903)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:726)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3257)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:269)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

10:58:38.962 SCHWERWIEGEND: Netzwerkausnahme - <html>Verbindungsaufbau zum Remote-Server<br>'https://api.openstreetmap.org/api/0.6/' gescheitert.<br>Bitte überprüfen Sie Ihre Internetverbindung.</html>

comment:13 by anonymous, 4 years ago

Another log:

Wireshark log:

|Time     | OSM mapper PC                         |
|         |                   | api.openstreetmap.org                 
|10:52:25,583208863|         SYN       |                   |Seq = 0
|         |(41328)  ------------------>  (443)    |
|10:52:25,599131123|         SYN, ACK  |                   |Seq = 0 Ack = 1
|         |(41328)  <------------------  (443)    |
|10:52:25,599145423|         ACK       |                   |Seq = 1 Ack = 1
|         |(41328)  ------------------>  (443)    |
|10:52:25,601589257|         PSH, ACK - Len: 1037          |Seq = 1 Ack = 1
|         |(41328)  ------------------>  (443)    |
|10:52:25,617990948|         ACK       |                   |Seq = 1 Ack = 1038
|         |(41328)  <------------------  (443)    |
|10:52:25,618665094|         PSH, ACK - Len: 213           |Seq = 1 Ack = 1038
|         |(41328)  <------------------  (443)    |
|10:52:25,618668955|         ACK       |                   |Seq = 1038 Ack = 214
|         |(41328)  ------------------>  (443)    |
|10:52:25,619384663|         PSH, ACK - Len: 90            |Seq = 1038 Ack = 214
|         |(41328)  ------------------>  (443)    |
|10:52:25,619757135|         PSH, ACK - Len: 651           |Seq = 1128 Ack = 214
|         |(41328)  ------------------>  (443)    |
|10:52:25,635072864|         ACK       |                   |Seq = 214 Ack = 1128
|         |(41328)  <------------------  (443)    |
|10:52:25,635519014|         PSH, ACK - Len: 303           |Seq = 214 Ack = 1128
|         |(41328)  <------------------  (443)    |
|10:52:25,635522835|         ACK       |                   |Seq = 1779 Ack = 517
|         |(41328)  ------------------>  (443)    |
|10:52:25,635720357|         ACK       |                   |Seq = 517 Ack = 1779
|         |(41328)  <------------------  (443)    |
|10:52:25,685575618|         ACK - Len: 1440               |Seq = 517 Ack = 1779
|         |(41328)  <------------------  (443)    |
|10:52:25,685579832|         ACK       |                   |Seq = 1779 Ack = 1957
|         |(41328)  ------------------>  (443)    |
|10:52:25,685725267|         PSH, ACK - Len: 578           |Seq = 1957 Ack = 1779
|         |(41328)  <------------------  (443)    |
|10:52:25,685728991|         ACK       |                   |Seq = 1779 Ack = 2535
|         |(41328)  ------------------>  (443)    |
|10:52:26,076125389|         PSH, ACK - Len: 24            |Seq = 2535 Ack = 1779
|         |(41328)  <------------------  (443)    |
|10:52:26,076139312|         ACK       |                   |Seq = 1779 Ack = 2559
|         |(41328)  ------------------>  (443)    |
|10:52:26,076153580|         FIN, ACK  |                   |Seq = 2559 Ack = 1779
|         |(41328)  <------------------  (443)    |
|10:52:26,119030039|         ACK       |                   |Seq = 1779 Ack = 2560
|         |(41328)  ------------------>  (443)    |
|10:52:27,719480133|         PSH, ACK - Len: 680           |Seq = 1779 Ack = 2560
|         |(41328)  ------------------>  (443)    |
|10:52:27,719542640|         PSH, ACK - Len: 530           |Seq = 2459 Ack = 2560
|         |(41328)  ------------------>  (443)    |
|10:52:27,719716543|         PSH, ACK - Len: 40            |Seq = 2989 Ack = 2560
|         |(41328)  ------------------>  (443)    |
|10:52:27,719742207|         FIN, PSH, ACK - Len:          |Seq = 3029 Ack = 2560
|         |(41328)  ------------------>  (443)    |
|10:52:27,735426430|         ACK       |                   |Seq = 2560 Ack = 2459
|         |(41328)  <------------------  (443)    |
|10:52:27,735894331|         ACK       |                   |Seq = 2560 Ack = 2989
|         |(41328)  <------------------  (443)    |
|10:52:27,735945469|         ACK       |                   |Seq = 2560 Ack = 3029
|         |(41328)  <------------------  (443)    |
|10:52:27,736116706|         ACK       |                   |Seq = 2560 Ack = 3070
|         |(41328)  <------------------  (443)    |

JOSM log:

10:52:25.582 FEIN: Änderungssätze einlesen …
10:52:25.582 FEIN: Verbinde mit Server ...
10:52:25.582 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=...}
10:52:25.686 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=77777&open=true -> HTTP/1.1 200 (103 ms; 459 B)
10:52:25.686 FEIN: RESPONSE HEADERS: {null=[HTTP/1.1 200 OK], Server=[Apache/2.4.41 (Ubuntu)], ...}
10:52:25.686 FEIN: Daten werden heruntergeladen …
10:52:25.686 FEIN: Änderungssätze werden heruntergeladen …
10:52:25.686 FEIN: 
10:52:25.686 FEIN: Liste der Änderungssätze einlesen …
10:52:25.686 FEIN: Starting SAX parsing of org.xml.sax.InputSource@72a06a75 using org.openstreetmap.josm.io.OsmChangesetParser$Parser@3e36cda1
10:52:25.687 FEIN: 'SAX parsing' in 0 ms beendet
10:52:25.687 INFORMATION: 1 open changesets on server
10:52:27.702 INFORMATION: Starting upload with tags {comment=...}
10:52:27.702 INFORMATION: Strategy: CHUNKED_DATASET_STRATEGY, ChunkSize: 10, Policy: none, Close after: false
10:52:27.702 INFORMATION: Änderungssatz 55555: ...
10:52:27.718 FEIN: Exiting map mode: Auswählen
10:52:27.718 INFORMATION: Message notifier inactive
10:52:27.719 FEIN: Verbinde mit Server ...
10:52:27.719 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/55555 (492 B) ...
10:52:27.719 FEIN: Daten werden hochgeladen …
10:52:27.719 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=...}
10:52:27.719 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/55555 -> !!! (0 ms)
10:52:27.720 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.updateChangeset(OsmApi.java:498)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:206)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        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:833)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:903)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:726)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3257)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:269)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

10:52:27.720 WARNUNG: Already here java.net.SocketException: Unexpected end of file from server
10:52:27.720 INFORMATION: Message notifier active (checks every 5 minutes)
10:52:27.793 SCHWERWIEGEND: org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:777)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.updateChangeset(OsmApi.java:498)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:206)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        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:833)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2048)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:2043)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:2042)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1609)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        ... 12 more
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:903)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:726)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3257)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:269)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

10:52:27.794 SCHWERWIEGEND: Netzwerkausnahme - <html>Verbindungsaufbau zum Remote-Server<br>'https://api.openstreetmap.org/api/0.6/' gescheitert.<br>Bitte überprüfen Sie Ihre Internetverbindung.</html>

in reply to:  11 ; comment:15 by stoecker, 4 years ago

Replying to skyper:

Is there a problem with checking for open changesets (#21570) or creating changesets (#21976)?

Replying to stoecker:

Reading the discussion I think we could further mitigate upload duplications when we download and merge the changeset in case of retry attemps.

How does this help with new objects? I would be happy about some magic as it is a real pain to recheck all of them if the connection is cut in the middle or end of a bigger upload.

When an upload process fails we don't know the state. It either could have failed before the server accepted the data (retry is fine) or afterwards (new objects will be duplicated on retry).

When downloading the changeset we can merge the server state and thus replace the new objects in JOSM with the server state and prevent duplicates on retry. Merge code already exists (i.e. manual redownload of area does the same).

comment:16 by mmd, 4 years ago

When downloading the changeset we can merge the server state and thus replace the new objects in JOSM with the server state and prevent duplicates on retry

I think this brings up an interesting question, at what time such a changeset download should ideally happen. Let's assume we have a really large changeset, and the network breaks down in the middle of an upload. It might still take around 30-60s in these extreme cases for the changeset upload to be committed on the database. Until then, the changeset download would not return those "in flight" transactions yet. If you fetch the changeset during that timeframe, you would end up creating some duplicates later on.

As a side note, the overall "idempotency" discussion was also trying find find an answer to the "in flight" transactions issue.

in reply to:  15 comment:17 by skyper, 4 years ago

Replying to stoecker:

When downloading the changeset we can merge the server state and thus replace the new objects in JOSM with the server state and prevent duplicates on retry. Merge code already exists (i.e. manual redownload of area does the same).

Are you sure this works? I always ended up with duplicate objects, version=1 vs id=0. The already uploaded objects (version=1) did not merge/replace the new objects (id=0). Especially if members of relations were successfully uploaded but not the relations themself you had to be really careful.

comment:18 by stoecker, 4 years ago

I'm not sure. But I believe we have this :-)

in reply to:  description comment:19 by MKnight, 4 years ago

Replying to MichaelFS:

The issue has been reported multiple times since January 2022 from several users in the German Forum [ https://forum.openstreetmap.org/viewtopic.php?id=74624]

i got this error(s) earlier little bit before November 22th (see https://forum.openstreetmap.org/viewtopic.php?pid=851970#p851970).
That was the day i got feedback from other user in IRC who has the same problem too for a while.

comment:20 by flohoff, 4 years ago

I am having the same issues since early 2022 i think - I also reported it to the Github issue before.
Running Linux openjdk 11, most of the time dual stacked.

I once got it in wireshark and IIRC its an early SSL abort. So no wonder we cant see the request in RAILs or on the server at all. I try capturing a tcpdump again. It used to be pretty annoying e.g. 3 out of 4 connection attempts failed (For me it initially looked like an API load balancing issue or something) and is now much better like 1 in 8 which fail.

Flo

comment:21 by flohoff, 4 years ago

There is a packet capture.

https://silicon-verl.de/home/flo/tmp/20220623/20220623-flo-pcap-josm-failed-connect2.pcap

So what i can see is that the TCP connection was kept open from the JOSM side (the connection started in 20:41:45 for checking open changesets) and josm tries to reuse that connection for the upload at 20:41:47 which then fails.

Corresponding josm output:

2022-06-23 20:41:45.772 INFO: GET https://api.openstreetmap.org/api/0.6/changesets?user=34927&open=true -> HTTP/1.1 200 (141 ms; 189 B)
2022-06-23 20:41:45.774 INFO: 0 open changesets on server
2022-06-23 20:41:47.394 INFO: Starting upload with tags {created_by=JOSM/1.5 (18382 en), comment=Add landuse}
2022-06-23 20:41:47.394 INFO: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-06-23 20:41:47.394 INFO: Changeset 0: Add landuse
2022-06-23 20:41:47.469 INFO: Message notifier inactive
2022-06-23 20:41:47.470 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (223 B) ...
2022-06-23 20:41:47.513 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (39 ms)
2022-06-23 20:41:47.515 WARNING: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:152)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
	at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
	at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
	at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
	at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
	at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
	at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
	... 15 more

2022-06-23 20:41:47.516 INFO: Message notifier active (checks every 60 minutes)
2022-06-23 20:41:47.733 SEVERE: org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server
org.openstreetmap.josm.io.OsmTransferException: java.net.SocketException: Unexpected end of file from server
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:777)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
	at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
	at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
	at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
	at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
	at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:152)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
	... 12 more
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
	at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
	... 15 more

2022-06-23 20:41:47.750 SEVERE: Network exception - <html>Failed to open a connection to the remote server<br>'https://api.openstreetmap.org/api/0.6/'.<br>Please check your internet connection.</html>
Last edited 4 years ago by taylor.smock (previous) (diff)

comment:22 by mmd, 4 years ago

NB: I added a link back to this ticket on the operations issue: https://github.com/openstreetmap/operations/issues/597

It's quite interesting that everyone reports issues with the two changeset endpoints which are handled by the Rails port.

by taylor.smock, 4 years ago

Attachment: 22160.patch added

Instead of catching ConnectException, catch its super class SocketException, and retry

comment:23 by taylor.smock, 4 years ago

To whoever provided comment:12, and comment:21 (flohoff): thank you. The logged stack traces were helpful.

Please try attachment:josm-custom.jar and see if that fixes the problem.

Note that I have not yet committed it, as I want to go through the history and see if there was a reason for us to use ConnectException over SocketException. Like uploading the same thing twice. So please check for duplicate uploads on a frequent basis if you do test out the attachment:josm-custom.jar file.

EDIT: ConnectException was first introduced in r874.

Last edited 4 years ago by taylor.smock (previous) (diff)

comment:24 by flohoff, 4 years ago

With the josm-custom.jar from comment:23

Okay - so after 2 uploads i got this. I did not get a popup - Everything went through smooth.

But it feels like we are painting over something here. Something in the SSL/TLS handling seems to go boom and we are now just reconnecting in any case something fails.

2022-06-23 21:48:55.554 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)
2022-06-23 21:48:55.559 WARNING: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
	at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
	at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
	at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
	at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
	at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
	at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
	... 15 more

2022-06-23 21:48:55.560 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.684 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (74 ms; 9 B)
2022-06-23 21:48:55.684 INFO: OK
Last edited 4 years ago by taylor.smock (previous) (diff)

comment:25 by flohoff, 4 years ago

While staring at it again - Are these times accurate?

2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)

1ms is well below the RTT to the api.openstreetmap.org - so something in the local API knows the connection is gone.

in reply to:  24 ; comment:26 by taylor.smock, 4 years ago

Replying to flohoff:

With the josm-custom.jar from comment:23

Okay - so after 2 uploads i got this. I did not get a popup - Everything went through smooth.

But it feels like we are painting over something here. Something in the SSL/TLS handling seems to go boom and we are now just reconnecting in any case something fails.

That is literally what we are doing. Something is causing a failure, so we are just retrying. Originally, we were just retrying in case of a timeout. With attachment:22160.patch, we are retrying in any case where there is a socket exception.

Known subclasses for SocketException ("Thrown to indicate that there is an error creating or accessing a Socket")

  • BindException -- shouldn't be thrown, "Signals that an error occurred while attempting to bind a socket to a local address and port. Typically, the port is in use, or the requested local address could not be assigned."
  • ConnectException-- replacing that here, "Signals that an error occurred while attempting to connect a socket to a remote address and port. Typically, the connection was refused remotely (e.g., no process is listening on the remote address/port)."
  • ConnectionResetException -- "Thrown to indicate a connection reset"
  • NoRouteToHostException -- "Signals that an error occurred while attempting to connect a socket to a remote address and port. Typically, the remote host cannot be reached because of an intervening firewall, or if an intermediate router is down."
  • PortUnreachableException -- "Signals that an ICMP Port Unreachable message has been received on a connected datagram."
  • Various subclasses from httpclient, shouldn't be thrown in our code.

All of the ones that we should see indicate we should probably retry.

So I think applying attachment:22160.patch is safe, but considering the age of the code, and the criticality thereof, I don't think we should apply it until next Wednesday (assuming we do a release this weekend).

Of note, all the reported logs show that the calling issue is at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85). We are getting the header field (specifically, the HTTP version), which fails. This sets the rememberedException variable in HttpUrlConnection, which throws it when getInputStream is called again.

You can alternatively try the HTTP2 plugin, and see if that helps.

comment:27 by taylor.smock, 4 years ago

Description: modified (diff)
Milestone: 22.07
Resolution: othersoftware
Status: closedreopened
Summary: Upload of changes works only after several attempts[PATCH] Retry on `SocketException: Unexpected end of file from server`

Even though I still feel like the original report by MichaelFS was due to a possibly flaky OSM server, I'm going to reopen this since a good chunk of discussion for a separate issue has occurred here.

comment:28 by mmd, 4 years ago

Regarding the criticality, I think this also depends on the endpoint.

As an example, retrying "PUT /api/0.6/changeset/create" would create another empty changeset but wouldn't otherwise result in duplicate data being uploaded. Unless you're sending dozens of these in a short timeframe, I don't see much of an issue here.

Retrying "PUT /api/0.6/changeset/55555" causes no issue at all, as it would only update metadata for an existing changeset.

Changeset upload is really the tricky one in the "all new object" use case (otherwise you'd get a 409 Conflict on a retry of a previously successful upload).

comment:29 by anonymous, 4 years ago

I tried something different as i was keen to actually trace and decode the SSL Sessions. So i quickly setup an SSL Proxy for the API and voila - the issue is gone.

I put:

        SSLProxyEngine On
        <Location /osmapi>
                ProxyPass https://api.openstreetmap.org/api
                ProxyPassReverse https://api.openstreetmap.org/api
        </Location>

into my apache2 config on.

And then i switched to:

https://osm.zz.de/osmapi

as the API Endpoint (And back to basic user auth).

Just as a shot into the blue:

JOSM has an issue with timeouts on TLS connections, which in case of HTTP/1.1 keep-alive i guess are beeing kept open, and the OSM API endpoints having short timeouts dropping the connections. On reuse you stumble into a already dead but unnoticed dead connection.

My guess is that in late 2021 or early 2022 either JOSM changed to HTTP/1.1 or HTTP keepalive or the Admins for the OSM API reduced the keepalive timeout on their end or even introduced keepalive.

Flo

comment:30 by mmd, 4 years ago

@flo: I'm not sure what JOSM maintainers would recommend, but there's a command line parameter -Djavax.net.debug=all command line parameter to enable SSL/TLS session tracing. Maybe that could be helpful to trace all network traffic (including decrypted payload) without involving an SSL proxy. Also see https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/ReadDebug.html

I'm going to add your comment to the operations issue to double check if any change has been introduced on osm.org side.

comment:31 by mmd, 4 years ago

By the way, has anyone been able to successfully reproduce the issue on the dev instance https://master.apis.dev.openstreetmap.org ? You'd need a dedicated account there, and for OAuth to work, you also need to register an application there. For your convenience, I've already registered an application you could use and enter in your local JOSM instance for testing:

Consumer Key:       KYQPbQvL9EWZKkT2CpRukwCzzhBUJIEnGtjZ1dhy 
Consumer Secret:    62Wm25aNOTUVlxwm3OtxSDxpI6QVlUOpLO7SXdKL
Request Token URL:  https://master.apis.dev.openstreetmap.org/oauth/request_token
Access Token URL:   https://master.apis.dev.openstreetmap.org/oauth/access_token
Authorise URL:      https://master.apis.dev.openstreetmap.org/oauth/authorize


I think this would be really helpful, as we could posibly try different options without creating tons of useless empty changesets on production.

in reply to:  25 ; comment:32 by Fabi2, 4 years ago

Replying to flohoff:

While staring at it again - Are these times accurate?

2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)

1ms is well below the RTT to the api.openstreetmap.org - so something in the local API knows the connection is gone.

Can it be an issue with a half-closed (see "man 2 shutdown" on Linux) TCP-connection? Then read() should return 0 for EOF and you can`t write to the socket anymore.

Last edited 4 years ago by Fabi2 (previous) (diff)

in reply to:  32 ; comment:33 by anonymous, 4 years ago

Replying to Fabi2:

Replying to flohoff:

While staring at it again - Are these times accurate?

2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)

1ms is well below the RTT to the api.openstreetmap.org - so something in the local API knows the connection is gone.

Can it be an issue with a half-closed (see "man 2 shutdown" on Linux) TCP-connection? Then read() should return 0 for EOF and you can`t write to the socket anymore.

Yes, the operating system already knows that the connection is (half) closed, but it seems that Java didn't recognize it, otherwise the connect() call would do a connect instead of trying to reuse the already closed keepalive connection. Maybe some sort of race condition on the Java side?

in reply to:  30 ; comment:34 by anonymous, 4 years ago

Summary of my new log with -Djavax.net.debug=all:

  1. Keepalive connection establised, some data is sent.
  2. Server closes connection at 15:00:37,046750483, now the connection is half closed.
  3. 15:00:37.918 duplex close of SSLSocket
  4. At 15:00:39.374 JOSM tries to connect.
  5. At 15:00:39,374425021 client closes the half closed connection.

Hypothesis:

  • Without keepalive, there wouldn't be a problem.
  • If the server (half) closes the connection before the client fully closes the connection and within this time period JOSM tries to connect, there is a "SocketException: Unexpected end of file from server".
|Time     | OSM mapper PC                         |
|         |                   | api.openstreetmap.org                 
|15:00:34,704325832|         54034 → https(443) [SYN] Seq=0 Win=64240          |TCP: 54034 → https(443) [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,719281895|         https(443) → 54034 [SYN, ACK] Seq=0 Ack=          |TCP: https(443) → 54034 [SYN, ACK] Seq=0 Ack=1 Win=43440 Len=0 MSS=1452 SACK_PERM=1
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,719313553|         54034 → https(443) [ACK] Seq=1 Ack=1 Win          |TCP: 54034 → https(443) [ACK] Seq=1 Ack=1 Win=64256 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,722362804|         Client Hello                  |                   |TLSv1.3: Client Hello
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,737111609|         https(443) → 54034 [ACK] Seq=1 Ack=701 W          |TCP: https(443) → 54034 [ACK] Seq=1 Ack=701 Win=43008 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,737882881|         Server Hello, Change Cipher Spec, Applic          |TLSv1.3: Server Hello, Change Cipher Spec, Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,737895417|         54034 → https(443) [ACK] Seq=701 Ack=144          |TCP: 54034 → https(443) [ACK] Seq=701 Ack=1441 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,738067792|         https(443) → 54034 [PSH, ACK] Seq=1441 A          |TCP: https(443) → 54034 [PSH, ACK] Seq=1441 Ack=701 Win=43008 Len=1440
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,738073903|         54034 → https(443) [ACK] Seq=701 Ack=288          |TCP: 54034 → https(443) [ACK] Seq=701 Ack=2881 Win=63360 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,738191041|         https(443) → 54034 [PSH, ACK] Seq=2881 A          |TCP: https(443) → 54034 [PSH, ACK] Seq=2881 Ack=701 Win=43008 Len=1216
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,738195093|         54034 → https(443) [ACK] Seq=701 Ack=409          |TCP: 54034 → https(443) [ACK] Seq=701 Ack=4097 Win=62464 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,739864733|         Application Data, Application Data, Appl          |TLSv1.3: Application Data, Application Data, Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,739869105|         54034 → https(443) [ACK] Seq=701 Ack=522          |TCP: 54034 → https(443) [ACK] Seq=701 Ack=5223 Win=61440 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,750531940|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,751211100|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,764772217|         https(443) → 54034 [ACK] Seq=5223 Ack=79          |TCP: https(443) → 54034 [ACK] Seq=5223 Ack=791 Win=43008 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,765269196|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,765275519|         54034 → https(443) [ACK] Seq=1444 Ack=55          |TCP: 54034 → https(443) [ACK] Seq=1444 Ack=5526 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,765269274|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,765280934|         54034 → https(443) [ACK] Seq=1444 Ack=58          |TCP: 54034 → https(443) [ACK] Seq=1444 Ack=5829 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:34,765695909|         https(443) → 54034 [ACK] Seq=5829 Ack=14          |TCP: https(443) → 54034 [ACK] Seq=5829 Ack=1444 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,811398267|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:34,811411649|         54034 → https(443) [ACK] Seq=1444 Ack=78          |TCP: 54034 → https(443) [ACK] Seq=1444 Ack=7824 Win=63872 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:37,046693429|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  <--------------------------------------  (443)    |
|15:00:37,046730733|         54034 → https(443) [ACK] Seq=1444 Ack=78          |TCP: 54034 → https(443) [ACK] Seq=1444 Ack=7848 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:37,046750483|         https(443) → 54034 [FIN, ACK] Seq=7848 A          |TCP: https(443) → 54034 [FIN, ACK] Seq=7848 Ack=1444 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:37,088053783|         54034 → https(443) [ACK] Seq=1444 Ack=78          |TCP: 54034 → https(443) [ACK] Seq=1444 Ack=7849 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,367971708|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,368580828|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,374277842|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,374373406|         Application Data              |                   |TLSv1.3: Application Data
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,374425021|         54034 → https(443) [FIN, ACK] Seq=2722 A          |TCP: 54034 → https(443) [FIN, ACK] Seq=2722 Ack=7849 Win=64128 Len=0
|         |(54034)  -------------------------------------->  (443)    |
|15:00:39,382830835|         https(443) → 54034 [ACK] Seq=7849 Ack=21          |TCP: https(443) → 54034 [ACK] Seq=7849 Ack=2127 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:39,383249972|         https(443) → 54034 [ACK] Seq=7849 Ack=26          |TCP: https(443) → 54034 [ACK] Seq=7849 Ack=2642 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:39,388762701|         https(443) → 54034 [ACK] Seq=7849 Ack=26          |TCP: https(443) → 54034 [ACK] Seq=7849 Ack=2682 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:39,388774755|         https(443) → 54034 [ACK] Seq=7849 Ack=27          |TCP: https(443) → 54034 [ACK] Seq=7849 Ack=2722 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
|15:00:39,389166335|         https(443) → 54034 [ACK] Seq=7849 Ack=27          |TCP: https(443) → 54034 [ACK] Seq=7849 Ack=2723 Win=42496 Len=0
|         |(54034)  <--------------------------------------  (443)    |
15:00:34.703 FEIN: Verbinde mit Server ...
15:00:34.703 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=...}
javax.net.ssl|DEBUG|14|AWT-EventQueue-0|15:00:34.722 CEST|SSLSocketOutputRecord.java:261|WRITE: TLSv1.3 handshake, length = 695
javax.net.ssl|DEBUG|14|AWT-EventQueue-0|15:00:34.738 CEST|SSLSocketInputRecord.java:214|READ: TLSv1.2 handshake, length = 90
15:00:34.813 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=00000&open=true -> HTTP/1.1 200 (109 ms; 436 B)
15:00:34.813 FEIN: RESPONSE HEADERS: {null=[HTTP/1.1 200 OK], Server=[Apache/2.4.41 (Ubuntu)], ..., Keep-Alive=[timeout=5, max=100], Status=[200 OK], ..., Connection=[Keep-Alive], ...}
15:00:34.813 FEIN: Daten werden heruntergeladen …
15:00:34.813 FEIN: Änderungssätze werden heruntergeladen …
15:00:34.813 FEIN: Liste der Änderungssätze einlesen …
15:00:34.814 INFORMATION: 1 open changesets on server



repeated 9 times (duplex close):

---
javax.net.ssl|DEBUG|03 2C|Keep-Alive-Timer|15:00:37.918 CEST|SSLSocketImpl.java:578|duplex close of SSLSocket
javax.net.ssl|DEBUG|03 2C|Keep-Alive-Timer|15:00:37.918 CEST|SSLSocketOutputRecord.java:71|WRITE: TLSv1.2 alert(close_notify), length = 10
javax.net.ssl|DEBUG|03 2C|Keep-Alive-Timer|15:00:37.919 CEST|SSLSocketImpl.java:1736|close the underlying socket
javax.net.ssl|DEBUG|03 2C|Keep-Alive-Timer|15:00:37.919 CEST|SSLSocketImpl.java:1755|close the SSL connection (initiative)
javax.net.ssl|DEBUG|03 2C|Keep-Alive-Timer|15:00:37.919 CEST|SSLSocketImpl.java:834|close inbound of SSLSocket
javax.net.ssl|WARNING|03 2C|Keep-Alive-Timer|15:00:37.920 CEST|SSLSocketImpl.java:596|SSLSocket duplex close failed (
"throwable" : {
  java.net.SocketException: Socket is closed
        at java.base/java.net.Socket.shutdownInput(Socket.java:1539)
        at java.base/sun.security.ssl.BaseSSLSocketImpl.shutdownInput(BaseSSLSocketImpl.java:216)
        at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:849)
        at java.base/sun.security.ssl.SSLSocketImpl.bruteForceCloseInput(SSLSocketImpl.java:799)
        at java.base/sun.security.ssl.SSLSocketImpl.duplexCloseOutput(SSLSocketImpl.java:661)
        at java.base/sun.security.ssl.SSLSocketImpl.close(SSLSocketImpl.java:585)
        at java.base/sun.net.www.http.HttpClient.closeServer(HttpClient.java:1062)
        at java.base/sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:183)
        at java.base/java.lang.Thread.run(Thread.java:829)
        at java.base/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:161)}

)
---

15:00:39.343 INFORMATION: Starting upload with tags {comment=..., created_by=JOSM/1.5 (18500 de)}
15:00:39.367 FEIN: Verbinde mit Server ...
15:00:39.367 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/1111111 (477 B) ...
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.367 CEST|SSLSocketOutputRecord.java:334|WRITE: TLSv1.3 application_data, length = 645
15:00:39.368 FEIN: Daten werden hochgeladen …
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.368 CEST|SSLSocketOutputRecord.java:334|WRITE: TLSv1.3 application_data, length = 477
15:00:39.368 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=..., Connection=close, Content-Type=text/xml}
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.368 CEST|SSLSocketInputRecord.java:214|READ: TLSv1.2 application_data, length = 19
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.368 CEST|SSLSocketInputRecord.java:247|READ: TLSv1.2 application_data, length = 19
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.374 CEST|SSLSocketImpl.java:578|duplex close of SSLSocket
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.374 CEST|SSLSocketOutputRecord.java:71|WRITE: TLSv1.3 alert(user_canceled), length = 2
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.374 CEST|SSLSocketOutputRecord.java:71|WRITE: TLSv1.3 alert(close_notify), length = 2
javax.net.ssl|DEBUG|13|main-worker-0|15:00:39.374 CEST|SSLSocketImpl.java:1755|close the SSL connection (passive)
15:00:39.374 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/1111111 -> !!! (5 ms)
15:00:39.376 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.updateChangeset(OsmApi.java:498)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:206)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

comment:35 by mmd, 4 years ago

Are we using keepalive at all in this scenario? My understanding of https://github.com/JOSM/josm/blob/master/src/org/openstreetmap/josm/io/OsmApi.java#L704 would be, that we're explicitly asking the server to close the connection.

comment:36 by mmd, 4 years ago

Sorry, I missed the initial "Why"... it should read: "Why are we using keepalive ...?"

in reply to:  34 comment:37 by anonymous, 4 years ago

Replying to anonym:

Summary of my new log with -Djavax.net.debug=all:

  1. Keepalive connection establised, some data is sent.
  2. Server closes connection at 15:00:37,046750483, now the connection is half closed.
  3. 15:00:37.918 duplex close of SSLSocket
  4. At 15:00:39.374 JOSM tries to connect.
  5. At 15:00:39,374425021 client closes the half closed connection.

I think a simple read on the connection before trying to use it again should bring the error up.

in reply to:  26 ; comment:38 by taylor.smock, 4 years ago

From comment:26, can someone who is consistently seeing the problem try the http2 plugin on the official builds of JOSM, and see if that fixes the problem? If so, we might consider pushing Java 11+ harder (see #17858), so we can merge http2 into JOSM core.

We have to move the needle on Java 11+ uptake by ~15% though (currently ~20% for people who actually update JOSM -- we typically want <5% of users remaining on an old Java version before updating).

in reply to:  35 comment:39 by anonymous, 4 years ago

Replying to mmd:

Are we using keepalive at all in this scenario? My understanding of https://github.com/JOSM/josm/blob/master/src/org/openstreetmap/josm/io/OsmApi.java#L704 would be, that we're explicitly asking the server to close the connection.

Yes, you are right, "Connection=close" is send to the server and visible in the log:

15:00:39.368 FEIN: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key=..., Connection=close, Content-Type=text/xml}

in reply to:  33 comment:40 by anonymous, 4 years ago

Replying to anonym:

Replying to Fabi2:

Replying to flohoff:

While staring at it again - Are these times accurate?

2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)

1ms is well below the RTT to the api.openstreetmap.org - so something in the local API knows the connection is gone.

Can it be an issue with a half-closed (see "man 2 shutdown" on Linux) TCP-connection? Then read() should return 0 for EOF and you can`t write to the socket anymore.

Yes, the operating system already knows that the connection is (half) closed, but it seems that Java didn't recognize it, otherwise the connect() call would do a connect instead of trying to reuse the already closed keepalive connection. Maybe some sort of race condition on the Java side?

Or maybe the JRE doesn't handle this situation and tries to write to the the already half-closed socket.

in reply to:  38 ; comment:41 by anonymous, 4 years ago

Thanks for taylor.smock:

From comment:26, can someone who is consistently seeing the problem try the http2 plugin on the official builds of JOSM, and see if that fixes the problem? If so, we might consider pushing Java 11+ harder (see #17858), so we can merge http2 into JOSM core.
We have to move the needle on Java 11+ uptake by ~15% though (currently ~20% for people who actually update JOSM -- we typically want <5% of users remaining on an old Java version before updating).

I just added the AddOn http2 to JOSM and re-started the software. After that about 17 UPloads without any API-message! I'll check it further and will report it here, in case the API-issue should be back.
But my actual success should encourage everybody, to give it a try.

in reply to:  41 ; comment:42 by MichaelFS, 4 years ago

Just for clarification: Comment # 38 has been published by myself.

in reply to:  42 comment:43 by MichaelFS, 4 years ago

SORRY, not Comment # 38 but # 41!

comment:44 by anonymous, 4 years ago

> From comment:26, can someone who is consistently seeing the problem try the http2 plugin on the official builds of JOSM, and see if that fixes the problem?

The http2 plugin did not solve the issue on my system. But the error message has changed to:

2022-06-28 12:34:11.928 SCHWERWIEGEND: Ein-/Ausgabefehler - <html>Datenübertragungsfehler zum Server<br>"https://api.openstreetmap.org/api/0.6/"<br>beim Hoch- oder Herunterladen.<br>Details: /192.168.2.101:50438: GOAWAY received</html>

comment:45 by Fabi2, 4 years ago

A few days ago I had the API-problem even with OpenJDK 18.x.x on Linux, but since 3 or 4 days I don't see it anymore. I tried to look at the code a bit. Besides the RemoteControl-server, witch uses accept() it only uses hi-level classes for networking. I wondered why there are no methods for calling shutdown() in java.net.ServerSocket, as you can call it for java.net.Socket. The JRE developers seems to think that no one will call it for a server socket and maybe also don't handle it.

in reply to:  44 comment:46 by taylor.smock, 4 years ago

Replying to anonymous:

2022-06-28 12:34:11.928 SCHWERWIEGEND: Ein-/Ausgabefehler - <html>Datenübertragungsfehler zum Server<br>"https://api.openstreetmap.org/api/0.6/"<br>beim Hoch- oder Herunterladen.<br>Details: /192.168.2.101:50438: GOAWAY received</html>

This is actually a bit different. GOAWAY is something that is sent by the server (see RFC7540 for the HTTP/2 spec). What we have been discussing is random disconnects under HTTP/1. GOAWAY could mean one of several things:

  • Server is going down for maintenance
  • We are misbehaving somewhere (unlikely -- presumably firefishy would let us know)

In any case, once a GOAWAY is received, any further communication with the server requires a new connection (per HTTP/2 spec).

comment:47 by mmd, 4 years ago

I also experienced one instance of a "GOAWAY" on Oracle JDK 18 running on Ubuntu 20.04 after deploying the http2 plugin.
Besides, I also noticed some new warnings on the console about the "Connection" HTTP header field, which weren't present on Java 11.

in reply to:  41 comment:48 by MichaelFS, 4 years ago

Today I experienced the failure
Datenübertragungsfehler zum Server "https://api.openstreetmap.org/api/0.6/" beim Hoch- oder Herunterladen. Details: /10.11.30.141:33216: GOAWAY received
The changeset consist of 65 modifications, and the error came after 9 have been uploaded. This means, the new message does not show up during "handshake" (no modification uploaded yet) as the old one (without http2) did all time.

comment:49 by mmd, 4 years ago

Another user reported that they experienced GOAWAY when creating a new changeset once the http2 plugin was enabled:

JOSM-tested 18463
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-suse-150000.3.80.1-x8664)
OpenJDK 64-Bit Server VM (build 11.0.15+10-suse-150000.3.80.1-x8664, mixed mode)

Source: https://forum.openstreetmap.org/viewtopic.php?pid=866193#p866193

comment:50 by mdk, 4 years ago

Maybe #20774 is related with the GOAWAY problem?

in reply to:  description comment:51 by Renee ruby <Reneerust5@…>, 4 years ago

Replying to MichaelFS:

What steps will reproduce the problem?

  1. Open JOSM and create one or more changes, no matter whether on ode, way or relation
  2. Click UPload

What is the expected result?

UPload should be accepted, a "SUCCESS"-message should be displayed.

What happens instead?

Message: Connection with Remote-Server
https://api.openstreetmap.org/api/0.6/failed.
Please check your Internet-connection.

Of course, the Internet-connection is stable and ONline. Nevertheless, I experienced such failures up to five times for one changeset.

The issue has been reported multiple times since January 2022 from several users in the German Forum [ https://forum.openstreetmap.org/viewtopic.php?id=74624]

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-04-04 22:26:00 +0200 (Mon, 04 Apr 2022)
Revision:18427
Build-Date:2022-04-05 01:30:55
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18427 de) Linux Manjaro Linux
Memory Usage: 292 MB / 7832 MB (143 MB allocated, but free)
Java version: 18.0.1.1+2, N/A, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.nimbus.NimbusLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: de_DE.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: de_DE
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: KDE
VM arguments: [--add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, -Djosm.restart=true, -Dawt.useSystemAAFontSettings=gasp]

Plugins:
+ buildings_tools (35978)
+ continuosDownload (99)
+ fieldpapers (v0.5.0)
+ reverter (35980)
+ terracer (35893)
+ undelete (35893)
+ utilsplugin2 (35978)

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1

Note: The below stack traces may not be related to the above issue (was closed as othersoftware, see comment:1 )
From comment:12/comment:24

2022-06-23 21:48:55.554 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.558 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)
2022-06-23 21:48:55.559 WARNING: java.net.SocketException: Unexpected end of file from server. Cause: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
	at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
	at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
	at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
	at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
	at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
	at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
	at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
	at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
	at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
	at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
	at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
	... 15 more

2022-06-23 21:48:55.560 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create (229 B) ...
2022-06-23 21:48:55.684 INFO: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (74 ms; 9 B)
2022-06-23 21:48:55.684 INFO: OK

in reply to:  50 comment:52 by taylor.smock, 4 years ago

Replying to mdk:

Maybe #20774 is related with the GOAWAY problem?

Maybe?

Anyway, jep 353 might be part of the cause. This was part of Java 13.

To test the "old" version of the socket implementation, start josm with java -Djdk.net.usePlainSocketImpl=true -jar josm-latest.jar.
Did anyone check if it was reproducible with Java 8/11 (see comment:6)?

You can also try different versions of Java (starting with Java 8) and see if it starts occurring with a specific Java version.

comment:53 by mmd, 4 years ago

Did anyone check if it was reproducible with Java 8/11

Yes, please see my comment https://josm.openstreetmap.de/ticket/22160#comment:49
This user experienced issues on openjdk11 both with and w/o http2 plugin.

comment:54 by mmd, 4 years ago

By the way, I'd highly recommend to review this analysis: https://forum.openstreetmap.org/viewtopic.php?pid=866289#p866289
Use Google Translate. I reviewed the English translation, it looks just fine to me.

in reply to:  53 comment:55 by taylor.smock, 4 years ago

Replying to mmd:

Did anyone check if it was reproducible with Java 8/11

Yes, please see my comment https://josm.openstreetmap.de/ticket/22160#comment:49
This user experienced issues on openjdk11 both with and w/o http2 plugin.

I kind of skimmed over it because it was java 11 + http2.

Use Google Translate. I reviewed the English translation, it looks just fine to me.

I used https://browser.mt/ since I don't like google. I think I got most of it. Comment 70/71 on the post may make it easier for me to troubleshoot the root cause.

comment:56 by mmd, 4 years ago

My proposal right now would be to put the http2 plugin experiment on hold, and ask users to uninstall it. There are new kind of issues popping up now (e.g. https://imgbb.com/FH8vwgB ), and it seems the plugin still needs a bit more work to be ready for prime time.

comment:57 by taylor.smock, 4 years ago

For those trying attachment:22160.patch with attachment:josm-custom.jar, has anyone noticed duplicate uploads?

comment:58 by chris66, 4 years ago

Thanks, the patch is working for me.

in reply to:  58 comment:59 by taylor.smock, 4 years ago

Replying to chris66:

Thanks, the patch is working for me.

Good. One thing I am somewhat worried about is double uploads. If you get a conflict, and the last user who made changes to the conflict object was you, then we've got a problem. Like I said in comment:26, I think applying the patch is safe. I just want to apply it after we do a stable release, which I'm planning to do today. Which means I may apply that patch Monday.

in reply to:  57 ; comment:60 by MichaelFS, 4 years ago

Replying to taylor.smock:

For those trying attachment:22160.patch with attachment:josm-custom.jar, has anyone noticed duplicate uploads?

Thanks a lot for your support and effort!!
I've done the same as chris66 before: DE-installed http2 and run the patched version. There was no failure message and I could not notice any duplicate upload (How to identify that? What will happen by then?).
However, in the konsole output there were several issues (lines 2, 34, 66 and so on):

2022-07-06 15:40:37.555 INFORMATION: GET https://api.openstreetmap.org/api/0.6/user/details -> !!! (1 ms)
2022-07-06 15:40:37.557 WARNUNG: java.net.UnknownHostException: api.openstreetmap.org
java.net.UnknownHostException: api.openstreetmap.org
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:305)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:203)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:189)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168)
        at org.openstreetmap.josm.tools.Http1Client.performConnection(Http1Client.java:78)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:157)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:195)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:138)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:122)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStream(OsmServerReader.java:86)
        at org.openstreetmap.josm.io.OsmServerReader.fetchData(OsmServerReader.java:424)
        at org.openstreetmap.josm.io.OsmServerUserInfoReader.fetchUserInfo(OsmServerUserInfoReader.java:170)
        at org.openstreetmap.josm.io.MessageNotifier$Worker.run(MessageNotifier.java:83)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)

2022-07-06 15:40:37.558 SCHWERWIEGEND: java.net.UnknownHostException: api.openstreetmap.org
java.net.UnknownHostException: api.openstreetmap.org
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:305)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:203)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:189)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168)
        at org.openstreetmap.josm.tools.Http1Client.performConnection(Http1Client.java:78)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:157)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:195)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:138)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:122)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStream(OsmServerReader.java:86)
        at org.openstreetmap.josm.io.OsmServerReader.fetchData(OsmServerReader.java:424)
        at org.openstreetmap.josm.io.OsmServerUserInfoReader.fetchUserInfo(OsmServerUserInfoReader.java:170)
        at org.openstreetmap.josm.io.MessageNotifier$Worker.run(MessageNotifier.java:83)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)

2022-07-06 15:40:37.560 WARNUNG: org.openstreetmap.josm.io.OsmTransferException: Verbindung zum OSM-Server fehlgeschlagen. Bitte überprüfen Sie Ihre Internetverbindung.. Ursache: java.net.UnknownHostException: api.openstreetmap.org
org.openstreetmap.josm.io.OsmTransferException: Verbindung zum OSM-Server fehlgeschlagen. Bitte überprüfen Sie Ihre Internetverbindung.
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:200)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:138)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:122)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStream(OsmServerReader.java:86)
        at org.openstreetmap.josm.io.OsmServerReader.fetchData(OsmServerReader.java:424)
        at org.openstreetmap.josm.io.OsmServerUserInfoReader.fetchUserInfo(OsmServerUserInfoReader.java:170)
        at org.openstreetmap.josm.io.MessageNotifier$Worker.run(MessageNotifier.java:83)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.UnknownHostException: api.openstreetmap.org
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.base/java.net.Socket.connect(Socket.java:609)
        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:305)
        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:177)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:373)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:203)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081)
        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:189)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:168)
        at org.openstreetmap.josm.tools.Http1Client.performConnection(Http1Client.java:78)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:157)
        at org.openstreetmap.josm.io.OsmServerReader.getInputStreamRaw(OsmServerReader.java:195)
        ... 12 more

2022-07-06 15:45:38.186 INFORMATION: GET https://api.openstreetmap.org/api/0.6/user/details (Anzahl der ungelesenen Nachrichten abrufen) -> HTTP/1.1 200 (632 ms; 402 B)
2022-07-06 15:50:37.723 INFORMATION: GET https://api.openstreetmap.org/api/0.6/user/details (Anzahl der ungelesenen Nachrichten abrufen) -> HTTP/1.1 200 (170 ms; 402 B)
2022-07-06 15:51:40.650 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 15:51:57.346 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 15:52:01.710 INFORMATION: Getting 0,2% of area, already have 99,8%, overlap 0,0%

2022-07-06 15:52:10.622 INFORMATION: Getting 5,8% of area, already have 94,2%, overlap 0,0%

2022-07-06 15:52:25.859 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 15:52:28.717 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 15:52:47.098 INFORMATION: GET https://api.openstreetmap.org/api/0.6/way/34684438/history -> HTTP/1.1 200 (155 ms)
2022-07-06 15:52:47.334 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?changesets=97295492,92126132,100795305,3578680,1230013,106620853,4368754,40927426,17746745,98376933,3578669,118440628,106382601,112840647 -> HTTP/1.1 200 (183 ms; 1,08 kB)
2022-07-06 15:55:38.240 INFORMATION: GET https://api.openstreetmap.org/api/0.6/user/details (Anzahl der ungelesenen Nachrichten abrufen) -> HTTP/1.1 200 (685 ms; 402 B)
2022-07-06 15:55:57.236 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (149 ms; 189 B)
2022-07-06 15:55:57.239 INFORMATION: 0 open changesets on server
2022-07-06 15:56:19.904 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (695 ms; 189 B)
2022-07-06 15:56:19.907 INFORMATION: 0 open changesets on server
2022-07-06 15:56:28.119 INFORMATION: Starting upload with tags {comment=operator hinzu, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 15:56:28.120 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 15:56:28.121 INFORMATION: Änderungssatz 0: operator hinzu
2022-07-06 15:56:28.202 INFORMATION: Message notifier inactive
2022-07-06 15:56:28.209 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (274 B) ...
2022-07-06 15:56:28.393 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (96 ms; 9 B)
2022-07-06 15:56:28.393 INFORMATION: OK
2022-07-06 15:56:28.501 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279649/upload (1,01 kB) ...
2022-07-06 15:56:28.668 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279649/upload -> HTTP/1.1 200 (86 ms)
2022-07-06 15:56:28.669 INFORMATION: OK
2022-07-06 15:56:28.787 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279649/close (2 B) ...
2022-07-06 15:56:28.942 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279649/close -> HTTP/1.1 200 (69 ms)
2022-07-06 15:56:28.942 INFORMATION: OK
2022-07-06 15:56:29.043 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 15:56:41.502 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (155 ms; 189 B)
2022-07-06 15:56:41.505 INFORMATION: 0 open changesets on server
2022-07-06 15:56:43.811 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 15:56:43.812 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 15:56:43.812 INFORMATION: Änderungssatz 0: check_date
2022-07-06 15:56:43.873 INFORMATION: Message notifier inactive
2022-07-06 15:56:43.874 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 15:56:43.985 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (106 ms; 9 B)
2022-07-06 15:56:43.985 INFORMATION: OK
2022-07-06 15:56:44.090 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279659/upload (417 B) ...
2022-07-06 15:56:44.246 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279659/upload -> HTTP/1.1 200 (73 ms)
2022-07-06 15:56:44.246 INFORMATION: OK
2022-07-06 15:56:44.355 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279659/close (2 B) ...
2022-07-06 15:56:44.514 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279659/close -> HTTP/1.1 200 (75 ms)
2022-07-06 15:56:44.514 INFORMATION: OK
2022-07-06 15:56:44.615 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 15:57:34.911 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (178 ms; 189 B)
2022-07-06 15:57:34.915 INFORMATION: 0 open changesets on server
2022-07-06 15:57:56.956 INFORMATION: Starting upload with tags {comment=building type, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 15:57:56.957 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 15:57:56.957 INFORMATION: Änderungssatz 0: building type
2022-07-06 15:57:57.014 INFORMATION: Message notifier inactive
2022-07-06 15:57:57.016 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (273 B) ...
2022-07-06 15:57:57.206 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (104 ms; 9 B)
2022-07-06 15:57:57.206 INFORMATION: OK
2022-07-06 15:57:57.309 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279714/upload (497 B) ...
2022-07-06 15:57:57.479 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279714/upload -> HTTP/1.1 200 (83 ms)
2022-07-06 15:57:57.480 INFORMATION: OK
2022-07-06 15:57:57.592 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279714/close (2 B) ...
2022-07-06 15:57:57.759 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279714/close -> HTTP/1.1 200 (81 ms)
2022-07-06 15:57:57.760 INFORMATION: OK
2022-07-06 15:57:57.861 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 15:58:02.629 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 15:58:03.372 INFORMATION: Getting 5,8% of area, already have 94,2%, overlap 0,0%

2022-07-06 15:59:18.707 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (155 ms; 189 B)
2022-07-06 15:59:18.710 INFORMATION: 0 open changesets on server
2022-07-06 15:59:26.097 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 15:59:26.098 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 15:59:26.098 INFORMATION: Änderungssatz 0: check_date
2022-07-06 15:59:26.162 INFORMATION: Message notifier inactive
2022-07-06 15:59:26.163 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 15:59:26.351 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (99 ms; 9 B)
2022-07-06 15:59:26.351 INFORMATION: OK
2022-07-06 15:59:26.456 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279784/upload (39,6 kB) ...
2022-07-06 15:59:26.936 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279784/upload -> HTTP/1.1 200 (395 ms)
2022-07-06 15:59:26.937 INFORMATION: OK
2022-07-06 15:59:27.083 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279784/close (2 B) ...
2022-07-06 15:59:27.243 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279784/close -> HTTP/1.1 200 (76 ms)
2022-07-06 15:59:27.244 INFORMATION: OK
2022-07-06 15:59:27.345 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 16:00:02.005 INFORMATION: Getting 0,0% of area, already have 100,0%, overlap 0,0%

2022-07-06 16:01:07.259 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (164 ms; 189 B)
2022-07-06 16:01:07.262 INFORMATION: 0 open changesets on server
2022-07-06 16:01:09.503 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 16:01:09.503 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 16:01:09.504 INFORMATION: Änderungssatz 0: check_date
2022-07-06 16:01:09.564 INFORMATION: Message notifier inactive
2022-07-06 16:01:09.566 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:01:09.572 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (2 ms)
2022-07-06 16:01:09.573 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

2022-07-06 16:01:09.575 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:01:09.767 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (110 ms; 9 B)
2022-07-06 16:01:09.767 INFORMATION: OK
2022-07-06 16:01:09.870 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279854/upload (2,85 kB) ...
2022-07-06 16:01:10.037 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279854/upload -> HTTP/1.1 200 (81 ms)
2022-07-06 16:01:10.037 INFORMATION: OK
2022-07-06 16:01:10.173 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279854/close (2 B) ...
2022-07-06 16:01:10.327 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279854/close -> HTTP/1.1 200 (67 ms)
2022-07-06 16:01:10.328 INFORMATION: OK
2022-07-06 16:01:10.430 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 16:01:10.601 INFORMATION: GET https://api.openstreetmap.org/api/0.6/user/details (Anzahl der ungelesenen Nachrichten abrufen) -> HTTP/1.1 200 (170 ms; 402 B)
2022-07-06 16:01:32.706 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (161 ms; 189 B)
2022-07-06 16:01:32.709 INFORMATION: 0 open changesets on server
2022-07-06 16:01:34.825 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 16:01:34.826 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 16:01:34.826 INFORMATION: Änderungssatz 0: check_date
2022-07-06 16:01:34.892 INFORMATION: Message notifier inactive
2022-07-06 16:01:34.893 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:01:35.144 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (247 ms; 9 B)
2022-07-06 16:01:35.145 INFORMATION: OK
2022-07-06 16:01:35.249 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279871/upload (5,58 kB) ...
2022-07-06 16:01:35.419 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279871/upload -> HTTP/1.1 200 (86 ms)
2022-07-06 16:01:35.420 INFORMATION: OK
2022-07-06 16:01:35.538 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279871/close (2 B) ...
2022-07-06 16:01:35.722 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279871/close -> HTTP/1.1 200 (94 ms)
2022-07-06 16:01:35.722 INFORMATION: OK
2022-07-06 16:01:35.823 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 16:02:14.425 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (159 ms; 189 B)
2022-07-06 16:02:14.428 INFORMATION: 0 open changesets on server
2022-07-06 16:02:15.722 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 16:02:15.722 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 16:02:15.722 INFORMATION: Änderungssatz 0: check_date
2022-07-06 16:02:15.782 INFORMATION: Message notifier inactive
2022-07-06 16:02:15.784 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:02:15.890 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (100 ms; 9 B)
2022-07-06 16:02:15.890 INFORMATION: OK
2022-07-06 16:02:15.993 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279894/upload (2,62 kB) ...
2022-07-06 16:02:16.154 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279894/upload -> HTTP/1.1 200 (77 ms)
2022-07-06 16:02:16.154 INFORMATION: OK
2022-07-06 16:02:16.298 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279894/close (2 B) ...
2022-07-06 16:02:16.451 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279894/close -> HTTP/1.1 200 (70 ms)
2022-07-06 16:02:16.451 INFORMATION: OK
2022-07-06 16:02:16.552 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 16:02:51.882 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (164 ms; 189 B)
2022-07-06 16:02:51.885 INFORMATION: 0 open changesets on server
2022-07-06 16:02:53.671 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 16:02:53.672 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 16:02:53.673 INFORMATION: Änderungssatz 0: check_date
2022-07-06 16:02:53.731 INFORMATION: Message notifier inactive
2022-07-06 16:02:53.732 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:02:53.829 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (91 ms; 9 B)
2022-07-06 16:02:53.829 INFORMATION: OK
2022-07-06 16:02:53.933 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279913/upload (1,87 kB) ...
2022-07-06 16:02:54.095 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279913/upload -> HTTP/1.1 200 (79 ms)
2022-07-06 16:02:54.095 INFORMATION: OK
2022-07-06 16:02:54.226 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279913/close (2 B) ...
2022-07-06 16:02:54.378 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279913/close -> HTTP/1.1 200 (69 ms)
2022-07-06 16:02:54.378 INFORMATION: OK
2022-07-06 16:02:54.480 INFORMATION: Message notifier active (checks every 5 minutes)
2022-07-06 16:03:15.184 INFORMATION: GET https://api.openstreetmap.org/api/0.6/changesets?user=369020&open=true -> HTTP/1.1 200 (152 ms; 189 B)
2022-07-06 16:03:15.187 INFORMATION: 0 open changesets on server
2022-07-06 16:03:16.626 INFORMATION: Starting upload with tags {comment=check_date, source=eigene Recherche, created_by=JOSM/1.5 (18499 SVN de)}
2022-07-06 16:03:16.627 INFORMATION: Strategy: SINGLE_REQUEST_STRATEGY, ChunkSize: -1, Policy: none, Close after: true
2022-07-06 16:03:16.627 INFORMATION: Änderungssatz 0: check_date
2022-07-06 16:03:16.677 INFORMATION: Message notifier inactive
2022-07-06 16:03:16.679 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:03:16.684 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> !!! (1 ms)
2022-07-06 16:03:16.684 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1974)
        at java.base/sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1969)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1968)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:334)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseCode(Http1Client.java:94)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:161)
        at org.openstreetmap.josm.tools.HttpClient.connect(HttpClient.java:124)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:729)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:673)
        at org.openstreetmap.josm.io.OsmApi.sendRequest(OsmApi.java:668)
        at org.openstreetmap.josm.io.OsmApi.sendPutRequest(OsmApi.java:663)
        at org.openstreetmap.josm.io.OsmApi.openChangeset(OsmApi.java:463)
        at org.openstreetmap.josm.io.OsmServerWriter.uploadOsm(OsmServerWriter.java:202)
        at org.openstreetmap.josm.gui.io.UploadPrimitivesTask.realRun(UploadPrimitivesTask.java:266)
        at org.openstreetmap.josm.gui.io.AsynchronousUploadPrimitivesTask.realRun(AsynchronousUploadPrimitivesTask.java:129)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:94)
        at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:142)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.net.SocketException: Unexpected end of file from server
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:866)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:3135)
        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getHeaderField(HttpsURLConnectionImpl.java:295)
        at org.openstreetmap.josm.tools.Http1Client$1.getResponseVersion(Http1Client.java:85)
        ... 15 more

2022-07-06 16:03:16.685 WARNUNG: Already here java.net.SocketException: Unexpected end of file from server
2022-07-06 16:03:16.687 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create (270 B) ...
2022-07-06 16:03:16.860 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/create -> HTTP/1.1 200 (91 ms; 9 B)
2022-07-06 16:03:16.860 INFORMATION: OK
2022-07-06 16:03:16.963 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279925/upload (2,50 kB) ...
2022-07-06 16:03:17.129 INFORMATION: POST https://api.openstreetmap.org/api/0.6/changeset/123279925/upload -> HTTP/1.1 200 (83 ms)
2022-07-06 16:03:17.129 INFORMATION: OK
2022-07-06 16:03:17.247 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279925/close (2 B) ...
2022-07-06 16:03:17.403 INFORMATION: PUT https://api.openstreetmap.org/api/0.6/changeset/123279925/close -> HTTP/1.1 200 (73 ms)
2022-07-06 16:03:17.404 INFORMATION: OK
2022-07-06 16:03:17.505 INFORMATION: Message notifier active (checks every 5 minutes)

in reply to:  60 ; comment:61 by taylor.smock, 4 years ago

Replying to MichaelFS:

Replying to taylor.smock:

For those trying attachment:22160.patch with attachment:josm-custom.jar, has anyone noticed duplicate uploads?

Thanks a lot for your support and effort!!
I've done the same as chris66 before: DE-installed http2 and run the patched version. There was no failure message and I could not notice any duplicate upload (How to identify that? What will happen by then?).

If you get conflicts when you are uploading changed data, that would be one indication. Another indication would be if you downloaded an area, and saw that there were multiple overlapping features uploaded at almost the same time in different changesets.

Going through your paste:
Line 2/34:

java.net.UnknownHostException: api.openstreetmap.org
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:229)

This is a DNS issue. We cannot fix that. Java uses the system configured dns providers (since we don't set any in JOSM). Maybe your internet connection is flaky?

Line 66: Same thing, different stack trace.

2022-07-06 15:40:37.560 WARNING: org.openstreetmap.josm.io.OsmTransferException: Connection to OSM server failed. Please check your internet connection.. Cause: java.net.UnknownHostException: api.openstreetmap.org
org.openstreetmap.josm.io.OsmTransferException: Connection to the OSM server failed. Please check your internet connection.

Line 198/305: What people are complaining about when upload fails.

2022-07-06 16:03:16.684 WARNUNG: java.net.SocketException: Unexpected end of file from server. Ursache: java.net.SocketException: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server

in reply to:  61 ; comment:62 by skyper, 4 years ago

Replying to taylor.smock:

If you get conflicts when you are uploading changed data, that would be one indication. Another indication would be if you downloaded an area, and saw that there were multiple overlapping features uploaded at almost the same time in different changesets.

I see two different scenarios:

  • if the timeout happens while creating the changeset it needs to be checked if the changeset has been created in order to not create empty changsets.
  • if the timeout happens while uploading objects the already uploaded objects need to be synced, especially tricky with new objects, in order to not create duplicate objects. Unlike @stoecker, I still doubt that we have a detection for new objects which have been uploaded but the server's answer is missing.

In both cases the already created changeset should be used similar to the mechanism when conflicts are detected on upload.

It might be smart to test the patched version with the dev server.

in reply to:  62 comment:63 by SimonPoole, 4 years ago

Replying to skyper:
...

  • if the timeout happens while uploading objects the already uploaded objects need to be synced, especially tricky with new objects, in order to not create duplicate objects. Unlike @stoecker, I still doubt that we have a detection for new objects which have been uploaded but the server's answer is missing.

...

The issue @mmd linked to above https://github.com/openstreetmap/openstreetmap-website/issues/2201 contains an in depth discussion of the topic.

Merging / updating from the API will not work for newly created elements because the template id -> actually assigned id mapping is missing.

What would be (hackish) possible for referentially complete uploads is to detect if the upload was successful (for example by querying for the changeset data) then throwing away the local data and re-downloading. However this will not work for chunked uploads in the way they are currently implemented as you can have parent elements referring to elements by their template id that were uploaded/or not in an earlier chunk.

comment:64 by taylor.smock, 4 years ago

For everyone using the patched version, have you noticed any duplicate uploads?

While I do not believe that duplicate uploads will occur (see comment:26 for why), I want to be very certain before applying the patch (which I'll be modifying to only retry if the exception message is Unexpected end of file from server) -- if this messes things up, we are going to have a lot of duplicate uploads very quickly.

Note for future people: Unexpected end of file from server currently only occurs once, in HttpClient.

in reply to:  64 comment:65 by MichaelFS, 4 years ago

Replying to taylor.smock:

For everyone using the patched version, have you noticed any duplicate uploads?

I have used the patched version for several days after DE-installing http2. There was absolutely no issue with duplicate uploads and no

Message: Connection with Remote-Server
https://api.openstreetmap.org/api/0.6/failed.
Please check your Internet-connection.

Yesterday, with the original version, the api-message was back for about every fith upload.

Last edited 4 years ago by MichaelFS (previous) (diff)

comment:66 by anonymous, 4 years ago

The patched version is still working for me, did not notice any conflicts / duplicates.

comment:67 by chris66, 4 years ago

Is there a maximum number of retries? I think 10 or so would be usefull.

in reply to:  67 comment:68 by taylor.smock, 4 years ago

Replying to chris66:

Is there a maximum number of retries? I think 10 or so would be [useful].

This is configurable with the advanced preference osm-server.max-num-retries which defaults to 5.

comment:69 by taylor.smock, 3 years ago

Milestone: 22.0722.08

in reply to:  64 ; comment:70 by MichaelFS, 3 years ago

Replying to taylor.smock:

For everyone using the patched version, have you noticed any duplicate uploads?

I'm using the patched version since about four weeks regularly and never had a duplicate upload. But today was the second time, that JOSM crashed; I do not really remember crashes with the old versions. I saved the status report (immediately after restart) and can provide it, if it may help ...

in reply to:  70 ; comment:71 by taylor.smock, 3 years ago

Replying to MichaelFS:

Replying to taylor.smock:

For everyone using the patched version, have you noticed any duplicate uploads?

I'm using the patched version since about four weeks regularly and never had a duplicate upload. But today was the second time, that JOSM crashed; I do not really remember crashes with the old versions. I saved the status report (immediately after restart) and can provide it, if it may help ...

Yes, please provide the crash report. It might be a duplicate of #22183 (java.lang.NoClassDefFoundError: Could not initialize class org.openstreetmap.josm.actions.SessionSaveAction). If it is a duplicate of #22183, please try to follow the instructions in comment:6:ticket:22183.

in reply to:  71 ; comment:72 by MichaelFS, 3 years ago

Replying to taylor.smock:

Replying to MichaelFS:

Replying to taylor.smock:

For everyone using the patched version, have you noticed any duplicate uploads?

I'm using the patched version since about four weeks regularly and never had a duplicate upload. But today was the second time, that JOSM crashed; I do not really remember crashes with the old versions. I saved the status report (immediately after restart) ...

Yes, please provide the crash report. It might be a duplicate of #22183 (java.lang.NoClassDefFoundError: Could not initialize class org.openstreetmap.josm.actions.SessionSaveAction). If it is a duplicate of #22183, please try to follow the instructions in comment:6:ticket:22183.

I checked th JOSM-Status and could not find the string "Could not initialize": The full text at the end. My JAVA-system provided a file hs_err_pid14888 and also there no string "Could not initialize"; in case you want this also, please let me know.
Thanks a lot you for your work!

----- 
JOSM-Status
{{{
Revision:18499
Is-Local-Build:true
Build-Date:2022-06-23 13:37:16

Identification: JOSM/1.5 (18499 SVN de) Linux Manjaro Linux
Memory Usage: 588 MB / 7830 MB (450 MB allocated, but free)
Java version: 11.0.16+8, Oracle Corporation, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.nimbus.NimbusLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: de_DE.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: de_DE
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: KDE
VM arguments: [-Dawt.useSystemAAFontSettings=gasp]
Program arguments: [--debug]
Dataset consistency test: No problems found

Plugins:
+ buildings_tools (36011)
+ continuosDownload (99)
+ fieldpapers (v0.5.0)
+ reverter (36011)
+ terracer (35978)
+ undelete (36011)
+ utilsplugin2 (36011)

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1

Last errors/warnings:
- 00016.769 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=400, Error Header=<You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm>
- 00016.786 E: Fehlerhafte Anfrage - <html>Der OSM-Server »api.openstreetmap.org« meldete eine fehlerhafte Anfrage.<br><br>Das angeforderte Gebiet ist zu groß oder enthält zu viele Daten.<br>Versuchen Sie, ein kleineres Gebiet herunterzuladen oder nutzen Sie einen Datenbankexport.</html>
- 00017.644 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=400, Error Header=<You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm>
- 00017.657 E: Fehlerhafte Anfrage - <html>Der OSM-Server »api.openstreetmap.org« meldete eine fehlerhafte Anfrage.<br><br>Das angeforderte Gebiet ist zu groß oder enthält zu viele Daten.<br>Versuchen Sie, ein kleineres Gebiet herunterzuladen oder nutzen Sie einen Datenbankexport.</html>


autosave.interval=180
buildings_tool.shape=RECTANGLE
cache.bing.attribution.xml=1660027050
cache.capabilities1637351842=1659683565
cache.motd.html=1660023326
cache.motd.html.java=11.0.16
cache.motd.html.lang=De:
cache.motd.html.version=18499
changesetdialog.lastHeight=0
changesetdialog.minimized=true
commandstack.lastHeight=0
conflict.lastHeight=98
conflict.visible=true
coordinates=DECIMAL_DEGREES
download.overpass.servers=[http://overpass.openstreetmap.ru/cgi/, https://overpass-api.de/api/]
download.places.history=[Isarecker Feld, Wang]
download.tab=1
downloadprimitive.lasttype=2
draw.dialogspanel=false
draw.viewport.following=true
expert=true
filter.lastHeight=0
gui.geometry=x=460,y=170,width=990,height=741
gui.maximized=true
imagery.entries=[{max-zoom=22, min-zoom=1, noTileHeaders={"X-VE-Tile-Info":["no-tile"]}, noTileChecksums={"MD5":["c13269481c73de6e18589f9fbc3bdf7e"]}, metadataHeaders={"X-VE-TILEMETA-CaptureDatesRange":"Capture Date"}, transparent=true, minimumTileExpire=3600, name=Bing Luftbild, id=Bing, type=bing, url=https://www.bing.com/maps/, permission-reference-url=https://wiki.openstreetmap.org/wiki/Bing_Maps, cookies=, icon=data:image/png;base64,iVBORw0..., customHttpHeaders={}, category=photo},
  {max-zoom=22, noTileHeaders={"Etag":["\"10i954m13i2\""]}, noTileChecksums={"MD5":["f27d9de7f80c13501f470595e327aa6d"]}, transparent=true, minimumTileExpire=3600, name=Esri Luftbilder, id=EsriWorldImagery, type=tms, url=https://{switch:services,server}.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}, attribution-text=Terms & Feedback, attribution-url=https://wiki.openstreetmap.org/wiki/Esri, cookies=, icon=data:image/png;base64,iVBORw0..., customHttpHeaders={}, category=photo},
  {max-zoom=22, transparent=true, minimumTileExpire=3600, name=Esri World Luftbilder (Clarity) Beta, id=EsriWorldImageryClarity, type=tms, url=https://clarity.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}, attribution-text=Terms & Feedback, attribution-url=https://wiki.openstreetmap.org/wiki/Esri, permission-reference-url=https://github.com/osmlab/editor-layer-index/pull/358#issuecomment-361416110, cookies=, icon=data:image/png;base64,iVBORw0..., description=Bilder aus dem Esri-Archiv, die klarer und genauer sein können als die Standardbilder., customHttpHeaders={}, category=photo},
  {max-zoom=22, noTileHeaders={"ETag":["\"336b022ed883bc72347a637634e490d4\"|\"067736a547cafe90014b4e59b6510abe\"|\"ee1f6802b0234046b553cbbc672ac7d9\"|\"9f5a2f1d7cc131e58befc2052c71c827\""]}, noTileChecksums={"MD5":["58e78313d04adf0ea64b8de8590c3d46"]}, transparent=true, minimumTileExpire=3600, name=Mapbox Satellitenbild, id=Mapbox, type=tms, url=https://{switch:a,b,c,d}.tiles.mapbox.com/v4/mapbox.satellite/{zoom}/{x}/{y}.jpg?access_token={apikey}, attribution-text=Terms & Feedback, attribution-url=https://www.mapbox.com/about/maps/, permission-reference-url=https://wiki.openstreetmap.org/wiki/Vertical_Aerial_Photographs#DigitalGlobe_.2F_MapBox, cookies=, icon=data:image/png;base64,iVBORw0..., customHttpHeaders={}, category=photo},
  {max-zoom=22, noTileChecksums={"MD5":["08d6916814b216570e5241732c41d5e5"]}, valid-georeference=true, transparent=true, minimumTileExpire=3600, name=Maxar Premium-Luftbild, id=Maxar-Premium, type=tms, url=https://services.digitalglobe.com/earthservice/tmsaccess/tms/1.0.0/DigitalGlobe:ImageryTileService@EPSG:3857@jpg/{zoom}/{x}/{-y}.jpg?connectId={apikey}, attribution-text=Terms & Feedback, attribution-url=https://wiki.openstreetmap.org/wiki/DigitalGlobe, cookies=, icon=data:image/png;base64,iVBORw0..., description=Maxar Premium ist ein Mosaik bestehend aus Maxar-Basiskarte mit ausgewählten Regionen gefüllt mit +Vivid oder Luftbildbereichen von allgemeinem Interessse, Auflösung 50 cm oder besser, häufiger aktualisiert mit laufenden Updates., customHttpHeaders={}, category=photo},
  {max-zoom=19, valid-georeference=true, modTileFeatures=true, transparent=true, minimumTileExpire=3600, name=OpenStreetMap Carto (Standard), id=standard, type=tms, url=https://tile.openstreetmap.org/{zoom}/{x}/{y}.png, attribution-text=© OpenStreetMap contributors, attribution-url=https://www.openstreetmap.org/, permission-reference-url=https://wiki.osmfoundation.org/wiki/Terms_of_Use, cookies=, icon=data:image/png;base64,iVBORw0..., customHttpHeaders={}, category=osmbasedmap}
]
imagery.layers.default=[Bing, EsriWorldImagery, EsriWorldImageryClarity, Mapbox, Maxar-Premium, standard]
imagery.offsetbookmarks=[]
josm.version=18499
laf=javax.swing.plaf.nimbus.NimbusLookAndFeel
lastDirectory=/mnt/Daten/2022-07-30_10-48-37
layerlist.lastHeight=113
mappaint.renderer-class-name=org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer
mappaint.style.entries=[{active=true, title=JOSM Standard (MapCSS), ptoken=standard, url=resource://styles/standard/elemstyles.mapcss}, {active=false, title=Potlatch 2, ptoken=standard, url=resource://styles/standard/potlatch2.mapcss}, {active=true, title=Address Tags Validator, url=https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1}]
mappaint.style.known-defaults=[resource://styles/standard/elemstyles.mapcss, resource://styles/standard/potlatch2.mapcss]
mapstyle.lastHeight=0
message.imagery.nagPanel.https://www.bing.com/maps/=false
minimap.lastHeight=0
mirror.<josm.cache>/images.https://geoportal.bayern.de/bayernatlas/favicon/favicon-32x32.png=[1660027048283, <josm.cache>/images/mirror_https___geoportal.bayern.de_bayernatlas_favicon_favicon-32x32.png]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/anglesnap.svg?format_raw=[1624718046457, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_anglesnap.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/copy.svg?format_raw=[1624718045530, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_copy.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/cursor/modifier/rectangle_move.svg?format_raw=[1624717992066, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_cursor_modifier_rectangle_move.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/cursor/modifier/rectangle_plus.svg?format_raw=[1624717992646, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_cursor_modifier_rectangle_plus.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/cursor/modifier/rectangle_plussmall.svg?format_raw=[1624717992496, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_cursor_modifier_rectangle_plussmall.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/add.svg?format_raw=[1659276639588, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_add.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/delete.svg?format_raw=[1659276639800, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_delete.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/edit.svg?format_raw=[1659276639695, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_edit.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/mergedown.svg?format_raw=[1624718046349, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_mergedown.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/propertiesdialog.svg?format_raw=[1659276639282, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_propertiesdialog.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/refresh.svg?format_raw=[1645171902166, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_refresh.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/dialogs/search.svg?format_raw=[1624718046598, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_dialogs_search.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/download.svg?format_raw=[1645171902038, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_download.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/duplicate.svg?format_raw=[1624718045910, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_duplicate.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/mapmode/extrude/dualalign.svg?format_raw=[1624717992351, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_mapmode_extrude_dualalign.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/mapmode/extrude/extrude.svg?format_raw=[1624717991804, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_mapmode_extrude_extrude.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/ok.svg?format_raw=[1645171902497, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_ok.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/paste.svg?format_raw=[1624718045674, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_paste.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/pastetags.svg?format_raw=[1624718045790, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_pastetags.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/preference.svg?format_raw=[1646045446973, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_preference.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/preferences/plugin.svg?format_raw=[1645171901920, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_preferences_plugin.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/preferences/proxy.svg?format_raw=[1646045447403, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_preferences_proxy.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/purge.svg?format_raw=[1624718046222, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_purge.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/redo.svg?format_raw=[1624718045384, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_redo.svg_format_raw]
mirror.<josm.cache>/images.https://josm.openstreetmap.de/browser/trunk/resources/images/undo.svg?format_raw=[1624718045238, <josm.cache>/images/mirror_https___josm.openstreetmap.de_browser_trunk_resources_images_undo.svg_format_raw]
mirror.<josm.cache>/images.https://raw.githubusercontent.com/FreemapSlovakia/freemap-v3-react/master/src/images/freemap-logo-small.png=[1659684588114, <josm.cache>/images/mirror_https___raw.githubusercontent.com_FreemapSlovakia_freemap-v3-react_master_src_images_freemap-logo-small.png]
mirror.https://josm.openstreetmap.de/josmfile?page_Styles/AddressValidator&zip_1=[1659683567151, <josm.cache>/mirror_https___josm.openstreetmap.de_josmfile_page_Styles_AddressValidator_zip_1]
mirror.https://josm.openstreetmap.de/maps=[1660023328060, <josm.cache>/mirror_https___josm.openstreetmap.de_maps]
mirror.https://josm.openstreetmap.de/presets=[1656501202013, <josm.cache>/mirror_https___josm.openstreetmap.de_presets]
mirror.https://josm.openstreetmap.de/proj/BETA2007.gsb=[1658818412698, <josm.cache>/mirror_https___josm.openstreetmap.de_proj_BETA2007.gsb]
mirror.https://josm.openstreetmap.de/remote/geofabrik-index-v1-nogeom.json=[1659683566958, <josm.cache>/mirror_https___josm.openstreetmap.de_remote_geofabrik-index-v1-nogeom.json]
mirror.https://josm.openstreetmap.de/rules=[1652376564922, <josm.cache>/mirror_https___josm.openstreetmap.de_rules]
mirror.https://josm.openstreetmap.de/styles=[1656501200102, <josm.cache>/mirror_https___josm.openstreetmap.de_styles]
mirror.https://josm.openstreetmap.de/tested=[1644859115846, <josm.cache>/mirror_https___josm.openstreetmap.de_tested]
notes/note_open.lastHeight=0
org.openstreetmap.josm.actions.SessionSaveAsAction$SessionSaveAsDialog.geometry=x=735,y=300,width=450,height=450
org.openstreetmap.josm.gui.conflict.tags.CombinePrimitiveResolverDialog.geometry=x=560,y=225,width=800,height=600
org.openstreetmap.josm.gui.conflict.tags.PasteTagsConflictResolverDialog.geometry=x=660,y=340,width=600,height=400
org.openstreetmap.josm.gui.dialogs.DeleteFromRelationConfirmationDialog.geometry=x=760,y=425,width=400,height=200
org.openstreetmap.josm.gui.dialogs.LatLonDialog.geometry=x=775,y=343,width=828,height=522
org.openstreetmap.josm.gui.dialogs.changeset.ChangesetCacheManager.geometry=x=0,y=0,width=1000,height=600
org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.geometry=x=199,y=56,width=1461,height=480
org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$EditTagDialog.geometry=x=741,y=358,width=1179,height=222
org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor.geometry=x=610,y=200,width=700,height=650
org.openstreetmap.josm.gui.download.DownloadDialog.geometry=x=553,y=247,width=1000,height=600
org.openstreetmap.josm.gui.help.HelpBrowser.geometry=x=0,y=0,width=600,height=400
org.openstreetmap.josm.gui.history.HistoryBrowserDialogManager.geometry=x=384,y=290,width=1149,height=500
org.openstreetmap.josm.gui.io.UploadDialog.geometry=x=96,y=389,width=826,height=578
org.openstreetmap.josm.gui.oauth.OAuthAuthorizationWizard.geometry=x=434,y=237,width=921,height=511
org.openstreetmap.josm.gui.preferences.PreferenceDialog.geometry=x=179,y=0,width=1251,height=1050
org.openstreetmap.josm.gui.preferences.advanced.ListEditor.geometry=x=554,y=350,width=500,height=350
org.openstreetmap.josm.plugins.terracer.HouseNumberInputDialog.geometry=x=1162,y=434,width=351,height=376
org.openstreetmap.josm.plugins.utilsplugin2.latlon.LatLonDialog.geometry=x=639,y=179,width=641,height=691
org.openstreetmap.josm.plugins.utilsplugin2.multitagger.MultiTagDialog.geometry=x=710,y=275,width=500,height=500
osm-download.bounds=48.5116706;11.8910292;48.5136542;11.902391
osm-server.upload-strategy=singlerequest
pluginmanager.lastupdate=1660023323919
pluginmanager.version=18499
plugins=[buildings_tools, continuosDownload, fieldpapers, reverter, terracer, undelete, utilsplugin2]
plugins.terracer.handle_relation=false
preferences.reset.draw.rawgps.lines=true
progressdialog.size=239
properties.recent-tags=[wikimedia_commons,
  File:Wegkreuz bei Heinrichtsruh.jpg,
  wikimedia_commons,
  File:Wegkreuz zwischen Eitting und Berglern.jpg,
]
propertiesdialog.geometry=x=1104,y=418,width=396,height=379
propertiesdialog.lastHeight=205
proxy.policy=no-proxy
relationlist.lastHeight=151
remotecontrol.enabled=true
search.history=[R Werndlfing]
selectionlist.geometry=x=851,y=434,width=383,height=181
selectionlist.lastHeight=208
sourcetag.value=Bing
toggleDialogs.width=116
toolbar=[open,
  save,
  download,
  upload,
  |,
  undo,
  redo,
  |,
  dialogs/search(searchExpression=),
  preference,
  |,
  splitway,
  combineway,
  wayflip,
  |,
  imagery-offset,
  |,
  tagginggroup_Highways/Streets,
  tagginggroup_Highways/Ways,
  tagginggroup_Highways/Waypoints,
  tagginggroup_Highways/Barriers,
  |,
  tagginggroup_Transport/Car,
  tagginggroup_Transport/Public Transport,
  |,
  tagginggroup_Man Made/Man Made,
  tagginggroup_Facilities/Tourism,
  tagging_Facilities/Tourism/Other Information Point,
  tagginggroup_Facilities/Food+Drinks,
  tagging_Annotation/Address
]
undelete.osmid=w541972760
upload.comment.history=[OSMOSE: wikidata nicht relevant, Details hinzu, building type, amenity hinzu, check_date, neu hinzu, , Schwerpunkt 2022-75: WikiMediaCommons hinzu, OSMOSE: office, OSMOSE: Diameter, OSMOS: admin_ventre hinzu, is_in bereinigt, OSMOSE: Alte Details gelöscht, alte Details gelöscht, description hinzu]
upload.comment.last-used=1660027361
upload.source.history=[eigene Recherche,
  ,
  https://www.idowa.de/inhalt.landshuter-altstadt-haushaltswarengeschaeft-grimm-schliesst.11beeeee-e13f-48de-9a6c-896d51776595.html,
  https://www.idowa.de/inhalt.schliessungen-in-landshut-unverpacktladen-hat-zu-orsay-im-ccl-schliesst.80bbaec9-22b9-4a4e-a9d8-7dccad8a4b36.html,
  DE,
  E,
  eigene Recherche (BING),
  https://www.moosinning.de/communice-news/news/artikel?tx_news_pi1%5Baction%5D=detail&tx_news_pi1%5Bcontroller%5D=News&tx_news_pi1%5Bnews%5D=428&cHash=a13e66d879b480316d838630224544e7,
  https://www.merkur.de/lokales/erding/moosinning-ort377228/nimm-ein-buch-lies-ein-buch-bring-ein-buch-91107774.html,
  siehe https://geoportal.bayern.de/denkmalatlas/searchResult.html?objtyp=bau&koid=55605, eigene Recherche,
  2021-0,
  eigene Recherche, siehe auch https://forum.openstreetmap.org/viewtopic.php?pid=818038,
  eigene Recherche, siehe https://de.wikipedia.org/wiki/Liste_der_Baudenkm%C3%A4ler_in_Moosburg_an_der_Isar
]
userlist.lastHeight=0
utilsplugin2.customurl=https://www.openstreetmap.org/{#type}/{#id}/history
utilsplugin2.urlHistory=[Wikipedia,
  https://en.wikipedia.org/w/index.php?search={name}&fulltext=Search,
  Wikipedia RU,
  http://osm.mapki.com/history/{#type}.php?id={#id},
  Who Dit It?,
  http://simon04.dev.openstreetmap.org/whodidit/?zoom=12&lat={#lat}&lon={#lon}&layers=BTT,
  Keep Right validator,
  http://keepright.ipax.at/report_map.php?zoom=14&lat={#lat}&lon={#lon}&layers=B0T,
  Element history [demo, =Ctrl-Shift-H],
  https://www.openstreetmap.org/{#type}/{#id}/history,
  Browse element [demo, =Ctrl-Shift-I],
  https://www.openstreetmap.org/{#type}/{#id}
]
validator.lastHeight=132
validator.skip=[]
validator.skipBeforeUpload=[]
validator.visible=true
}}}
-----

in reply to:  72 ; comment:73 by taylor.smock, 3 years ago

Replying to MichaelFS:

I checked th JOSM-Status and could not find the string "Could not initialize": The full text at the end. My JAVA-system provided a file hs_err_pid14888 and also there no string "Could not initialize"; in case you want this also, please let me know.

Go ahead and attach hs_err_pid14888 -- the status report didn't have a stack trace in it, so I'm hoping it is in that file (if you didn't trim the status report when you were posting).

in reply to:  73 ; comment:74 by anonymous, 3 years ago

Replying to taylor.smock:

Replying to MichaelFS:

I checked th JOSM-Status and could not find the string "Could not initialize": The full text at the end. My JAVA-system provided a file hs_err_pid14888 and also there no string "Could not initialize"; in case you want this also, please let me know.

Go ahead and attach hs_err_pid14888 -- the status report didn't have a stack trace in it, so I'm hoping it is in that file (if you didn't trim the status report when you were posting).

Version 0, edited 3 years ago by anonymous (next)

in reply to:  74 ; comment:75 by taylor.smock, 3 years ago

Thanks. That looks like a different issue. It is occurring in org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource.apply(Lorg/openstreetmap/josm/gui/mappaint/MultiCascade;Lorg/openstreetmap/josm/data/osm/IPrimitive;DZ)V (317 bytes) @ 0x00007feb898dea49 [0x00007feb898de9c0+0x0000000000000089] which was not touched by the patch. That code was actually last touched in March 2020, so it is highly unlikely it is the problem.

It is more likely due to receiving a SIGSEGV signal

# SIGSEGV (0xb) at pc=0x00007feb898dea49, pid=14888, tid=23818

This is due to attempting to access restricted memory. This is probably a java bug, not a JOSM bug -- we do not directly access or modify memory.

Identification: JOSM/1.5 (18499 SVN de) Linux Manjaro Linux
Memory Usage: 588 MB / 7830 MB (450 MB allocated, but free)
Java version: 11.0.16+8, Oracle Corporation, OpenJDK 64-Bit Server VM

Looking at the Manjaro JDK packages ( https://packages.manjaro.org/?query=openjdk ), it looks like they updated them today. I don't know if the Manjaro JDK packages report themselves as Oracle Corporation, but that is most likely the problem. You can try (a) downgrading to the last known working Java version, (b) moving to a different java version (i.e. Java 11 -> Java 17), (c) reinstalling java (maybe something got corrupted on disk?), etc.

comment:76 by taylor.smock, 3 years ago

I'm going to put one last call out for anyone seeing duplicates with the patch. I'll apply the patch Thursday, if I don't forget. (AKA, ping me if I forget).

in reply to:  75 comment:77 by MichaelFS, 3 years ago

Replying to taylor.smock:
Thank you for your intensive research:
... > > Identification: JOSM/1.5 (18499 SVN de) Linux Manjaro Linux

Memory Usage: 588 MB / 7830 MB (450 MB allocated, but free)
Java version: 11.0.16+8, Oracle Corporation, OpenJDK 64-Bit Server VM

Looking at the Manjaro JDK packages ( https://packages.manjaro.org/?query=openjdk ), it looks like they updated them today. I don't know if the Manjaro JDK packages report themselves as Oracle Corporation, but that is most likely the problem. You can try (a) downgrading to the last known working Java version, (b) moving to a different java version (i.e. Java 11 -> Java 17), (c) reinstalling java (maybe something got corrupted on disk?), etc.

I will run the patched JOSM today with JAVA18, which I have already installed. In case of issues I'll report it here. On the other hand the crashes are very rarely. Good to know, that this is not in relation with "SocketException: Unexpected end of file from server".

comment:78 by taylor.smock, 3 years ago

Resolution: fixed
Status: reopenedclosed

In 18532/josm:

Fix #22160: Retry on SocketException: Unexpected end of file from server

This allows additional exceptions to force a retry. Specifically, the
following subclasses of SocketException were considered:

  • BindException -- shouldn't be thrown, "Signals that an error occurred

while attempting to bind a socket to a local address and port. Typically,
the port is in use, or the requested local address could not be assigned."
This will be raised if it is ever encountered.

  • ConnectException-- replacing that here, "Signals that an error occurred

while attempting to connect a socket to a remote address and port.
Typically, the connection was refused remotely (e.g., no process is
listening on the remote address/port)."

  • ConnectionResetException -- "Thrown to indicate a connection reset"

This seems to be a Java internal class. It is rethrown.

  • NoRouteToHostException -- "Signals that an error occurred while attempting

to connect a socket to a remote address and port. Typically, the remote
host cannot be reached because of an intervening firewall, or if an
intermediate router is down."

  • PortUnreachableException -- "Signals that an ICMP Port Unreachable message

has been received on a connected datagram."

SocketException is only thrown in one location in the JDK source code, but
just in case someone decided to throw the exception in a library, we
additionally check that the message matches that from the JDK source. This is,
unfortunately, a bit more fragile than it should be.

comment:79 by MichaelFS, 3 years ago

Thank you very much! I appreciate your engagement.
Btw.: Using the patched version with JAVA18 the last days I had no issue and no crash of JOSM.

comment:80 by chris66, 3 years ago

What's the status, is the patch included in latest?

in reply to:  80 comment:81 by taylor.smock, 3 years ago

Replying to chris66:

What's the status, is the patch included in latest?

Yes. As of r18532, it is in JOSM core. Current latest is r18539.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.