As requested I’ve tried updating my tt-rss install to the pdo-experimental branch. I did the schema updates and then did a log in with a user account just fine.
I’ve seen the error “Could not update headlines (invalid object received - see error console for details)” three times now. I think it is related to right clicking on a feed name and doing “Mark as read”. The feed contents panel clears and is then shortly after replaced by the error message.
versions
tt-rss git pdo-experimental (83a052f1f), ubuntu 16.04, mysql, Apache 2.4, PHP 7.0.22-0ubuntu0.16.04.1
looking at plugins I have auth_internal and note enabled.
The web server error log contains
[Sun Dec 10 17:28:37.843707 2017] [:error] [pid 5000] [client 192.168.1.118:49799] PHP Fatal error: Uncaught PDOException: There is no active transaction in /var/www/tracks.oldelvet.org.uk/tt-rss/classes/rssutils.php:1159\nStack trace:\n#0 /var/www/tracks.oldelvet.org.uk/tt-rss/classes/rssutils.php(1159): PDO->commit()\n#1 /var/www/tracks.oldelvet.org.uk/tt-rss/classes/feeds.php(205): RSSUtils::update_rss_feed(121, true)\n#2 /var/www/tracks.oldelvet.org.uk/tt-rss/classes/feeds.php(904): Feeds->format_headlines_list(121, 'ForceUpdate', 'adaptive', 30, false, 0, NULL, false, true, NULL, false)\n#3 /var/www/tracks.oldelvet.org.uk/tt-rss/backend.php(123): Feeds->view()\n#4 {main}\n thrown in /var/www/tracks.oldelvet.org.uk/tt-rss/classes/rssutils.php on line 1159
and the appropriate log from the browser error console (although I’m guessing the webserver side of things is most interesting).
PluginHost::run 4
tt-rss:534:79
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
Stack trace:
handle_rpc_json@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:104:178
headlines_callback2@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:351:806
onComplete@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:207
respondToReadyState@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1827:8
onStateChange@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1756:7
EventHandlerNonNull*request@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1737:43
initialize@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1706:5
wrap/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:449:14
klass@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:82:7
viewfeed/_viewfeed_timeout<@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:67
setTimeout handler*viewfeed@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:45
onClick@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:47:443
__click@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:399204
_onClick@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:399322
postCreate/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:391391
dojo/on/</on.selector/</<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:53134
EventListener.handleEvent*_1fb@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:52250
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51776
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
_54d@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:151424
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51447
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
dojo/on/</on.selector/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:53038
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51447
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
postCreate@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:391321
_19f@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:41978
postCreate@https://tracks.oldelvet.org.uk/tt-rss/js/FeedTree.js?1512927223781:225:4
create@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:143152
postscript@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:142292
_1b8/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:43906
updateFeedList@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:47:291
init_second_stage@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:69:30
backend_sanity_check_callback@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:248:24
onComplete@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:61:507
respondToReadyState@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1827:8
onStateChange@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1756:7
EventHandlerNonNull*request@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1737:43
initialize@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1706:5
wrap/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:449:14
klass@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:82:7
init/</<@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:61:317
dojo/ready/</dojo.addOnLoad/_185<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:37022
_181@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:36647
req.signal/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:3806
_9@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:328
req.signal@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:3771
_38@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13709
_81@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13758
_f6@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:15537
_10b@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:18464
EventListener.handleEvent*_104@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:17780
req.injectUrl@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:18479
_33@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:16472
_9@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:328
_7c/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7232
_38@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13659
_7c@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7217
_16@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7883
req@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:555
init@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:60:130
@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:563:4
createResponder/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7268:7
EventListener.handleEvent*observeStandardEvent@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7015:7
observe@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7007:7
@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:562:3
tt-rss:113:52
headlines_callback2 [offset=0] B:false I:false
tt-rss:351:833
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
Stack trace:
headlines_callback2@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:351:983
onComplete@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:207
respondToReadyState@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1827:8
onStateChange@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1756:7
EventHandlerNonNull*request@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1737:43
initialize@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1706:5
wrap/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:449:14
klass@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:82:7
viewfeed/_viewfeed_timeout<@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:67
setTimeout handler*viewfeed@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:305:45
onClick@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:47:443
__click@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:399204
_onClick@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:399322
postCreate/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:391391
dojo/on/</on.selector/</<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:53134
EventListener.handleEvent*_1fb@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:52250
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51776
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
_54d@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:151424
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51447
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
dojo/on/</on.selector/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:53038
dojo/on/</on.parse@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:51447
on@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:50969
postCreate@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:391321
_19f@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:41978
postCreate@https://tracks.oldelvet.org.uk/tt-rss/js/FeedTree.js?1512927223781:225:4
create@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:143152
postscript@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/tt-rss-layer.js?1493037672:8:142292
_1b8/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:43906
updateFeedList@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:47:291
init_second_stage@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:69:30
backend_sanity_check_callback@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:248:24
onComplete@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:61:507
respondToReadyState@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1827:8
onStateChange@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1756:7
EventHandlerNonNull*request@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1737:43
initialize@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:1706:5
wrap/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:449:14
klass@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:82:7
init/</<@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:61:317
dojo/ready/</dojo.addOnLoad/_185<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:37022
_181@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:36647
req.signal/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:3806
_9@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:328
req.signal@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:3771
_38@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13709
_81@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13758
_f6@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:15537
_10b@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:18464
EventListener.handleEvent*_104@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:17780
req.injectUrl@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:18479
_33@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:16472
_9@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:328
_7c/<@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7232
_38@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:13659
_7c@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7217
_16@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:7883
req@https://tracks.oldelvet.org.uk/tt-rss/lib/dojo/dojo.js?1493037671:8:555
init@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:60:130
@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:563:4
createResponder/<@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7268:7
EventListener.handleEvent*observeStandardEvent@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7015:7
observe@https://tracks.oldelvet.org.uk/tt-rss/lib/prototype.js?1493037672:7007:7
@https://tracks.oldelvet.org.uk/tt-rss/#f=196&c=0:562:3
tt-rss:351:1028
Invalid object received:
tt-rss:368:26
PluginHost::run 5
I think I’ve done all the database updates. I haven’t tried a fresh browser profile yet but given there is a PDO error I’m suspecting I either have something missing in my Apache/PHP installation or there is something amiss in the new PDO code.