Installationen aus dem appcenter schlagen fehl

german

#1

Hallo zusammen,
noch ein Problem, bei deren Lösung ich auf Eure Hilfe hoffe:
Alle Installationen und Aktualisierungen aus dem Appcenter schlagen mit der Meldung

 Ein unbekannter Fehler mit Status-Code 502 trat während des Verbindungsaufbaus zum Server auf. Bitte versuchen Sie es später noch einmal.

fehl. Ich kann den Fehler aber nicht finden…
in der management-console-module-appcenter.log kann man unter anderem folgendes finden:

[code]> 03.01.14 12:32:48.862 MODULE ( PROCESS ) : Finished dry_run for oxseforucs on localhost

03.01.14 12:32:48.862 MODULE ( PROCESS ) : Problems encountered or confirmation required. Removing component oxseforucs
03.01.14 12:33:29.153 MODULE ( PROCESS ) : Try to update (update) oxseforucs. Force? False. Only master packages? False. Prevent installation on other systems? None. Only dry run? True.

03.01.14 12:45:19.933 MODULE ( PROCESS ) : Downloading “https://appcenter.software-univention.de/meta-inf/3.1/index.json.gz”…
03.01.14 12:45:24.589 MODULE ( PROCESS ) : Try to install (install) owncloud. Force? False. Only master packages? False. Prevent installation on other systems? None. Only dry run? True.
03.01.14 12:52:28.306 MODULE ( PROCESS ) : Finished dry_run for owncloud on localhost
03.01.14 12:52:28.306 MODULE ( PROCESS ) : Problems encountered or confirmation required. Removing component owncloud
03.01.14 12:55:25.436 MAIN ( WARN ) : Shutting down all open connections[/code]

Von “Problems” kann ich aber vorher nichts sehen. Irgendwelche Proxies sind meines Wissens nicht eingestellt.
Kann man eine Installation aus dem Appcenter auch auf der Konsole ausführen, vielleicht kann man danach zum Fehler mehr sagen?

Danke und liebe Grüße
Sascha


#2

Hallo zusammen,
hat sich erledigt…
Ich hab keine Ahnung, was genau dazu geführt hat, dass es dann auf einmal ging, aber kurz gesagt, es hatte irgendwie mit den eingestellten Repositories zu tun. Eins (ein altes deaktviertes Errata) aktiviert, danach wieder deaktiviert, un d es hat geklappt!

Also…solved!

Danke
Sascha


#3

Heute habe ich gesehen, dass es ein Update zu Open-Xchange im Appcenter gibt.
Wollte ich machen…und da war er dann wieder, der Fehler…

Ein unbekannter Fehler mit Status-Code 502 trat während des Verbindungsaufbaus zum Server auf. Bitte versuchen Sie es später noch einmal.

Mehr Informationen gibt es wieder nicht, auch nicht in den Logs.
Das ganze passiert auf 2 voneinander unabhängigen Servern.

Bitte erklärt mir doch mal, was hier los ist!

Danke
Sascha


#4

Hallo,

gehen die Systeme direkt ins Netz oder über einen Proxy?

Viele Grüße,
Dirk Ahrnke


#5

Direkt über den Router ohne Umweg über einen Proxy…
Das betrifft übrigens auch andere Installationen aus dem Appcenter.
Gleicher Fehler…keine Erklärung.

Danke
Sascha


#6

Ad hoc fällt mir nur ein, dass es sinnvoll wäre, alle Komponenten auf Erreichbarkeit der verwendeten Repositories zu prüfen. Falls das System kein Master ist, sollten die DCs in die Prüfung einbezogen werden.


#7

Alle Reps sind erreichbar und das System ist Master…
Das ist es also leider nicht.
Die Internetanbindung bei diesen Servern ist recht langsam, also um die 2 MBit, aber das kann es doch nicht sein, oder?
Oder kann ich irgendwo die Wartezeit nach oben korrigieren?

Danke
Sascha


#8

Das dürfte eigentlich kein Fehler im App Center selbst sein, dort scheint alles gut zu gehen.

> 03.01.14 12:45:24.589  MODULE      ( PROCESS ) : Try to install (install) owncloud. Force? False. Only master packages? False. Prevent installation on other systems? None. Only dry run? True.
[...]
> 03.01.14 12:52:28.306  MODULE      ( PROCESS ) : Problems encountered or confirmation required. Removing component owncloud

Die letzte Zeile bedeutet an dieser Stelle nicht unbedingt Probleme im Sinne von “es ist etwas schief gegangen” (“Problems encountered”), sondern eher “ich bin nicht sicher, ob ich weiter machen soll, ich frag mal lieber nach” (“or confirmation required”). Ich gehe davon aus, dass alles funktioniert hat und hier eine Bestätigung dafür benötigt wird, owncloud wirklich zu installieren (Im Log steht deshalb: “Only dry run? True”).

502 als Fehlercode wird von uns nicht verwendet, daher auch ein “unbekannter Fehler”. Es handelt sich hier wohl eher um einen Fehler, der nicht vom Univention Management Console Server (UMC Server) zurückgegeben wird, sondern wahrscheinlich von Apache selbst.

Vielleicht steht ja etwas von 502 in /var/log/apache2/error.log? Wahrscheinlich treten die Fehler schon vor 03.01.14 12:52:28 auf.

Die Ursache für die Apache-Fehler kann ich nicht feststellen. Aber eine langsame (und manchmal unzuverlässige?) Netzwerkverbindung ist ein erster Hinweis. 7 Minuten, um die Pakete von owncloud zu prüfen, ist jedenfalls ziemlich viel. Vielleicht war der UMC Web Server zu der Zeit auch überlastet und Apache (der hier nur als Proxy auftritt) lief dann in einen Timeout.

Viele Grüße
Dirk Wiesenthal


#9

Das scheint in der Tat das Problem zu sein.

[Sat Jan 25 10:00:46 2014] [error] [client 12.123.123.123] (70007)The timeout specified has expired: proxy: error reading status line from remote server 127.0.0.1:8090, referer: foobar.de/univention-management … lang=de-DE
[Sat Jan 25 10:00:46 2014] [error] [client 12.123.123.123] proxy: Error reading from remote server returned by /umcp/command/appcenter/invoke_dry_run, referer: foobar.de/univention-management … lang=de-DE

Kann man die Timeout Zeit erhöhen? Oder was kann ich sonst versuchen?

Danke
Sascha


#10

So, wie sich das jetzt darstellt, gibt es nur zwei Möglichkeiten:

[ul]
[li] Den Timeout erhöhen[/li]
[li] Die Anfrage schneller bearbeiten lassen[/li][/ul]

Der erste Punkt ist sicherlich einfacher, erfordert aber manuelles Eingreifen in das Dateisystem, das nicht jedes noch kommende Update überstehen wird und nach eben solchen erneut ausgeführt werden muss. Den Timeout erhöhen kann man durch Einfügen von

[...]
print 'ProxyPassReverse /umcp/ http://%s:%s/' % (interface, port)
print 'ProxyTimeout 900' # das ist die neue Zeile, default ist 300 (5 Minuten)
@!@
[...]

in

/etc/univention/templates/files/etc/apache2/sites-available/univention-management-console

Danach muss man noch die Konfigurationsdatei neu schreiben lassen und Apache neustarten:

ucr commit /etc/apache2/sites-available/univention-management-console
invoke-rc.d apache2 restart

Das Template, das hier gerade angepasst wurde, wird aber hin und wieder durch Updates überschrieben… Da könnte man mit dpkg-divert ran, aber das sollte man lieber bleiben lassen. Also wird man den Schritt immer dann wiederholen müssen, wenn “univention-management-console-web-server” aktualisiert wird.

Die zweite Möglichkeit ist es, kurz vor dem Installieren einer App alle zusätzlichen Repositories zu deaktivieren und danach wieder zu aktivieren. Das sind jene, die im App Center im Tab “Repository-Einstellungen” unten in der Liste aufgeführt werden. Das sollte zwar den Updateprozess beschleunigen, da dort aber auch wichtige Repositories aufgeführt werden (z.B. die Errata-Updates) kann ich das nicht guten Gewissens empfehlen.
Vielleicht sind dort aber auch gar keine “überflüssigen” Repositories aufgelistet, vielleicht ist die Internetverbindung so langsam, dass selbst ein frisch aufgesetztes System zu lange braucht, um ownCloud zu prüfen.

Mein Rat lautet, wenigstens vorübergehend einfach den ProxyTimeout von Apache hochsetzen (auf irgend etwas über 7 Minuten).

Viele Grüße
Dirk Wiesenthal


#11

Danke, die vorrübergehende Einstellung reicht vollkommen aus.
Das Problem konnte damit behoben werden.

Danke für die Hilfe
Sascha


#12

…konnte für eine Installation aus dem Appcenter an einem einzigen Tag behoben werden, scheinbar war das aber nur ein Zufall, oder die Leitung an diesem tag nur ungewwöhnlich frei…
Das Problem besteht leider immer noch fort, bei zwei verschiedenen (völlig unabhängigegn) Installationen.
Leider hatte ich hier im Forum aber verpasst, das noch mal reinzuschreiben, sorry dafür.
Hat das hier sonst wirklich keiner ausser mir?
Die einzige Gemeinsamkeit bei diesen beiden Installationen ist die jeweils sehr langsame Verbindung nach draussen (<2 MBit).
Den Timeout zu erhöhen hat jedenfalls das Problem leider nicht gelöst.

Würde mich über feedback und Leidesgenossen freuen…

Danke
Sascha


#13

Hallo,

ich konnte den Fehler nachvollziehen. Nachdem nun also umc/http/session/timeout im UMC-Server und in Apache korrekt gesetzt wird, verbleibt noch UMC-Web-Server, der auch seinen Timeout mitbringt…

Das ist natürlich ein Fehler, ich habe auch schon einen entsprechenden Bug geöffnet.

Folgender Patch hat bei mir geholfen (Zeile 757 ff.):

/usr/sbin/univention-management-console-web-server
cherrypy.config.update( {
  'server.socket_port': int( configRegistry.get( 'umc/http/port', 8090 ) ),
  'server.socket_host': configRegistry.get( 'umc/http/interface', '127.0.0.1' ),
  'server.request_queue_size' : 100,
  'response.timeout' : _session_timeout, # <- neue Zeile, _session_timeout ist UCRV umc/http/session/timeout
  'engine.autoreload_on': False,
  'tools.response_headers.on': True,
  'tools.response_headers.headers': [
    ('Content-Type', umcp.MIMETYPE_JSON)
  ],  
  'error_page.default': default_error_page
} )

Danach kann man mit

ucr set umc/http/session/timeout=900

den Timeout beliebig hoch setzen (und hat jetzt hoffentlich alle Stellen erwischt).

Übrigens: Der Workaround von weiter oben ist wieder rückgängig gemacht worden?

print 'ProxyTimeout 900' # das ist die neue Zeile, default ist 300 (5 Minuten)

Das hatten wir per Update jetzt konfigurierbar gemacht, eben auch auf umc/http/session/timeout.

Ich hoffe, damit haben wir das Thema endgültig erschlagen (sobald wir den Patch offiziell freigeben).

Viele Grüße
Dirk Wiesenthal


Aufruf des App Centers scheitert