Ergebnis 1 bis 11 von 11

Thema: Newletter Versand schlägt fehl

  1. #1
    Contao-Nutzer Avatar von John Doe
    Registriert seit
    12.10.2012.
    Beiträge
    34

    Trauriges Gesicht Newletter Versand schlägt fehl

    Hi,
    wir versenden alle paar Monate einen Newsletter mit der Contao Funktion. Das hat bisher auch gut geklappt. Heute haben wir auf die 3.5.29 ein Update durchgeführt und jetzt haben wir den Salat:

    - Eine Testsendung klappt problemlos
    - Die eigentliche Versendung wird mit:

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ssl_brace.r.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SELECT *, r.email FROM tl_newsletter_recipients r LEFT JOIN tl_member m ON(r.email=m.email) WHERE r.pid='1' AND r.active=1 GROUP BY r.email ORDER BY r.email LIMIT 0,10) thrown in system/modules/core/library/Contao/Database/Statement.php on line 295
    
    #0 system/modules/core/library/Contao/Database/Statement.php(264): Contao\Database\Statement->query()
    #1 system/modules/newsletter/classes/Newsletter.php(149): Contao\Database\Statement->execute('1')
    #2 system/modules/core/classes/Backend.php(430): Contao\Newsletter->send(Object(Contao\DC_Table))
    #3 system/modules/core/controllers/BackendMain.php(131): Contao\Backend->getBackendModule('newsletter')
    #4 contao/main.php(20): Contao\BackendMain->run()
    #5 {main}
    Quittiert. Ich habe bereits sämtliche Extensions erneuert. Wenn ich das richtig verstehe, ist das Problem aber im Newsletter modul selber, bzw. in der Datenbank.

    Eine Websuche hat leider nichts ergeben, höchsten zu uralten Versionen von Contao.

    Kann jemand was dazu sagen?

    Der letzte funktionierende Versand war mit der Version vom 31.3.2017 - welche auch immer da gerade aktuell war.

    Grüsse+Danke

    Thorsten
    Geändert von xchs (28.09.2017 um 18:30 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Sieht eher nach einer Limitation deines SQL Servers aus. Welcher Hoster?

  3. #3
    Contao-Nutzer Avatar von John Doe
    Registriert seit
    12.10.2012.
    Beiträge
    34

    Standard

    Eher nicht. Es handelt sich um einen Root-Server my MariaDB.

    Zumindest liegts nicht am Hoster. Da ich aber an der SQL Config nichts gefummelt habe, sondern mit der abgesicherten Config seit einigen Jahren arbeite, bezweifel ich das. Könnte höchstens sein, das Ubuntu 16.04 hier bei einem update mit einen Streich spielt.

    Wie könnte ich das prüfen ob es die SQL ist? Und warum geht der Testversand?

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von John Doe Beitrag anzeigen
    Eher nicht. Es handelt sich um einen Root-Server my MariaDB.

    Zumindest liegts nicht am Hoster.
    Warum bist du dir da so sicher? Die Fehlermeldung lautet
    Code:
    ... this is incompatible with sql_mode=only_full_group_by

  5. #5
    Contao-Nutzer Avatar von John Doe
    Registriert seit
    12.10.2012.
    Beiträge
    34

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Warum bist du dir da so sicher?
    Wie gesagt, es ist ein root server. Da ich MariaDB (also aktuelles MySQL bzw. Fork devon) "out of the box" verwende und es bisher damit problemlos funktioniert hat, wäre das nicht meine erste Wahl. Das habe ich auch geschrieben.

    Das ist mir dessen aber auch nicht 100% sicher bin kann man ja gut in den zwei darauf folgenden Sätzen ablesen...

    Aber zurück zur Frage:

    Die Fehlermeldung lautet
    Code:
    ... this is incompatible with sql_mode=only_full_group_by
    Okay, da steht ein Fehler mit SQL. Und jetzt wieder die Frage aus meiner Email zuvor:
    - Wie kann ich das Prüfen
    - Wieso geht dann der Testversand

    oder um es abzukürzen:
    Wie kann ich die SQL so konfigurieren, dass es wieder geht?

    Es kommt ja schliesslich vorher die Meldung
    Code:
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'ssl_brace.r.id' which is not (...)
    . Und *dass* sieht für mich ja eher nach einem Syntaxproblem in der Abfrage aus...

    Wie kann ich das Problem denn nun beheben? Oder soweit isolieren dass man herausfinden kann wo das Problem nun wirklich liegt?

    Danke.

  6. #6
    Contao-Nutzer Avatar von John Doe
    Registriert seit
    12.10.2012.
    Beiträge
    34

    Multimedia

    StackOverflow hilft...

    Also, falls die Lösung jemanden interessiert (und es nicht nur darum geht wer jetzt Recht hat oder sich irrt oder sicher ist oder welcher Hoster dabei ist):

    Contao hat offensichtlich ein Problem mit SQL syntax. Jedenfalls ist
    Code:
    sql_mode = 'ONLY_FULL_GROUP_BY'
    durchaus eine sinvolle Einstellung um SQL code Standardgerecht zu behandeln. Das könnte man nur sicherlich aus dem Programm heraus oder für die Session abstellen, aber das ist zumindest in der aktuellen Contao Version nicht der Fall.

    Es gibt nun diverse Methoden dieses Verhalten abzustellen, die schlechteste davon ist sql_mode='' zu setzen. Besser ist es ein paar korrekte Einstellungen in der my.cnf unterzubringen, siehe hier:

    https://stackoverflow.com/questions/...-full-group-by

    (wer zu faul ist dem Link zu folgen:
    Code:
    [mysqld]  
    sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    ).
    Mysql restart nicht vergessen.

    Der Newsletterversand funktioniert nun wieder.

    Ändert nichts daran, das Contao offensichtlich seit kurzem nicht mehr kompatibel zu aktuellen Versionen von Mysql in der Standardconfig ist...

    Grüsse
    T

  7. #7
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.078
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Und wenn du jetzt noch einen Issue auf Github aufmachst, dann werden die Entwickler sogar davon erfahren, dass es eventuell ein Problem mit MySQL ab 5.7.5 gibt.

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von John Doe Beitrag anzeigen
    Wie gesagt, es ist ein root server.
    Das bedeutet ja keinesfalls automatisch, dass der Server nicht "richtig" oder zumindest anders konfiguriert ist, als erwartet.

    Jedenfalls, wenn du das Problem mit der Default MariaDB Config in einer frischen Contao Installation reproduzieren kannst, dann solltest du das als Issue auf GitHub posten. Wäre nicht das erste Problem, dass durch neue Standards in aktuellen MySQL oder MariaDB Konfigurationen auftritt

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    @John Doe: welche MariaDB Version ist bei dir in Verwendung?

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Contao Leads hat das selbe Problem: https://github.com/terminal42/contao-leads/issues/49

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •