fossar / selfoss

multipurpose rss reader, live stream, mashup, aggregation web application
https://selfoss.aditu.de
GNU General Public License v3.0
2.36k stars 343 forks source link

"Can not refresh source Internal Server Error", and no ERROR message is logged. #1253

Closed foool closed 3 years ago

foool commented 3 years ago

Environments: Ubuntu Linux nginx+fastCGI php7.0 selfoss v2.18

Problem When I refresh any single source, the browser alerts "Can not refresh source: Internal Server Error" in a warning dialog; When I refresh all sources, the web page alerts "Can not refresh sources: Internal Server Error"

I have changed logger_level= to logger_level=DEBUG in config.ini and set(DEBUG, 1) in common.php, But nothing recorded.

data/logs/default.log do tell selfoss fetch the content successfully, such as:

[2021-03-24 11:28:52] selfoss.DEBUG: fetch content  
[2021-03-24 11:28:52] selfoss.DEBUG: minimum date: 2021-02-22 11:28:52  
[2021-03-24 11:28:52] selfoss.DEBUG: start item fetching  
[2021-03-24 11:28:52] selfoss.DEBUG: start insertion of new item "Santa Catarina by Daniel Metz"  
[2021-03-24 11:28:52] selfoss.DEBUG: item content sanitized  
[2021-03-24 11:28:53] selfoss.INFO: server Selfoss/2.18 (+https://selfoss.aditu.de)

Strangely, Empty set is what I get when select items' record from MySQL

mysql> select * from selfoss.items;
Empty set (0.00 sec)
; see https://selfoss.aditu.de for more information about
; the configuration parameters
[globals]
db_type=mysql
; db_file=data/sqlite/selfoss.db
db_host=localhost
db_database=selfoss
db_username=selfoss
db_password=hide
db_port=3306
db_prefix=
logger_destination=file:data/logs/default.log
logger_level=DEBUG
items_perpage=50
items_lifetime=30
base_url=
username=hide
password=hide
salt= hide
html_title=selfoss RSS
rss_title=selfoss RSS feed
rss_max_items=1000
rss_mark_as_read=0
homepage=newest
language=0
auto_mark_as_read=0
auto_collapse=0
auto_stream_more=1
anonymizer=
use_system_font=
share=gtfpde
wallabag=
wallabag_version=1
allow_public_update_access=1
unread_order=
load_images_on_mobile=0
auto_hide_read_on_mobile=0
env_prefix=selfoss_
camo_domain=
camo_key=
scroll_to_article_header=1
jtojnar commented 3 years ago

I would also check the response body in the browser developer tools and PHP or nginx logs. It might be that the PHP process is timing out or running out of memory.

foool commented 3 years ago

Thanks for your fast reply, all logs in /var/log give no hint.

In my Chrome browser GET http://myrsspage/8/update request returns the following results:

an error occured: HTTP 404 (GET /8/update)
[vendor/bcosca/fatfree-core/base.php:1660] Base->error()
[index.php:80] Base->run()

While GET http://myrsspage/update request seems to be correctly handled, since the response is finished

Console in Chrome development tools shows the following error when sending the request POST http://myrsspage/8/update

all.js?v=1520237650:formatted:5331 POST http://myrsspage/source/8/update 500 (Internal Server Error)
send @ all.js?v=1520237650:formatted:5331
ajax @ all.js?v=1520237650:formatted:5013
(anonymous) @ all.js?v=1520237650:formatted:11339
dispatch @ all.js?v=1520237650:formatted:2629
elemData.handle @ all.js?v=1520237650:formatted:2518
jtojnar commented 3 years ago

Yeah, only POST request is supported for that URL.

Try checking the response body in the Network panel of the devtools.

foool commented 3 years ago

reponse tab in Network panel gives This request has no response data available,

curl -X POST http://myrsspage/source/8/update also returns nothing

P.S. it seems the page automatically update its status. Before triggering this POST update issue, the page can update the status normally, but it meets the fllowing error after POST update issue occurs.

all.js?v=1520237650:1085 Uncaught TypeError: selfoss.ui.refreshEntryStatuses is not a function
    at Object.success (all.js?v=1520237650:1085)
    at fire (all.js?v=1520237650:187)
    at Object.fireWith [as resolveWith] (all.js?v=1520237650:193)
    at done (all.js?v=1520237650:538)
    at XMLHttpRequest.<anonymous> (all.js?v=1520237650:554)
foool commented 3 years ago

Hi, I change the storage engine from MySQL to sqlite3 and install the php-sqlite3 sudo apt install php-sqlite3 and everything works fine.

Should I close this issue now?

jtojnar commented 3 years ago

If you want to help debugging, you can also try upgrading to the latest build instead of 2.18. But if you are fine with using SQLite (might be slower in some instances), feel free to close it.

jtojnar commented 3 years ago

Also, did not notice you edited the comment. The selfoss.ui.refreshEntryStatuses issue has been fixed by https://github.com/fossar/selfoss/pull/1031.

foool commented 3 years ago

Thanks for your help to fix this issue. If anything new results came out, I will update in this issue. P.S. I will check #1031