ViennaRSS / vienna-rss

Vienna is a free and open-source RSS/Atom newsreader for macOS.
https://www.vienna-rss.com
Apache License 2.0
1.84k stars 227 forks source link

Turning off "Check for new articles on startup" means no checks for new articles ever #1736

Open k-h opened 8 months ago

k-h commented 8 months ago

Describe the bug If I set the preferences to turn off "Check for new articles on startup" and "Check for new articles every 6 hours" no automatic checks for new articles ever happen.

To Reproduce Always happens.

Please complete the following information:

Eitot commented 8 months ago

Can you try lowering the refresh frequency to see if the automatic refresh works at all?

Do you check manually as well? Doing so will reset the timer.

k-h commented 8 months ago

I tried lowering the refresh frequency to 3 hours. No change. I have subs that have not been updated since I turned off "Check for new articles at start up" eight days ago.

k-h commented 8 months ago

BTW, replying to the emails about this issue don't add to the thread.

k-h commented 8 months ago

I ran "Refresh All Subscriptions" and it worked fine but then still no automatic refreshes once every 6 hours.

Eitot commented 8 months ago

Can you try this: sudo log config --subsystem "--" --category DispatchTimer --mode level:debug,persist:debug

By default, debug messages are only stored briefly. This command will ensure that debug messages are kept for this particular "subsystem" and "category". "DispatchTimer" is the component that is responsible for scheduling refreshes.

You can view log messages with this: log show --debug --predicate "process == 'Vienna' && category == 'DispatchTimer'"

I encourage you to change the fetch interval to 5-15 min just to produce some log entries. After a few hours, use the above command to check log entries and post them here.

You can reset the first command with this: sudo log config --reset --subsystem "--" --category DispatchTimer

k-h commented 8 months ago

Yeah, I did that. Set Vienna for autorefresh every 5 minutes. Seemed to autorefresh OK. I'll change it to once every hour and see.

$ log show --debug --predicate "process == 'Vienna' && category == 'DispatchTimer'"|more
Timestamp                       Thread     Type        Activity             PID    TTL  
2024-02-04 11:08:16.467966+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Dispatch timer re-registered with interval of 300s, firing immediately: false
2024-02-04 11:13:16.450639+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:18:16.438629+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:23:16.429841+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:28:16.421335+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:33:16.462455+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:38:16.459792+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:43:16.450761+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:48:16.462615+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:53:16.456035+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 11:58:16.446995+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 12:03:16.462724+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
2024-02-04 12:08:16.456026+1100 0xf2213    Debug       0x0                  37121  0    Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer
k-h commented 8 months ago

DispatchTimer] Dispatch timer re-registered with interval of 3600s, firing immediately: false 2024-02-04 15:02:50.785047+1100 0xfd82a Debug 0x0 37863 0 Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer 2024-02-04 16:02:01.242300+1100 0xfd82a Debug 0x0 37863 0 Vienna: [--:DispatchTimer] Event handler submitted to dispatch timer

It appears to work at 1 hour

k-h commented 8 months ago

I think I see what the problem might be. Once every 6 hours seems to mean, at the exact time every 6 hours, say at exactly 6am, 12noon, 6pm and midnight. Since I often don't have my computer and therefore vienna on continuously I can easily miss those exact times. I was expecting, I think, that if I started Vienna, it should decide: "it has been more than 6 hours so I will refresh now", but it doesn't seem to do that.

Is that the case?

Eitot commented 8 months ago

I was expecting, I think, that if I started Vienna, it should decide: "it has been more than 6 hours so I will refresh now", but it doesn't seem to do that.

Is that the case?

That is how it should work. I specifically configured the timer to take into account the lapsed time after waking up from sleep. Do the logs indicate that the timer fired when you were not using your computer (i.e. "Event handler submitted to dispatch timer" means that the timer run the code that refreshes the feeds)?

k-h commented 8 months ago

I fired Vienna up twice and got this. No refresh since yesterday.

DispatchTimer] Dispatch timer re-registered with interval of 21600s, firing immediately: false
2024-02-07 11:10:21.889458+1100 0x1af393   Debug       0x0                  52020  0    Vienna: [--:DispatchTimer] Dispatch timer registered with interval of 10800s, firing immediately: false
2024-02-07 11:13:56.223045+1100 0x1af93f   Debug       0x0                  52066  0    Vienna: [--:DispatchTimer] Dispatch timer registered with interval of 10800s, firing immediately: false
--------------------------------------------------------------------------------------------------------------------
Log      - Default:          0, Info:                0, Debug:            19, Error:          0, Fault:          0
Activity - Create:           0, Transition:          0, Actions:           0
k-h commented 7 months ago

I have been trying all the different update every 1 to 6 hour options. Vienna only ever updates when I do "refresh all subscriptions" manually. It takes a day to check each one properly. I'll do the minute options next.

k-h commented 7 months ago

When I have Vienna set to update every hour, it doesn't update until I do a manual refresh all, then it seems to update every hour after the manual refresh.

k-h commented 6 months ago

Vienna seems to work OK, once I do a manual "Refresh All subscriptions". After that it does the refresh each hour, or 6 hours, but if I don't do that "refresh all subscriptions", it doesn't refresh automatically at all.