Elxis CMS Forum

Ελληνικό Forum => Ασφάλεια => Topic started by: xenios on June 12, 2013, 13:57:00

Title: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: xenios on June 12, 2013, 13:57:00
A fatal error occured at http://www.xxxx.gr
Please inspect the site to find-out was caused this error and fix it.

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

This error was logged

Date: 2013-06-11 21:31:53 (UTC)
Site URL: http://www.xxxx.gr


---------------------------------------
Please do not reply to this message as it was generated automatically by the Elxis Error Handler and it was sent for informational purposes. If you dont want to receive error notifications you can set so at Elxis global configuration. Elxis Error Handler will not send you an other notification for the next 10 minutes even if more errors occurs.
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: datahell on June 12, 2013, 20:19:51
Έχει αναφερθεί αυτό 1-2 φορές τους τελευταίους μήνες, δεν είναι κάτι σημαντικό αν και χρειάζεται αντιμετώπιση. Το ότι συμβαίνει -έστω και τόσο σπάνια- είναι πολύ περίεργο γιατί η φύση του κώδικα είναι τέτοια που δεν θα έπρεπε να συμβαίνει ποτέ. Στο μόνο που πάει το μυαλό μου είναι κάποιο τοπικό κόλημα της βάσης δεδομένων στο server σου. Στους δικούς μου server αλλά και στο pc μου δεν έχει συμβεί ποτέ σε κανένα site, και έχω πολλά elxis sites. Άρα το εστιάζω σε κάποια τοπική αστοχία του περιβάλλοντος του Elxis. Θέλει πάρα πολύ ψάξιμο γιατί συμβαίνει μόνο σε πολύ ιδιαίτερες συνθήκες. Αν ήταν λάθος του Elxis θα συνέβενε συνέχεια και θα αντιμετωπιζόταν εύκολα και γρήγορα.

Γιατί εμφανίζεται το σφάλμα
Προέρχεται από τα στατιστικά (καταγραφέα επισκέψεων).
Ο επισκέπτης λαμβάνει ένα μοναδικό id (uniqueid) προκειμένου να καταγραφεί ως επισκέπτης μόνο μία φορά στη διάρκεια της ημέρας (visits).
Το Elxis δημιουργεί αυτό το id και κατόπιν κοιτάζει στον πίνακα "elx_statistics_temp" αν υπάρχει ήδη.
Αν δεν υπάρχει προσθέτει μία εγγραφή.
Για την αποφυγή διπλής καταγραφής -σε κάθε περίπτωση- η στήλη "uniqueid" έχει σήμανση UNIQUE. Αν πας να βάλεις μία άλλη εγγραφή με το ίδιο id θα πάρεις το μήνυμα σφάλματος που παίρνεις. Όπως είπα όμως το Elxis κάνει query και ελέγχει αν υπάρχει ηδη τέτοιο κλειδί και αν δεν υπάρχει, και μόνο, το προσθέτει. Οπότε είναι πολύ παράξενο πως τελικά εκτελείται η εντολή να προστεθεί το κλειδί. Θα πρέπει στα μιλι-δευτερόλεπτα μεταξύ του ενός με το άλλο query να έχει συμβεί κάτι στο server. Γι αυτό ανέφερα στην αρχή την έκφραση "τοπική αστοχία".

Θα το ξανα-κοιτάξω κάποια στιγμή. Στο μεταξύ αν το ξαναδεις μην δίνεις σημασία, απλά κάνε refresh και θα φύγει το μήνυμα.
Αν στο κάνει συχνά ξανα-πεστο εδώ ώστε να το κοιτάξω επειγώντως. Σε αυτή την περίπτωση, αν θες, σταματάς την συλλογή στατιστικών μέχρι να βρούμε κάποια λύση.
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: fivar on June 12, 2013, 20:43:28
Από την τελευταία φορά που είχα αναφέρει το πρόβλημα μου το έχει ξανακάνει 4-5 φορές ( https://forum.elxis.org/index.php?topic=7683.0 )
Επίσης πρόσεξα (δεν ξέρω αν έχει σχέση) ότι αν μπώ με τον πχ chrome και συγχρόνως με τον πχ firefox στην αρχική σελίδα του backend με αναφέρει 2 φορές.
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: datahell on June 12, 2013, 21:01:32
Αχα! Εσύ το είχες αναφέρει!
Σωστά σε αναφέρει δύο φορές αν μπεις με διαφορετικούς browser.
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: xenios on June 12, 2013, 21:42:57
Οκ datahell, δεν βιάζομαι.  Υποπτεύομαι κάτι όμως, fivar λες στο μήνυμα σου ότι έχεις εγκαταστήσεις το elxis σε 4 subdomain, είναι η καθεμία καινούρια εγκατάσταση ή έχεις κάνει αντίγραφα της μιας από της άλλης ή τρέχουν την ίδια βάση δεδομένων;
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: fivar on June 12, 2013, 22:26:59
Είχα εγκαταστήσει το elxis 4 σε subdomain και όχι το   elxis  σε 4 subdomains.
Ούτως ή άλλως το έχω μεταφέρει σε domain καταργώντας το subdomain.
Title: Re: Τι σημαίνει το παρακάτω μήνυμα; Τι το προκάλεσε;
Post by: xenios on June 12, 2013, 23:54:44
 :P   indeed... Συγνώμη για την παράφραση.    ;D