Fehler in 1.8.1 - Zu früher Session-Timeout mit SQL-Fehler



  • Guten Tag zusammen,
    ich habe ein Problem mit i-doit Pro, das nach Upgrade der aktuellsten Version (von 1.8.0 auf 1.8.1) auftritt:
    Das Session Timeout ist eigentlich auf 60 Minuten gestellt. Manchmal werde ich aber schon nach deutlich kürzerer Zeit ausgelogged - teilweise nach nur wenigen Minuten Inaktivität.

    Auch seltsam ist: nach einem erzwungenen Logout - auch z.B. morgens nach dem Hochfahren, wenn i-doit am Tag vorher nicht manuell abgemeldet wurde - habe ich die Anmeldemaske mit der Info, dass meine Session zu ende ist und ich mich erneut einloggen muss. Der Browser versucht dann, die zuletzt geöffnete Seite zu öffnen - in der Adresszeile steht also nicht die Startseite, sondern irgend eine Unterseite (aktuelles Beispiel: https://idoitserver.contoso.local/?moduleID=7). Danach erscheint die Fehlermeldung:

    Database error : MySQLi error: Lost link to database. (, Unknown error)

    Wenn man dann die Startseite von i-doit manuell anwählt ist man eingeloggt, ein Refresh mit F5 erzeugt aber erneut das Login-Fenster. Hier kann man sich ohne Probleme einloggen und kommt dann auf das Dashboard.

    Aufgefallen ist das ganze mit Chrome.

    Schöne Grüße

    Tobias



  • Hallo,

    das gleiche Problem tritt hier auch auf, bei mir ebenfalls mit Chrome, aber die Kollegen, die mit Firefox arbeiten melden mir das gleiche Problem.

    Dass beim Refresh wieder die Loginmaske auftaucht, liegt bei mir immer daran, das beim Refresh die Logout-Seite aufgerufen wird, weil die auch noch oben in der Url steht. Wenn ich "?logout" weglösche und mit Enter die Startseite aufrufe, dann werde ich nicht wieder ausgeloggt.

    Über den Support als Bug gemeldet hab ich das noch nicht.

    Ist sowieso blöd, dass man nicht mal seine eigenen gemeldeten Bugs in einen Bugtracker nachschauen kann. 😞

    Ob das Timeout mit dem tatsächlich eingestellten erfolgt, habe ich noch nicht explizit geprüft.

    Ciao

    Sven



  • Hallo,
    richtig, das mit dem Refresh erschließt sich mir jetzt auch. Wenn ich bei dem erscheinenden SQL-Fehler explizit die Adresszeile verwende und neu lade, dann funktioniert es. Der Refresh führt manchmal trotzdem zum Logout, obwohl ein anderer Link in der Adresszeile steht…

    Der verfrühte Login ist bei mir auf jeden Fall der Fall. Habe auch schon die Uhren überprüft, aber der Web-Server wird (erfolgreich) per ntp synchronisiert, von der gleichen lokalen Quelle wie mein Client.

    Schöne GRüße

    Tobias



  • Hallo,

    ich habe jetzt nochmal explizit das Timeout auf einem unserer Systeme überprüft.

    Da kann ich keinen vorzeitiges Logout vor Ablauf des Timeouts feststellen.

    Ciao

    Sven



  • Auf das Timeout habe ich jetzt mal etwas genauer geachtet. gerade wieder passiert, ca. 9.20. Laut Logbuch war die letzte Bearbeitung um 8.41, die Session sollte 3600 Sekunden halten.

    Der SQL-Fehler ist mir in der Pro-Demo übrigens auch gerade begegnet…



  • Hallo zusammen,

    der SQL Fehler war sehr tricky und hoffentlich zur Version 1.8.2 behoben. Wenn ihr Interesse habt könnten wir euch eine Beta Version der 1.8.2 zukommen lassen. Wir würden hiermit gerne sicherstellen, dass der Fehler auch endgültig behoben ist. Hierzu einfach eine E-Mail an unsere support Adresse schreiben oder unter login.i-doit.com ein Ticket mit dem Hinweis zur 1.8.2 Beta aufmachen.

    Das mit der Session Zeit ist merkwürdig und steht nicht im Zusammenhang mit der Fehlermeldung. Kann es sein das die PHP Sessions vielleicht durch einen Systemjob aufgeräumt werden? Unter Debian zum Beispiel kann man dies hier konfigurieren: /usr/lib/php5/maxlifetime

    Siehe auch http://stackoverflow.com/questions/3865303/debian-based-systems-session-killed-at-30-minutes-in-special-cron-how-to-overri

    Viele Grüße,
    Dennis



  • Hallo,
    ich hab gerade in der PHP.ini entdeckt, dass dort eine Variable "session.gc_maxlifetime" auf 1440 (24 Minuten) steht. Ich hab die jetzt einfach mal auf eine Stunde angehoben und beobachte, was passiert.

    eine Datei Maxlifetime habe ich nicht, in dem angegebenen Verzeichnis gibt es aber ein Script namens "sessionclean", welches ich noch nicht ganz durchschaut habe… Dort bin ich aber auch erst auf diese Variable aufmerksam geworden - nach der wird entschieden, ob eine Session als veraltet gilt.

    Vielen Dank schonmal soweit!

    Grüße

    Tobais



  • Hallo nochmal,

    das Session Ablauf Problem haben wir nun auch im Griff, wir hatten einen Default von 5 Minuten in der Initialisierung vorgesehen. Dieser greift immer genau dann, wenn eine Session länger als 5 Minuten besteht und jemand anderes gerade auf Login klickt. Hier wurde die umkonfigurierte Zeit noch nicht geladen, da der vollständige Login erst nach Wahl des Mandanten abgeschlossen ist.

    Das Problem ist jedenfalls ebenfalls in der 1.8.2 gelöst.

    Viele Grüße,
    Dennis



  • Aufgrund der starken Nachfrage 😃 hier der HotFix für die falsche Session Timeout und mysql Datenbankfehlermeldung Problematik.

    Dieser Hotfix ist ausschließlich für i-doit 1.8.1 Pro.

    Den Hotfix im i-doit Root Verzeichnis entpacken und die Rechte mit idoit-rights.sh setzen.

    Weitere den Session Timeout betreffende Informationen sind:
    In der PHP Konfiguration gibt es an unterschiedlichen Stellen den Parameter session.gc_maxlifetime = 1440. Dieser ist in Sekunden und muss größer sein als der in i-doit konfigurierte Timeout.
    Weiterhin gibt es auf Debian Systemen einen Cron Job unter /etc/cron.d/php5, der diese Einstellung nutzt, um die Sessions abzumelden. D.h. möchte man den Session Timeout auf einen Wert größer als den PHP Standard von 24 Minuten setzen, muss die PHP Einstellung angepasst werden. Oder der Crontab deaktiviert. Oder beides.

    Edit: habe den Fix nochmal ausgetauscht gerade, das war eine ältere Datei.

    i-doit-1.8.1.pro.session.fix.zip



  • Super, vielen Dank. Ich schaue mal, ob ich das heute noch schaffe, sonst erst wieder am 02. Januar…

    Schöne GRüße und fröhliche Feiertage

    Tobias



  • Hallo,

    hatte das Problem auch.
    Die falsche Session Timeout ist durch den Hotfix behoben.

    Die Datenbankfehlermeldung tritt jedoch weiterhion auf. Gibt es dazu im update 1.8.2 noch eine Änderung?

    Viele Grüße und einen guten Rutsch
    Andreas



  • Hi,

    eigentlich sollte das auch schon in dem Patch mit enthalten sein, bzw. ich konnte das auch verifizieren.
    Vielleicht entpackst Du den Patch einfach nochmal?
    Mit der 1.8.2 ist es dann auch behoben.



  • Hallo zusammen,
    ich habe jetzt das Hotfix eingepflegt: ein verfrühtes Timeout habe ich bisher nicht bemerkt, und der SQL-Fehler taucht auch nicht mehr auf.

    Danke dafür!

    Schöne Grüße

    Tobias



  • Zu früh gefreut… Lange keine FEhler nach dem Hotfix, und jetzt kam gerade nochmal einer von den Datenbankfehlern, nachdem ich mich nach einer abgelaufenen Session wieder angemeldet habe.
    Ich habe bei dem Fehler einfach mal nicht die Seite neu geladen, sondern bin eins zurück und dann eins vor über die Browserfunktion. Dann kam die nette Meldung von wegen Formulardaten und nochmal senden und so.

    Kann es sein, dass das ganze irgendwas mit POST-Übergaben zu tun hat? Ganz weit her geholte Theorie, aber passt gerade so schön mit der Fehlermeldung zusammen....



  • Das mit den Post Daten hatten wir auch vermutet, allerdings passiert es nur im Zusammenhang mit einem Session Timeout, was recht merkwürdig ist. War das erneute auftreten bei dir auch wieder ein Session Timeout?

    Edit: Oh sorry schon ok, du hattest es ja bereits geschrieben das es ein Timeout war 🙂



  • Hallo,

    also bei uns ist der Fehler seit dem einspielen des Patches nicht mehr aufgetreten.

    Ciao

    Sven



  • Wir haben den Fehler gefunden und das Problem zur 1.8.2 gelöst! Die Version kommt ende nächster Woche!


Log in to reply
 


Datenschutz / Privacy Policy