PDOException in rssutil.php

Yesterday I uploaded the latest files to my webspace. I know, it’s not ideal according to support information, but according to installation manual a upload with ftp should be fine. After that and reloading of the website, the schema update of the database was successful.

I’m able to login to my installation without troubles. I’m able to use plugins, disable them or enable them and so on. It look good.

However, I need to use a Cronjob for updating RSS-Feeds according to installation manual. It worked before the update. It worked one time after installation, but now I get error messages through email:

[09:30:01/12563] Lock: update.lock
[09:30:01/12563] Scheduled 185 feeds to update…
[09:30:01/12563] Base feed: http://getfullrss.blackseals.net/makefulltextfeed.php?url=www.digitalfernsehen.de%2Frss%2Frss91.xml&key=1&hash=07f7a475a818009e0b49a1c04ec53d8183b5aa92&max=20&links=preserve&exc=
[09:30:01/12563] => 2018-02-22 14:00:16, 202 3
PHP Fatal error: Uncaught exception ‘PDOException’ with message ‘There is no active transaction’ in /var/www/ttrss/classes/classes/rssutils.php:1177
Stack trace:
#0 /var/www/ttrss/classes/rssutils.php(1177): PDO->commit()
#1 /var/www/ttrss/classes/rssutils.php(190): RSSUtils::update_rss_feed(‘202’, true, false)
#2 /var/www/ttrss/update.php(168): RSSUtils::update_daemon_common()
#3 {main}
thrown in /var/www/ttrss/classes/rssutils.php on line 1177

According to error-protocol I have two error messages during one update process:

E_ERROR (1) classes/rssutils.php:1177 Uncaught exception ‘PDOException’ with message ‘There is no active transaction’ in /var/wwwttrss/classes/rssutils.php:1177 Stack trace: #0 /var/wwwttrss/classes/rssutils.php(1177): PDO->commit() #1 /var/wwwttrss/classes/rssutils.php(190): RSSUtils::update_rss_feed(‘202’, true, false) #2 /var/wwwttrss/update.php(168): RSSUtils::update_daemon_common() #3 {main} thrown

E_WARNING (2) plugins/auto_assign_labels/init.php:43 preg_match(): Unknown modifier ‘r’

  1. plugins/auto_assign_labels/init.php(43): preg_match(/\bFilm / Serie\b/i, Kurz nach Ausstrahlung der russichsprachigen Satire-Tricksendung “Sapowednik” (Schutzgebiet) über die Präsidentenwahl in Russland hatte die Sendung auf dem Youtube-Kanal der Deutschen Welle (DW) neben einigen hundert Likes auch über 20.000 Dislikes. Und innerhalb der nächsten Tage waren es dann schon 60.000 Dislikes. Scheinbar möchten die Zuschauer das Video über die erneute Kandidatur Putins und seine chancenlosen Mitbewerber nicht. Und da auch die Anzahl der Dislikes die Anzahl der Aufrufe überholt hat, geht die Redaktion der DW davon aus, dass es sich hierbei um Angriffe von Social Bots auf den Kanal handeln könnte. Bots sind Computerprogramme, die automatisch Inhalte in sozialen Netzwerken und Online-Medien bewerten oder kommentieren, um sie zu manipulieren.Neben dem Satire-Format “Sapowednik”, das sich kritisch mit internationaler Politik auseinander setzt, waren auch Videos über US-Sanktionen und ein Interview mit Oppositionsführer Nawalny betroffen. Dies berichtet die DW auf ihrer Internetseite.Die ersten Auffälligkeiten gab es bei der Nachrichtensendung “DW Nowosti”, die über den"Kreml-Bericht" der US-Regierung berichtete. Die erfolgreiche Sendung mit mehr als einer Million Aufrufen verzeichnete bald mehr Dislikes als Likes. Die Auswertung der Statistiken zeigt, dass viele Negativbewertungen laut IP-Adressen aus Lateinamerika kamen.In der Sendung “Nemtsova.Interview” befragte die Reporterin Zhanna Nemtsova den russischen Oppositionspolitiker Alexej Nawalny. Da er wegen einer umstrittenen Bewährungsstrafe von den Wahlen ausgeschlossen wurde, rief er in dem Interview zu einem Wahlboykott auf. In kurzer Zeit gab es 6000 Likes und kurz danach folgten 4000 Dislikes. Diesmal schien die Sendung nicht der Nerv der Zuschauer in Asien getroffen zu haben.Die DW hat YouTube nun um Hilfe gebeten. Der Sender möchte klären, ob es sich bei den oben genannten Sendungen tatsächlich um Bot-Angriffe handelt. Die DW befürchtet, dass die vielen Dislikes Auswirkungen auf ihre Reichweite auf Youtube haben.
      Massenweise Dislikes auf DW-Youtube-Kanal in Russland)
  2. classes/rssutils.php(754): hook_article_filter(Array)
  3. classes/rssutils.php(190): update_rss_feed(202, 1, )
  4. update.php(168): update_daemon_common()

tt-rss version (including git commit id):
17.12 (not sure if I did correct, but I get bcdbfa7c675832704095fd65157bcc421becbf95)

Platform (i.e. Linux distro, PHP, PostgreSQL, etc) versions:
Debian 9, PHP7, MySQL

best regards, Andyt

looks like the problem is that your label contains a slash which is not getting properly escaped and breaks preg_match:

preg_match(/\bFilm / Serie\b/i

i guess i (wrongly) assumed that preg_quote() would take care of it.

e: https://git.tt-rss.org/fox/tt-rss/commit/7e6bb21ff59167c75602b71157d679f23306c572

Hello fox,

Thank you for your answer. That means the problem isn’t the update process itself. I will remove the slash and wait for next update.

the fix is there already, linked above

Thank you for your fast help.