You are not logged in.

#51 2022-06-25 16:26:27

SimonPoole
Member
Registered: 2010-03-14
Posts: 2,184

Re: Api Probleme

Wetterauer wrote:

...Wir arbeiten hier alle für 0€ die Stunde für die Allgemeinheit. ...

Das gilt genauso für die Leute die an der API SW arbeiten, wie auch für die JOSM Entwickler.

Offline

#52 2022-06-25 16:49:17

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 397

Re: Api Probleme

Das habe ich auch nicht bestreiten wollen. Ich kenne die Arbeit in der Softwareentwicklung. Und ich denke, dass diese Teams Profiarbeit auch für 0€ leisten. Aber es kann auch nicht sein, dass plötzlich auftretende Fehler nicht beseitigt werden. Es muss ja nicht von jetzt auf gleich passieren. Aber es muss Signale geben, dass man daran arbeitet. Und wenn Restriktionen eingeführt werden, weil die Serverkapazität oder die Bandbreite oder oder oder nicht mehr ausreicht, dann muss das kommuniziert werden. Dann kann man sich darauf einstellen. Ich kenne nicht die finanziellen Möglichkeiten von OSM, kann mir aber vorstellen, dass man dort nicht wie der Herr Musk mit den $s so um sich werfen kann. Auch wenn die Resourcen knapp werden. Aber auch das sollte bekannt gemacht werden.


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#53 2022-06-25 18:09:05

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

whb wrote:

Es ist ungewöhnlich, dass der Server eine Keepalive-Verbindung vor Ablauf des durch den Server gesetzten Timeouts, hier 5 Sekunden, schließt. Evtl. hat der Server aber ein Ressourcenprobleme und macht das deshalb oder vielleicht macht das auch eine vorgelagerte Firewall, warum auch immer.

Also prinzipiell werkeln da 3 Frontend-Server, die ausreichend Kapazität haben müssten (CPU->Langeweile, Memory=25% belegt). Ich sehe auch nicht in prometheus, dass wir irgendwelche Lastspitzen haben, was die Zahl der Verbindungen angeht. Die Anfragen laufen im konkreten Fall über Apache und Phusion Passenger für Ruby on Rails. Es gibt also genügend Komponenten, die lustige Sachen anstellen könnten.

Inzwischen gibt es einen ersten Patch für JOSM. Mal schauen, ob damit das Problem gelöst wird, ohne dass neue Probleme entstehen (z.B. mehrfache Uploads derselben Daten).

Last edited by mmd (2022-06-26 18:08:09)

Offline

#54 2022-06-27 21:22:35

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

Nochmal ein Update. Einer der JOSM-Entwickler hat in https://josm.openstreetmap.de/ticket/22160#comment:38 folgendes vorgeschlagen:

Falls jemand Java 11 oder neuer einsetzt und aktuell das Problem mit einer offiziellen JOSM-Version gut nachstellen kann, sollte einmal das "http2" Plugin installieren und dann probieren, ob das Problem weiterhin auftritt.

Anmerkung der Redaktion: den Teil zu Java 11 habe ich aus der Beschreibung des Plugins ("Provides HTTP/2 support. Requires Java 11 or later.") ergänzt. Das steht so explizit nicht im Ticket drin.

Wer nicht weiß, welche Java-Version gerade zum Einstaz kommt: im Menü unter Hilfe -> Statusbericht anzeigen (oder "Show status report") gibt es weitere Infos. Recht weit oben sollte dort eine Zeile beginnend mit "Java version: ..." zu finden sein.

Last edited by mmd (2022-06-28 09:04:52)

Offline

#55 2022-06-28 08:34:11

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,024

Re: Api Probleme

mmd wrote:

Also prinzipiell werkeln da 3 Frontend-Server, die ausreichend Kapazität haben müssten (CPU->Langeweile, Memory=25% belegt). Ich sehe auch nicht in prometheus, dass wir irgendwelche Lastspitzen haben, was die Zahl der Verbindungen angeht. Die Anfragen laufen im konkreten Fall über Apache und Phusion Passenger für Ruby on Rails. Es gibt also genügend Komponenten, die lustige Sachen anstellen könnten.

Na ja, am Samstag hatte ich Null Upload-Probleme, während zu manchen Zeiten jeder zweite Upload nicht klappt....


Mapper aus dem Münsterland.

Offline

#56 2022-06-28 09:28:30

MichaelFS
Member
Registered: 2011-04-16
Posts: 137

Re: Api Probleme

Danke!

mmd wrote:

...
Falls jemand Java 11 oder neuer einsetzt und aktuell das Problem mit einer offiziellen JOSM-Version gut nachstellen kann, sollte einmal das "http2" Plugin installieren und dann probieren, ob das Problem weiterhin auftritt ....

Das habe ich heute realisiert und für einige UPloads kein Problem mehr festgestellt. Es wäre wünschenswert, wenn weitere Anwender das ausprobieren würden ...

Offline

#57 2022-06-28 10:38:04

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,024

Re: Api Probleme

http2 hab ich gerade installiert.


Systemstatus wrote:

Identification: JOSM/1.5 (18463 de) Windows 10 64-Bit
Memory Usage: 370 MB / 4000 MB (102 MB allocated, but free)
Java version: 11.0.15+10, Eclipse Adoptium, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: \Display0 1920×1080 (scaling 1.25×1.25)
Maximum Screen Size: 1920×1080

Last edited by chris66 (2022-06-28 10:48:41)


Mapper aus dem Münsterland.

Offline

#58 2022-06-28 11:36:49

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,024

Re: Api Probleme

Das http2-plugin behebt den Fehler bei mir nicht.
Die Meldung ist nun allerdings leicht anders (GOAWAY received).

Java-Console wrote:

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>

Last edited by chris66 (2022-06-28 12:07:26)


Mapper aus dem Münsterland.

Offline

#59 2022-06-28 12:44:30

Fabi2
Member
Registered: 2010-03-21
Posts: 1,093

Re: Api Probleme

Wenn meine Vermutung stimmt, dann hilft es auch nicht, da es ein Problem unterhalb von HTTP auf TCP-Ebene ist.


Healthcare 2.0
Quotentroll für den Fortschritt

Offline

#60 2022-06-28 21:12:53

MKnight
Member
Registered: 2012-08-01
Posts: 2,394

Re: Api Probleme

Ich kann das aktuell nicht testen/provozieren, aber wenn's der Wahrheitsfindung dient, kann ich sehr sicher ausschliessen, dass ich die Probleme mit Java 9 oder 10 schon hatte.


gesammelte Overpass-abfragen zu QA (hauptsächlich Strassenfehler) + verschiedene Stats zu Strassen-eigenschaften

Offline

#61 2022-06-29 06:23:56

mcliquid
Member
From: Bodensee
Registered: 2021-10-18
Posts: 47
Website

Re: Api Probleme

Ich verwende Java 11 seit 2019, die Upload-Fehler kamen bei mir später. Das http2 plugin probiere ich umgehend aus und gebe bescheid.

Läuft eigentlich der Upload und der Download über die gleiche URL? Beim Download hatte ich noch nie so eine Fehlermeldung.

Offline

#62 2022-06-29 07:10:52

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

Die Sache ist etwas komplizierter, weil es "den Upload" so nicht gibt. Der teilt sich nämlich in folgende Schritte auf:

* (1) Neuen Änderungssatz erzeugen: link
* (2) Änderungssatz aktualisieren (nur für erneutes Hochladen, sofern Änderungssatz vorher nicht geschlossen wurde): link
* (3) Diff upload (das eigentliche Hochladen der OSM Objekte): link
* (4) Änderungssatz schließen: link

Probleme machen die Schritte (1) und (2), die auf Ruby on Rails laufen. (3) läuft auf C++, ebenso wie der Download.

Offline

#63 2022-06-29 09:43:52

Rainero
Member
Registered: 2016-02-26
Posts: 369

Re: Api Probleme

Bei mir läuft das http2-Plugin seit gestern und nun trat der Fehler das erste Mal wieder auf.
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)

Fehlermeldung: Screenshot-JOSM-api-error-with-http2-plugin-20220629.png

Offline

#64 2022-06-29 10:25:42

MichaelFS
Member
Registered: 2011-04-16
Posts: 137

Re: Api Probleme

chris66 wrote:

Das http2-plugin behebt den Fehler bei mir nicht.
Die Meldung ist nun allerdings leicht anders (GOAWAY received).

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>

Heute hier ebenso. Ein weiterer Unterschied:
* "Früher" (ohne http2) kam der Fehler immer vor UPload der ersten Änderung.
* Jetzt (mit http2) kommt der GOAWAY Fehler (in meinem Beipiel) nach Hochladen von 9 von 65 Änderungen.
Liefert dieser Unterschied Erkenntnisse in Bezug auf die von mmd beschriebenen UPload-Schritte?

Last edited by MichaelFS (2022-06-29 10:28:26)

Offline

#65 2022-06-29 11:27:27

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

MichaelFS wrote:

Jetzt (mit http2) kommt der GOAWAY Fehler (in meinem Beipiel) nach Hochladen von 9 von 65 Änderungen.

Dazu hätte ich eine Frage. Wie genau hast du dein JOSM konfiguriert?

- Falls du jedes Objekt einzeln hochlädst ("Upload each object individually", dritter Radiobutton), dann kommt in JOSM anstelle von Schritt (3) ein anderer Mechanismus zum Einsatz. Dafür gibt es dann die Element-basierten Endpunkte (link), die ebenfalls über Ruby on Rails laufen.

- Falls du jedoch den zweiten Radiobutton ("Upload objects in chunks of size" mit dem Wert 1) nutzt, dann gilt wieder mein Punkt (2).

Kannst du vielleicht einen Screenshot zur Verfügung stellen, wie genau deine Einstellungen zum Hochladen der Daten aussehen?

Last edited by mmd (2022-06-29 11:35:29)

Offline

#66 2022-06-29 12:27:37

MichaelFS
Member
Registered: 2011-04-16
Posts: 137

Re: Api Probleme

mmd wrote:
MichaelFS wrote:

Jetzt (mit http2) kommt der GOAWAY Fehler (in meinem Beipiel) nach Hochladen von 9 von 65 Änderungen.

Dazu hätte ich eine Frage. Wie genau hast du dein JOSM konfiguriert?
- Falls du jedes Objekt einzeln hochlädst ("Upload each object individually", dritter Radiobutton), dann kommt in JOSM anstelle von Schritt (3) ein anderer Mechanismus zum Einsatz. Dafür gibt es dann die Element-basierten Endpunkte (link), die ebenfalls über Ruby on Rails laufen.
- Falls du jedoch den zweiten Radiobutton ("Upload objects in chunks of size" mit dem Wert 1) nutzt, dann gilt wieder mein Punkt (2).
Kannst du vielleicht einen Screenshot zur Verfügung stellen, wie genau deine Einstellungen zum Hochladen der Daten aussehen?

Jedes Objekt einzeln; hier der Screenshot:

Offline

#67 2022-06-29 18:00:47

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

MichaelFS wrote:

Jedes Objekt einzeln;

Ok, danke, das wäre dann der "Element-basierte" Upload, der auch über Ruby on Rails läuft.

Nebenbei: generell empfehle ich, die Änderungen in einem Schritt hochzuladen. Auch 10'000 Änderungen in einem Schritt sind kein Problem für die API. Zum einen ist das deutlich flotter, zum anderen gibt es dann weniger Probleme mit Konflikten.

Wenn ich jetzt 64 Objekte einzeln hochlade, und nach 63 Objekte kommt es dann zu einem Konflikt, sind 63 Objekte bereits auf der Datenbank und ich muss dann versuchen, irgendeinen inkonsistenten Zustand nochmal zu reparieren. Das ist alles eher weniger schön.

Wenn ich allerdings alles in einem Schritt hochlade und es kommt dabei zu einem Konflikt, werden keine Änderungen auf die Datenbank geschrieben. Ich kann jetzt in aller Ruhe den Konflikt lokal beheben und danach den Upload einfach nochmal versuchen.

Last edited by mmd (2022-06-29 18:06:13)

Offline

#68 2022-06-29 18:28:43

whb
Member
Registered: 2013-01-18
Posts: 611

Re: Api Probleme

mmd wrote:

Die Sache ist etwas komplizierter, weil es "den Upload" so nicht gibt. Der teilt sich nämlich in folgende Schritte auf:

* (1) Neuen Änderungssatz erzeugen: link
* (2) Änderungssatz aktualisieren (nur für erneutes Hochladen, sofern Änderungssatz vorher nicht geschlossen wurde): link
* (3) Diff upload (das eigentliche Hochladen der OSM Objekte): link
* (4) Änderungssatz schließen: link

Probleme machen die Schritte (1) und (2), die auf Ruby on Rails laufen. (3) läuft auf C++, ebenso wie der Download.

Vor (1) fragt JOSM noch nach offenen Änderungssätzen des Nutzers: link

mmd wrote:

Wenn ich allerdings alles in einem Schritt hochlade und es kommt dabei zu einem Konflikt, werden keine Änderungen auf die Datenbank geschrieben. Ich kann jetzt in aller Ruhe den Konflikt lokal beheben und danach den Upload einfach nochmal versuchen.

Danke, gut zu wissen!

Auf dem Dev-Server konnte ich das Problem leider nicht reproduzieren.
Das OAuth mit den angegebenen Daten hat der Server übrigens bei mir nicht akzeptiert, habe dann ein eigenes Benutzerkonto erstellt:
https://josm.openstreetmap.de/ticket/22160#comment:31

chris66 wrote:

Die Meldung ist nun allerdings leicht anders (GOAWAY received).

Bei HTTP/2 gibt es also vom Server die Ankündigung "GOAWAY", bevor dieser dann wie bisher auch das TCP-FIN zum Schließen der Verbindung sendet.
Das GOAWAY verwertet JOSM dann wohl aber auch nicht.

Offline

#69 2022-06-29 21:39:58

Rainero
Member
Registered: 2016-02-26
Posts: 369

Re: Api Probleme

Bei mir ist der erste Radiobutton "Lade alle Objekte in einer Anfrage hoch" gesetzt:

Screenshot-JOSM-api-error-upload-einstellungen-20220629.png

Offline

#70 2022-06-30 10:38:47

whb
Member
Registered: 2013-01-18
Posts: 611

Re: Api Probleme

Nachdem ich mir jetzt auch das HTTP2-Plugin für JOSM installiert habe und ausgiebig getestet habe:

Auch beim Herunterladen von Notes (https://api.openstreetmap.org/api/0.6/notes...) bekomme ich manchmal "GOAWAY" und aber immer nur dann, wenn zwischen zwei Abfragen ca. 4-6 Sekunden liegen. Frage ich deutlich schneller oder langsamer ab, bekomme ich kein GOAWAY.
Nach Auswertung von Wireshark und JOSM-Logs läuft das immer nach folgendem Schema ab:
1. Verbindungsaufbau
2. Up- oder Download von der OSM-API
3. OSM-Server beendet die Verbindung mit GOAWAY, gefolgt von einem TCP-FIN.
4. Gleichzeitig bzw. weniger als eine Millisekunde davor (die Zeitnahme ist vermutlich auch nicht 100%-ig genau) oder danach versucht JOSM über die inzwischen geschlossene Verbindung Daten zu senden, was dann fehlschlägt.
5. JOSM behandelt diesen Fall dann nicht korrekt.

Genau da scheint also das Problem zu sein.
Bei erstmaligen Verbindungen zur API tritt der Fehler nie auf, erst wenn JOSM versucht eine bestehende Verbindung nochmal zu verwenden, nachdem sie kurz davor geschlossen wurde. Also so etwas wie ein Time-of-Check-to-Time-of-Use-Problem: https://de.wikipedia.org/wiki/Time-of-C … se-Problem
JOSM bzw. Java sehen nach, ob die Verbindung zur API noch besteht, falls das der Fall ist, versucht JOSM diese wiederzuverwenden, bis dann aber JOSM die Verbindung verwendet, wurde diese zwischenzeitlich geschlossen. Diesen Fall behandelt dann JOSM nicht korrekt.

Offline

#71 2022-06-30 10:54:19

mmd
Member
Registered: 2010-11-06
Posts: 2,101

Re: Api Probleme

whb wrote:

bekomme ich manchmal "GOAWAY" und aber immer nur dann, wenn zwischen zwei Abfragen ca. 4-6 Sekunden liegen.

Das ist sehr interessant, der Wert liegt verdächtig nahe am Keep-Alive timeout von 5 Sekunden, den ich in den Traces von MichaelFS im Ticket gesehen habe (das war allerdings noch mit HTTP/1.1)

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]

Es wäre prima, wenn du deine Findings auch im JOSM Ticket posten könntest, es ist sehr relevant für unser Problem.

Offline

#72 2022-07-01 01:06:14

Fabi2
Member
Registered: 2010-03-21
Posts: 1,093

Re: Api Probleme

whb wrote:

Bei erstmaligen Verbindungen zur API tritt der Fehler nie auf, erst wenn JOSM versucht eine bestehende Verbindung nochmal zu verwenden, nachdem sie kurz davor geschlossen wurde. Also so etwas wie ein Time-of-Check-to-Time-of-Use-Problem: https://de.wikipedia.org/wiki/Time-of-C … se-Problem
JOSM bzw. Java sehen nach, ob die Verbindung zur API noch besteht, falls das der Fall ist, versucht JOSM diese wiederzuverwenden, bis dann aber JOSM die Verbindung verwendet, wurde diese zwischenzeitlich geschlossen. Diesen Fall behandelt dann JOSM nicht korrekt.

Wenn das doch bloß 'ne simple race condition sein sollte, dann wundert mich, daß es bisher noch keine Probleme gab. Auf jeden Fall sollte der Code JOSM doch eine Callback-Funktion registrieren (oder wie man Vergleichbares in Java auch immer macht), damit es mitbekommt, wenn ihm zwischenzeitlich die Verbindung wegfliegt.

Last edited by Fabi2 (2022-07-01 01:30:59)


Healthcare 2.0
Quotentroll für den Fortschritt

Offline

#73 2022-07-01 19:37:35

chris66
Member
From: Germany
Registered: 2009-05-24
Posts: 10,024

Re: Api Probleme

Heute superschnell und ohne Errors. Wurde schon was gebastelt am Server? cool


Mapper aus dem Münsterland.

Offline

#74 2022-07-01 22:30:07

SimonPoole
Member
Registered: 2010-03-14
Posts: 2,184

Re: Api Probleme

chris66 wrote:

... Wurde schon was gebastelt am Server? cool

Nein und es gibt auch keinen Grund dafür.

Offline

#75 2022-07-02 17:45:24

Rainero
Member
Registered: 2016-02-26
Posts: 369

Re: Api Probleme

Heute trat es erstmals nicht beim Hochladen auf, sondern direkt beim Neustart nach dem Aktualisieren der Plugins:

Screenshot-JOSM-api-error-after-restart-after-plugin-update-20220702.png

Leider habe ich kein Wireshark-Log, weil ich in dieser Phase nicht damit rechnete. Zwei weitere Neustarts mit Wireshark waren dann ohne Fehler.
Bei mir ist "kein Proxy" eingestellt.

JOSM-tested 18463 mit http2 Plugin
openjdk version "11.0.15" 2022-04-19
opensuse 15.3

Offline

Board footer

Powered by FluxBB