Elxis CMS Forum

Ελληνικό Forum => Γενικά Θέματα για το Elxis CMS => Topic started by: michalis1984 on July 31, 2013, 14:58:00

Title: Fatal error σε Elxis4
Post by: michalis1984 on July 31, 2013, 14:58:00
Έχω λάβει 2 fatal errors τις τελευταίες 3 ημέρες σε ένα απο τα 2 sites που έχω φτιάξει με το elxis4 και θα ήθελα παρακαλώ να μου πείτε εαν είναι κάτι που πρέπει να προσέξω ή εαν πρόκειται για "αστοχίες" της στιγμής καθώς πρόκειται για το ίδιο θέμα και στα 2 emails. Ευχαριστώ. Ακολουθούν τα 2 emails


Please inspect the site to find-out was caused this error and fix it.

 The detailed error message was:
 ERROR in file /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php line 41
 Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '19d01702d065facf8e247d741aac75ae' for key 'uniqueid'' in /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php:41
 Stack trace:
 #0 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php(41): PDOStatement->execute(NULL)
 #1 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/helpers/stats.helper.php(172): elxisPDOStatement->execute()
 #2 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/helpers/stats.helper.php(56): elxisStatsHelper->trackVisit()
 #3 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/document.class.php(820): elxisStatsHelper->track()
 #4 /home/michalis/public_html/daskalemata4/includes/loader.php(230): elxisDocument->make()
 #5 /home/michalis/public_html/daskalemata4/index.php(18): require('/home/michalis/...')
 #6 {main}
   thrown

 This error was logged

 Date: 2013-07-28 06:42:30 (UTC)

------------------------------------------

Please inspect the site to find-out was caused this error and fix it.

 The detailed error message was:
 ERROR in file /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php line 41
 Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'fc96b9ae9292d96ce600d48b6a6e195f' for key 'uniqueid'' in /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php:41
 Stack trace:
 #0 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/database/statement.class.php(41): PDOStatement->execute(NULL)
 #1 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/helpers/stats.helper.php(172): elxisPDOStatement->execute()
 #2 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/helpers/stats.helper.php(56): elxisStatsHelper->trackVisit()
 #3 /home/michalis/public_html/daskalemata4/includes/libraries/elxis/document.class.php(820): elxisStatsHelper->track()
 #4 /home/michalis/public_html/daskalemata4/includes/loader.php(230): elxisDocument->make()
 #5 /home/michalis/public_html/daskalemata4/index.php(18): require('/home/michalis/...')
 #6 {main}
   thrown

 This error was logged

 Date: 2013-07-31 11:27:35 (UTC)
Title: Re: Fatal error σε Elxis4
Post by: datahell on August 01, 2013, 12:47:51
Έχει ξανα-αναφερθεί αυτό μερικές φορές. Προέρχεται από τον καταγραφέα επισκέψεων που έχεις ενεργοποιημένο (στατιστικά). Δεν είναι κάτι που χρειάζεται να σε ανησυχεί, δεν έχει καμία απολύτως επίπτωση στο site και συμβαίνει πολύ σπάνια και μόνο σε ορισμένους server. Κάποια στιγμή θα το κοιτάξω με την ησυχία μου και θα το διορθώσουμε. Προς το παρόν το αγνοείς.
Title: Re: Fatal error σε Elxis4
Post by: webgift on August 01, 2013, 13:34:25
Ιδίως στους διακομιστές του σχολικού δικτύου είναι η χαρά του να εμφανίζεται :-)
Title: Re: Fatal error σε Elxis4
Post by: michalis1984 on August 01, 2013, 15:14:52
Σας ευχαριστώ και τους 2  ;D Με το elxis 4 μπορώ να κοιμάμαι ήσυχος.
Title: Re: Fatal error σε Elxis4
Post by: webgift on August 01, 2013, 15:23:33
:-) Έτσι έτσι ..
Title: Re: Fatal error σε Elxis4
Post by: fivar on November 05, 2013, 19:56:13
Καλησπέρα,

Τις τελευταίες 10-15 ημέρες λαμβάνω τα παρακάτω fatal errors 3-4 φορές την ημέρα:

The detailed error message was:
ERROR in file /home/www/schoolessons.gr/includes/libraries/elxis/uri.class.php line 15 Cannot redeclare class elxisUri


The detailed error message was:
ERROR in file /home/www/schoolessons.gr/includes/libraries/elxis/database.class.php line 400 Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes)

Καμμιά ιδέα τι μπορεί να φταίει;
Title: Re: Fatal error σε Elxis4
Post by: datahell on November 05, 2013, 21:36:22
Χάνεται η σύνδεση με τη βάση γιατί η ram που έχει ανατεθεί στην php στον server σου φτάνει στο όριό της. Το όριο στο server σου είναι 128mb (134217728 bytes = 128mb). Είτε ανεβάζεις αυτό το όριο (πχ 256M) , είτε ξελαφρώνεις λίγο το server, είτε ψάχνεις να βρεις τι είναι αυτό που τον φορτώνει πολύ και το αντιμετωπίζεις κατάλληλα. Πάντως τα 128M θεωρώ ότι είναι ικανοποιητικά, οπότε μάλλον είναι παραφορρτωμένος ο server ή τα script/site που τρέχουν δεν κάνουν χρήση cache και παρόμοιων, που μπορούν να μειώσουν τον φόρτο.

Παρατήρησε αν το μήνυμα σφάλματος που βλέπεις αναφέρει πάντα ακριβώς το ίδιο αρχείο και γραμμή ή αλλάζει. Αν είναι πάντα το ίδιο τότε είναι θέμα Elxis και θα δούμε τι μπορεί να το προκαλεί.
Title: Re: Fatal error σε Elxis4
Post by: fivar on November 06, 2013, 01:58:18
Και στα δύο λάθη είναι πάντα το ίδιο αρχείο και η ίδια γραμμή

Αυτό με την ram θα το ψάξω και θα αναφέρω αναλόγως  ;D

Ευχαριστώ
Title: Re: Fatal error σε Elxis4
Post by: datahell on November 06, 2013, 21:11:29
Η συγκεκριμένη γραμμή τρέχει οποιοδήποτε query οπότε δεν λέει κάτι αυτό. Είναι το prepare statement του pdo. Θα πρέπει να δεις το debug backtrace του Elxis για να δεις ποιo αρχείο και ποια γραμμή στο Elxis την κάλεσε. Λόγω της φύσης του σφάλματος (prepare pdo) θεωρώ ότι είναι θέμα ρύθμισης του pdo στο server σου, φτάνει κάποιο limit πιθανότατα.

Παράδειγμα στο πως διαβάζουμε το backtrace report από το error.log του Elxis

[2013-11-06 19:05:47]    ERROR in file E:\myweb\elxis41\includes\libraries\elxis\database\statement.class.php line 41
Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found:
1054 Unknown column 'lidx' in 'field list'' in E:\myweb\elxis41\includes\libraries\elxis\database\statement.class.php:41
Stack trace:
0 E:\myweb\elxis41\includes\libraries\elxis\database\statement.class.php(41): PDOStatement->execute(NULL)
1 E:\myweb\elxis41\modules\mod_iosr_topdestinations\mod_iosr_topdestinations.php(134): elxisPDOStatement->execute()
2 E:\myweb\elxis41\modules\mod_iosr_topdestinations\mod_iosr_topdestinations.php(113): modioshTopDestin->fetchLocations(Object(iosCore))
3 E:\myweb\elxis41\modules\mod_iosr_topdestinations\mod_iosr_topdestinations.php(333): modioshTopDestin->run()
4 E:\myweb\elxis41\includes\libraries\elxis\module.class.php(279): include('E:\myweb\elxis4...')
5 E:\myweb\elxis41\includes\libraries\elxis\module.class.php(176): elxisModule->render(Object(stdClass), '', 0)
6 E:\myweb\elxis41\includes\libraries\elxis\document.class.php(1011): elxisModule->renderPosition('right', '', 0)

Το σφάλμα εμφανίζεται πάνω και είναι ότι δεν υπάρχει η στήλη "lidx" στην βάση δεδομένων.
Μην μπερδεύεσε όμως, δεν φταίει το "statement.class.php line 41", απλά εκεί εκδηλώθηκε το σφάλμα που όμως είχε αίτιο προηγούμενο.

Για να βρούμε τι εκτέλεσε αυτό το query και δημιούργησε το σφάλμα στο statement.class.php διαβάζουμε ανάποδα, από κάτω προς τα πάνω, και βλέπουμε στο 1 ότι το συγκεκριμένο query εκτέλεσε το module "mod_iosr_topdestinations.php" στην γραμμή 134. Αν ανοίξεις το αρχείο του module και δεις το query λίγες γραμμές πιο πάνω από την 134 θα εντοπίσεις το λάθος που υπάρχει εκεί (αντί του lidx έπρεπε να γραφεί lid). Με αυτόν τον τρόπο κάνουμε αποσφαλμάτωση στο Elxis σε σφάλματα σχετικά με την βάση δεδομένων και όχι μόνο.
Title: Re: Fatal error σε Elxis4
Post by: fivar on December 04, 2013, 11:03:09
Το πρόβλημα δειχνει να λύθηκε!

Στις ρυθμίσεις > Απόδοση είχα Gzip:ναι και ελαχιστοποιητής (minifier): ναι+GZip.

Μόλις άλλαξα τον ελαχιστοποιητή μόνο σε "ναι" δεν έχω ξαναπάρει μήνυμα Fatal error.

Title: Re: Fatal error σε Elxis4
Post by: datahell on December 04, 2013, 11:51:00
Σωστά, δεν μπορείς να κάνεις gzip μέσα σε gzip. Ένα από τα δύο θα ενεργοποιήσεις. Αν ενεργοποιήσεις αυτό του Elxis τότε δεν χρειάζεται να το ενεργοποιήσεις και στον minifier μιας και ΤΑ ΠΑΝΤΑ θα σερβίρονται πλέον με συμπίεση gzip.