SMFPortal.de

Willkommen !

Autor Thema: Bitte Hilfe bei Interpretation von Fehlermeldung  (Gelesen 1763 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

mlemke

  • Mitglied
  • **
  • Beiträge: 26
Bitte Hilfe bei Interpretation von Fehlermeldung
« am: 03. April 2016, 10:08:02 »
Folgender Fehler tritt sporadisch auf:
Datenbankfehler

Table './XXXXXXXX/smf_log_online' is marked as crashed and should be repaired
Datei: /XXXXX/YYYYYYY/pages/smf/Sources/Subs.php
Zeile: 2710

Hinweis: Ihre Datenbank scheint veraltet zu sein! Ihre Dateien haben die Version SMF 2.0.11, wogegen die Datenbank die Version 2.0.6 hat. Es wird dringend empfohlen, die neueste Version der upgrade.php auszuführen.


Das entsprechende Codefragment sagt mir nichts zu dem Fehler:
Code
2690: 			);
2691:
2692: // Guess it got deleted.
2693: if ($smcFunc['db_affected_rows']() == 0)
2694: $_SESSION['log_time'] = 0;
2695: }
2696: else
2697: $_SESSION['log_time'] = 0;
2698:
2699: // Otherwise, we have to delete and insert.
2700: if (empty($_SESSION['log_time']))
2701: {
2702: if ($do_delete || !empty($user_info['id']))
2703: $smcFunc['db_query']('', '
2704: DELETE FROM {db_prefix}log_online
2705: WHERE ' . ($do_delete ? 'log_time < {int:log_time}' : '') . ($do_delete && !empty($user_info['id']) ? ' OR ' : '') . (empty($user_info['id']) ? '' : 'id_member = {int:current_member}'),
2706: array(
2707: 'current_member' => $user_info['id'],
2708: 'log_time' => time() - $modSettings['lastActive'] * 60,
2709: )==>
2710: );
2711:
2712: $smcFunc['db_insert']($do_delete ? 'ignore' : 'replace',
2713: '{db_prefix}log_online',
2714: array('session' => 'string', 'id_member' => 'int', 'id_spider' => 'int', 'log_time' => 'int', 'ip' => 'raw', 'url' => 'string'),
2715: array($session_id, $user_info['id'], empty($_SESSION['id_robot']) ? 0 : $_SESSION['id_robot'], time(), 'IFNULL(INET_ATON(\'' . $user_info['ip'] . '\'), 0)', $serialized),
2716: array('session')
2717: );
2718: }
2719:
2720: // Mark your session as being logged.
2721: $_SESSION['log_time'] = time();
2722:
2723: // Well, they are online now.
2724: if (empty($_SESSION['timeOnlineUpdated']))
2725: $_SESSION['timeOnlineUpdated'] = time();
2726:
2727: // Set their login time, if not already done within the last minute.
2728: if (SMF != 'SSI' && !empty($user_info['last_login']) && $user_info['last_login'] < time() - 60)
2729: {
2730: // Don't count longer than 15 minutes.

In der anscheinend monierten Zeile 2710 steht nur eine schließende Klammer: ");".

Am liebsten wäre es mir, anstatt der Ausgabe dieser Fehlermeldung würde folgender SQL-Befehl ausgeführt:
REPAIR TABLE smf_log_online

Ich habe nicht immer Zeit, da händisch einzugreifen und es ist auch lästig. Eine MOD, die das macht, wäre schön, aber ich habe nicht entsprechendes gefunden; zumindest nicht unter den mir naheliegenden Suchstrings wie 'Error handing'.

Gibt es da schon Lösungsansätze?

Gruß

Martin

Parmaster

  • Isomorpher Algorithmus
  • Administration
  • *****
  • Beiträge: 1206
  • Geschlecht: Männlich
Re: Bitte Hilfe bei Interpretation von Fehlermeldung
« Antwort #1 am: 03. April 2016, 11:09:50 »

Hinweis: Ihre Datenbank scheint veraltet zu sein! Ihre Dateien haben die Version SMF 2.0.11, wogegen die Datenbank die Version 2.0.6 hat. Es wird dringend empfohlen, die neueste Version der upgrade.php auszuführen.


Hier steht doch die Fehlermeldung und wie man es beheben kann.
Eine digitale Welt zur Neugestaltung des menschlichen Daseins

mlemke

  • Mitglied
  • **
  • Beiträge: 26
Re: Bitte Hilfe bei Interpretation von Fehlermeldung
« Antwort #2 am: 04. April 2016, 01:52:07 »
Ich wünsche mir eine Lösung, die ich nicht von Hand starten muss. Ich kann nämlich keinen 24 h Support leisen, da es keinen bezahlten Admin gibt. Das heißt, wenn ich meinem Beruf nach gehe, bleibt das Forum u. U. stundenlang down.

Daher möchte ich gern die Fehlermeldung verstehen und vor allem wissen, an welcher Stelle im Souce der Fehler auftritt, bzw. bemerkt wird. Im Source habe ich leider keinerlei TRY/Except-Konstruktionen gefunden und wie gesagt, das mit der Fehlermeldung verlinkte Code-Schnipsel bleibt mir unverständlich.

Gut wäre es, man könnte den Fehler abfangen und anstatt dem User durch die generierte Fehlermeldung Einblicke in die Verzeichnisstrukturen zu geben, die ihn nichts angehen, lieber, dass smf REPAIR TABLE smf_.... ausführt und den Fehler damit selbstätig eliminieren.

Daher meine Frage hier, wie dieses Codefragment zu verstehen ist.

Martin
« Letzte Änderung: 04. April 2016, 01:54:48 von mlemke »

Parmaster

  • Isomorpher Algorithmus
  • Administration
  • *****
  • Beiträge: 1206
  • Geschlecht: Männlich
Re: Bitte Hilfe bei Interpretation von Fehlermeldung
« Antwort #3 am: 04. April 2016, 10:07:26 »
Also, noch mal:

du hast SMF 2.0.11 installiert bzw. immer die Updates gemacht, aber die Datenbank steht immer noch auf 2.0.6.

Da gibt es kein try/except oder was auch immer. Die DB hat sich mit 2.0.11 geändert. Mach das upgrade und alles passt. Da muss man auch nicht andauernd etwas händig machen oder einen bezahlten Admin einstellen.
Eine digitale Welt zur Neugestaltung des menschlichen Daseins

franky

  • Entwicklung
  • *****
  • Beiträge: 261
    • SF Webdesign
Re: Bitte Hilfe bei Interpretation von Fehlermeldung
« Antwort #4 am: 04. April 2016, 18:59:53 »
Befolge doch den Rat von Parmaster.
Es hat von der Version 2.0.6 zu 2.0.11 mehre Änderungen ergeben, siehe Datei Anhang. Mache ein Backup der Datenbank und Dateien deines Forums. Download das Upgrade Paket => http://download.simplemachines.org/index.php?thanks;filename=smf_2-0-11_upgrade.zip, entpacke das Paket. Dann lade nur die Dateien die mit upgrade anfangen wie upgrade.php, upgrade_1-0.sql usw. auf deinen Server. Dann führe www.meinforum.dev/upgrade.php aus. Befolge die Anweisungen. Fertig. Macht ungefähr 30min Zeitaufwand aus.
Gruß Stephan

Webdesign

 

Internes

Nutzungsbedingungen Impressum

Wissenswertes

Hilfe Knowledge Base

Nützliches

Downloads Socialmedia