Report forwarded
to debian-bugs-dist@lists.debian.org, mnalis-debianbug@voyager.hr, Sebastian Reichel <sre@debian.org>: Bug#1063507; Package tt-rss.
(Fri, 09 Feb 2024 02:45:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Matija Nalis <mnalis-debianbug@voyager.hr>:
New Bug report received and forwarded. Copy sent to mnalis-debianbug@voyager.hr, Sebastian Reichel <sre@debian.org>.
(Fri, 09 Feb 2024 02:45:04 GMT) (full text, mbox, link).
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: tt-rss: Upgrading to Bookworm results in old read articles to be refetched as unread
Date: Fri, 09 Feb 2024 03:41:27 +0100
Package: tt-rss
Version: 21~git20210204.b4cbc79+dfsg-1.2
Severity: normal
X-Debbugs-Cc: mnalis-debianbug@voyager.hr
Dear Maintainer,
There was happily working tt-rss instalation in Bullseye, however after
upgrading the Bookworm, the first time updating script run, it re-fetched
a lot of older articles and marked them as unread.
Trying to debug the issue, I've found that the GUID seems to have changed,
probably due to PHP 8.2 in Bookworm changed not to quote integers fetched
from database:
https://www.php.net/manual/en/migration81.incompatible.php#migration81.incompatible.pdo.mysql
and the old packaged version of tt-rss apparently not having support for it.
That resulted in duplicate rows (in otherwise UNIQUE field "guid"), e.g.:
MariaDB [ttrss]> select id, title, guid, updated, date_entered, date_updated from ttrss_entries where title like 'Could the Sun%';
+--------+---------------------------------------+----------------------------------------------------------------------------+---------------------+---------------------+---------------------+
| id | title | guid | updated | date_entered | date_updated |
+--------+---------------------------------------+----------------------------------------------------------------------------+---------------------+---------------------+---------------------+
| 528463 | Could the Sun be hiding a black hole? | {"ver":2,"uid":"3","hash":"SHA1:dcf27dd8206c88fc25db2439fbfdbcc1113d826e"} | 2024-01-21 15:01:08 | 2024-01-22 00:05:00 | 2024-02-05 00:09:14 |
| 534207 | Could the Sun be hiding a black hole? | {"ver":2,"uid":3,"hash":"SHA1:dcf27dd8206c88fc25db2439fbfdbcc1113d826e"} | 2024-01-21 15:01:08 | 2024-02-09 00:56:00 | 2024-02-09 00:56:08 |
+--------+---------------------------------------+----------------------------------------------------------------------------+---------------------+---------------------+---------------------+
That should not have happened, there should've been only first row existing, and
second row shouldn't have been created. The problem seems to be that "guid"
is not EXACTLY the same, before it said:
"uid":"3"
and now it says
"uid":3
while it points to exactly the same data, the strings are not the same, so
it fails to detect it as a duplicate.
I've worked around the problem by stopping updating services, restoring the
last tt-rss database backup before Bookworm upgrade, and running following
mysql command on ttrss database:
UPDATE ttrss_entries SET guid = REGEXP_REPLACE(guid, '"uid":"([0-9]+)"', '"uid":\\1');
that converted all old entries (which used quoted-integers) to a new format
(which does not quote integers), thus allowing subsequent tt-rss feed updates
not to create duplicates as even old entries are using new format.
Perhaps newer upstream version of tt-rss handles that as well as it does
other similar problems with string/integer (e.g. as it does in #1054608)
-- System Information:
Debian Release: 12.4
APT prefers stable-security
APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-17-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled
Versions of packages tt-rss depends on:
ii dbconfig-common 2.0.24
ii dbconfig-mysql 2.0.24
ii debconf [debconf-2.0] 1.5.82
ii fonts-material-design-icons-iconfont 6.7.0+dfsg-1
ii init-system-helpers 1.65.2
ii libapache2-mod-php8.2 [php-json] 8.2.7-1~deb12u1
ii libjs-dojo-core 1.17.2+dfsg1-2.1
ii libjs-dojo-dijit 1.17.2+dfsg1-2.1
ii libjs-scriptaculous 1.9.0-3
ii lsb-base 11.6
ii php 2:8.2+93
pn php-cli <none>
ii php-intl 2:8.2+93
ii php-mbstring 2:8.2+93
ii php-mysql 2:8.2+93
ii php-php-gettext 1.0.12-5
ii php-psr-log 1.1.4-2
ii php-xml 2:8.2+93
ii php8.2 [php] 8.2.7-1~deb12u1
ii php8.2-cli [php-json] 8.2.7-1~deb12u1
ii php8.2-intl [php-intl] 8.2.7-1~deb12u1
ii php8.2-mbstring [php-mbstring] 8.2.7-1~deb12u1
ii php8.2-phpdbg [php-json] 8.2.7-1~deb12u1
ii php8.2-xml [php-xml] 8.2.7-1~deb12u1
ii phpqrcode 1.1.4-3.1
ii sysvinit-utils [lsb-base] 3.06-4
Versions of packages tt-rss recommends:
ii apache2 [httpd] 2.4.57-2
ii ca-certificates 20230311
ii php-curl 2:8.2+93
ii php-gd 2:8.2+93
pn php-mcrypt <none>
ii php8.2-curl [php-curl] 8.2.7-1~deb12u1
ii php8.2-gd [php-gd] 8.2.7-1~deb12u1
Versions of packages tt-rss suggests:
pn php-apc <none>
pn sphinxsearch <none>
-- Configuration Files:
/etc/default/tt-rss changed [not included]
/etc/logrotate.d/tt-rss changed [not included]
/etc/tt-rss/apache.conf changed [not included]
/etc/tt-rss/config.php changed [not included]
-- debconf information excluded
-- debsums errors found:
debsums: changed file /usr/share/tt-rss/www/classes/feeds.php (from tt-rss package)
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.