Describe the problem you’re having:
I’m getting some SQLSTATE
errors and warnings from the updater and I’m wondering if I should look into them.
Mainly it’s these two:
php[3799900]: [tt-rss] E_ERROR (1) (classes/article.php:466) Uncaught PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction in /nix/store/q61ybb6id0k5c4cgs5cw9hpxcfwikp1z-ttrss-combined/classes/article.php:466
php[3799900]: Stack trace:
php[3799900]: #0 /nix/store/q61ybb6id0k5c4cgs5cw9hpxcfwikp1z-ttrss-combined/classes/article.php(466): PDO->query('DELETE FROM ttr...')
php[3799900]: #1 /nix/store/q61ybb6id0k5c4cgs5cw9hpxcfwikp1z-ttrss-combined/classes/rssutils.php(1605): Article::_purge_orphans()
php[3799900]: #2 /nix/store/q61ybb6id0k5c4cgs5cw9hpxcfwikp1z-ttrss-combined/update.php(256): RSSUtils::housekeeping_common()
php[3799900]: #3 {main}
php[3799900]: thrown
and
php[3800473]: [tt-rss] E_USER_WARNING (512) (/nix/store/q61ybb6id0k5c4cgs5cw9hpxcfwikp1z-ttrss-combined/vendor/j4mie/idiorm/idiorm.php:505) SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
Include steps to reproduce the problem:
Run updater and wait. This only started happening after we put ProxySQL in front of the MariaDB. This might be related to either increased latency or ProxySQL, but it might also be a problem in TinyTinyRSS or idiorm.
tt-rss version (including git commit id):
73d14338abde1925dc11fce013a939d3704122e7
Platform (i.e. Linux distro, PHP, PostgreSQL, etc) versions:
NixOS 21.05, PHP 8.0.8, MariaDB 10.5.10 behind ProxySQL 2.2.0
Please provide any additional information below:
I know my setup is very unsupported and I’m not really asking you to fix it for me, I know I wouldn’t if I were you.
I’d basically just appreciate your opinion if these look problematic to you, since you know the code base and I’m not overly familiar with it.
E.g. my guess is that the error in classes/article.php:466
is probably harmless, because _purge_orphans
will just get called again and try to do it’s thing again and if it fails no real harm, except for some left-behind orphans, is done.
The warning comes from the ORM in what looks to be a very generic function, but maybe it’s fine since it’s just a warning?