Error 500, blank page on login, after most recent upgrade


#1

Describe the problem you’re having:
After my most recent upgrade I now get a blank page after logging in. The login page loads fine, after I enter a username/password (admin or my own account) I get a blank pager, error 500

If possible include steps to reproduce the problem:

  1. git pull
  2. Navigate to instance login page
  3. Try to login
  4. Error 500, blank page, blank page source

tt-rss version (including git commit id):
commit c9040c5c2e3960cd3668dd0cfe7621c5536ed37e
Merge: 9f7bd15 86810de
Author: fox cthulhoo@gmail.com
Date: Tue Jul 11 04:18:11 2017 +0000

Platform (i.e. Linux distro, PHP, PostgreSQL, etc) versions:
CentOS 6.8 64-bit
PHP 7.0.20
Apache 2.2.15-59
MariaDB 10.2.7-1

Please provide any additional information below:
Pre-upgrade everything was working fine with the above software package versions
I’ve removed the only additional plugin (fever-api) and additional theme (feedly) I’d installed, didn’t help
I manually ran the database upgrade via ‘php update.php’ which succeeded
I manually ran a feed update via ‘php update.php’ which completed with no errors
I blew away the cache directory and re-created it
I decrypted my feeds per the note in config.php (php update.php --decrypt-feeds)
I copied my old config.php and re-configured a brand new one from scratch
I’ve restarted Apache
I’ve tried with multiple browsers to login to tt-rss post upgrade, all give error 500 (some browsers I tested have Lastpass, some don’t)
There is nothing useful in my sites apache error log other than a missing favicon.ico warning
This is all I see in my apache access log after a login attempt:
"POST /public.php?return=%2F HTTP/1.1" 500 - "https://rss.mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"


#2

Blank white page HTTP 500 generally means there’s a PHP Fatal error. You’ll want to track down the PHP error.log for more insight.


#3

you can also try going back to previous commits until it starts working (git checkout etc)

without php error logs its hard to tell why this happens so I suggest you locate those


#4

I’ve enabled PHP logging and verified it’s working via other PHP pages

No PHP errors are being logged for my tt-rss install when I try to load it and login.

I’ll try reverting versions.


#5

Found the problem.

A very long time ago, to get around the login time-out, I made this change to my config.php

define('SESSION_COOKIE_LIFETIME', 86400*999999);

Seems this doesn’t work anymore and results in a Error 500, blank page after login.

Removing it fixed the issue. After some trial and error this is the new maximum allowed:

define('SESSION_COOKIE_LIFETIME', 86400*999);


#6

it’d be useful to see the exact error message


#7

All I have is what I’ve shared.

Guess browsers/servers/php don’t like cookies that expire in 2291

Doesn’t work

ttrss_sid_ssl	
value	"<RANDOM STUFF>"
expires	"2291-04-26T19:44:47.000Z"
path	"/"
secure	true

Works

Name	ttrss_sid_ssl
Value	"<RANDOM STUFF>"
Host	rss.mydomain.com
Path	/
Expires	Mon, 06 Apr 2020 19:47:49 GMT
Secure	Yes
HttpOnly	No

Related? https://stackoverflow.com/a/16627035

Odd though since my client os, client browser, server, apache and PHP are all 64-bit


#8

I get that you hate logging in, but is 999999 days really necessary? I’m surprised it ever worked.

Anyway, I hated logging in too so I just switched to certificate authentication and now I never need to.


#9

I think it was just a number I threw in there when I configured it.


#10

integer overflow is actually related to the database:

Query INSERT INTO ttrss_sessions (id, data, expire) VALUES ('xxx', '', '87899838429') failed: ERROR: value "87899838429" is out of range for type integer LINE 2: VALUES ('xxx', '', '87899838429'... ^

e: https://git.tt-rss.org/git/tt-rss/commit/b465c28ee038f93440ebb13ebfbbf529fd8149c7


#11

That doesn’t sound right. What if SESSION_COOKIE_LIFETIME is 4294967296 (0x100000000)?


#12

yeah i guess it would be better to use min(2147483647, …) here (signed int to be on the safe side)

e: this also needs to account for initial timestamp eghhh

https://git.tt-rss.org/git/tt-rss/commit/09628e1b1a71fb03933e7ff4d5eb9da7f83d5186