Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Neuinstallation mit Sqlite 3 perfect; dann Fehler (HY000) beim ersten aufrufen
#1
Hallo zusammen,

ich bin neu bei MyBB und habe so eben MyBB (1.8.38) von mybb.de mit php-fpm 8.3 hinter nginx installiert. Der MyBB installer lädt ohne Probleme, und zeigt an das alle Voraussetzungen erfüllt sind.

Bei der Datenbank habe ich Sqlite 3 ausgewählt, einen von php-fpm schreibbaren Pfad angegeben, in meinem Fall, `/data/db/mybb.sqlite`, und die Installation fortgeführt. Ich habe sehen können das die Datenbank und Tabellen erstellt wurden, und nirgends gab es Fehlermeldungen.

So bald ich dann das Forum öffne, siehe ich im Browser auch keine Problem, aber in den logs sehe ich dann lauter Fehler. So sehen die logs aus:

Code:
mybb1-1  | - -  10/Jul/2024:17:15:24 +0000 "GET /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:15:30 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:15:33 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:15:35 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:15:40 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:02 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:05 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:07 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:09 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:11 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:33 +0000 "POST /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:42 +0000 "GET /install/index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:45 +0000 "GET /index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:45 +0000 "GET /task.php" 200
mybb1-1  | PHP message: PHP Fatal error:  Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '512' frames in /var/www/html/inc/db_pdo.php:168
mybb1-1  | Stack trace:
mybb1-1  | #0 /var/www/html/inc/db_sqlite.php(420): dbpdoEngine->error_number('HY000')
mybb1-1  | #1 /var/www/html/inc/db_sqlite.php(468): DB_SQLite->error_number('HY000')
mybb1-1  | #2 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #3 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #4 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #5 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #6 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #7 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #8 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #9 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #10 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #11 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #12 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #13 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #14 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #15 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #16 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #17 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #18 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #19 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #20 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #21 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #22 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #23 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #24 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #25 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #26 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #27 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #28 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #29 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #30 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #31 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #32 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #33 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #34 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #35 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #36 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #37 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #38 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #39 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #40 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #41 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #42 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #43 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #44 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #45 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #46 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #47 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #48 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #49 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #50 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #51 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #52 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #53 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #54 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #55 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #56 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #57 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #58 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #59 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #60 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #61 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #62 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #63 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #64 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #65 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #66 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #67 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #68 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #69 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #70 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #71 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #72 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #73 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #74 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #75 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #76 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #77 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #78 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #79 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #80 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #81 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #82 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #83 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #84 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #85 /var/www/html/inc/db_sqlite.php(491): errorHandler->error(20, Array)
mybb1-1  | #86 /var/www/html/inc/db_sqlite.php(226): DB_SQLite->error('SQLSTATE[HY000]...', 'HY000')
mybb1-1  | #87 /var/www/html/inc/db_sqlite.php(308): DB_SQLite->query('\n\t\t\tINSERT\n\t\t\tI...', 0)
mybb1-1  | #88 /var/www/html/inc/db_sqlite.php(713): DB_SQLite->write_query('\n\t\t\tINSERT\n\t\t\tI...')
mybb1-1  | #89 /var/www/html/inc/functions_task.php(125): DB_SQLite->insert_query('tasklog', Array)
mybb1-1  | #90 /var/www/html/inc/class_error.php(227): add_task_log(Array, 'MyBB SQL Error ...')
mybb1-1  | #91 /var/www/html/inc/db_sqlite.php(491): e...
mybb1-1  | - -  10/Jul/2024:17:16:45 +0000 "GET /index.php" 200
mybb1-1  | - -  10/Jul/2024:17:16:46 +0000 "GET /task.php" 200

Hat jemand eine Idee was hier das Problem ist? HY000 bedeutet ja eigendlich das eine Verbindung mit der Datenbank nicht hergestellt werden kann, aber die Installation hat ja nur Sekunden davor die Datenbank erstellt und dann auch noch beschrieben.  Sad
Zitieren
#2
Dein Log ist leider wenig hilfreich, da die Fehlermeldung jedes Mal abgeschnitten ist. Da sollte eigentlich stehen, was der genaue Fehler ist. Spontan tippe ich auf einen fehlerhaften Pfad beim Pfad zu Datenbank-Datei.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Der Pfad stimmt. Die Installation erstellt da die Datenbank und Tabellen erstellt, hab die Datenbank auch mit SQLite auf der CLI inspiriert und sie gut aus.

Ich hatte den Verdacht nun das die Datenbank korrupt wird durch verschiedene parallele FPM Prozesse und es scheint zu stimmen.

Ich habe die max Prozesse von FPM auf 1 beschränkt und dann gibt es keine Probleme mehr.

Ich verstehe nur nicht warum. SQLite unterstützt den Zugang von mehreren Prozessen gleichzeitig. Warum es hier nicht klappt ist mir nicht klar.

Vielleicht benutzt MyBB keine Transaktionen was bei Parallelem Zugriff problematisch werden könnte?

Oder das Locking Mechanismus von SQLite funktioniert auf irgendeinem Grund nicht. Vielleicht weil die Datenbank auf einem Dockerdateisystem ist? (Allerdings nicht auf einem Netzwerk Volume oder sonstigen Mount)

Falls jemand eine Idee hat, würde ich mich freuen.
Zitieren
#4
Bei SQLite können durchaus Probleme bei gleichzeitigen Zugriffen auftreten, allerdings nicht in der Häufigkeit wie bei dir. Da muss irgendwas bei deinem Setup reinspielen.

Bei MySQL oder PostgreSQL gibt es diese Problematik nicht.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Wenn ich pm.max_requests auf 1 setze, started jeder PHP-FPM Prozess nach dem er ein einzigen Request bedient hat... und dann gibt es auch keine SQLite Fehler.

Genauso funktioniert alles wenn ich den pm auf "static" setze, statt "ondemand".

Vielleicht wird be der bei per pm=ondemand Einstellung ein PHP-FPM Prozess geforked wird, inclusive offene Datenbank. In der SQLite Dokumentation steht dazu folgendes:

Zitat:Do not open an SQLite database connection, then fork(), then try to use that database connection in the child process. All kinds of locking problems will result and you can easily end up with a corrupt database. SQLite is not designed to support that kind of behavior. Any database connection that is used in a child process must be opened in the child process, not inherited from the parent.
Do not even call sqlite3_close() on a database connection from a child process if the connection was opened in the parent. It is safe to close the underlying file descriptor, but the sqlite3_close() interface might invoke cleanup activities that will delete content out from under the parent, leading to errors and perhaps even database corruption.

Zumindest kann ich mir vorstellen das bei ondemand der FPM Prozess geforked wird der schon die offene Databank hat, während bei static alle processes erstellt werden before FPM überhaupt MyBB code ausführen kann.
Zitieren
#6
Unser Demo-Forum läuft auch mit SQLite und mir sind noch keine solchen Probleme aufgefallen. PHP-FPM läuft dabei ondemand mit mehreren Prozessen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Oh Spannend! Kannst du mir sagen welche Versionen von SQLite ihr dafür Benutzt, nur für den Fall das es was damit zu tun hat?

Meine:
PDO Driver for SQLite 3.x => enabled
SQLite Library => 3.44.2
Zitieren
#8
Das ist ein Debian-Server, dort wird SQLite 3.40.1 verwendet.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Neuinstallation mit vorhandener DB? Kalliseppel 3 1.805 31.07.2023, 17:10
Letzter Beitrag: Kalliseppel
  Standard Pfad zur Sqlite Datenbank? bbtuxi 9 1.892 12.09.2022, 16:37
Letzter Beitrag: bbtuxi