Stories not staying marked read

Marking the entire feed as read, either by hitting the checkmark or using Shift + A temporarily marks feeds as read, only for them to appear as read again. This seems be a completely random thing, as I can never predict what feeds it will happen to.

I’m currently using the latest Chrome Stable on Windows 8.1.

Just to be clear, I’ve added a screenshot to explain a little further. As you know, once you’ve hit the checkmark, the site concerned will flash and remain highlighted as seen in the screenshot. Quite often, the site will flash again as the number of sites that have become unread again appear.

1 Like

Is it a specific story or every story? When a story becomes unread again, and then you read it, does it ever become unread again?

Samuel, I’m in the same boat. You fixed it last year, but it’s acting this way again lately.

It happened to me 15 minutes ago with the Portable Apps feed I’ve got (took 6 tries to get it to mark them as read). I don’t know if you can, but can you specifically look at logs for my user?

Coincidentally, I’m running Chrome too.

Update:

Just now. Clicked “Mark All Read” on my MacRumors feed. The unread count on the feed in my list on the left immediately went away and the feed unbolded, then within a second it went back to bold and put the unread count back to 1. When I clicked on the feed again, the first story, the only one unread before, is unread again.

Screenshot after I hit the checkmark:

Screenshot after I clicked on the feed again:

Is it a specific story or every story? When a story becomes unread again, and then you read it, does it ever become unread again?

Never a specific story. Yes, quite often I have to hit the checkmark two or three times before they stay read.

I need to learn the pattern here. Richard, does it always happen that way? You click mark read, it immediately bounces back with a single unread, the newest one?

No. It’s any that are unread on the feed.

With the Portable Apps feed for example, it was five stories.

FYI, it happened again to me just now on my Playstation Blog feed. One story.

Please describe exactly what’s happening. You are on the web, you click on a feed, hit the mark read button without reading any stories, then the second you hit mark as read, the feed goes from 0 unreads to 1, you click on the feed again and see the previously read story as unread.

Essentially, I need to know what requests you are making to see if they are somehow timing out or not firing. Marking as read is an optimistic request, which means it assumes it’ll work.

If you can find a repeatable pattern, then I can put you on a special server and watch the requests happen in real time. But please be clear on what exactly you are doing. Because this happens rarely and only for a couple users, I can’t figure out what’s going on.

I just audited the code for this issue and everything should be working fine. I see no race conditions or ways to change what’s happening.

Also, please submit a screenshot of your extensions. I worry that it’s one of your browser extensions, as they have caused headaches for ages.

Please describe exactly what’s happening. You are on the web, you click on a feed, hit the mark read button without reading any stories, then the second you hit mark as read, the feed goes from 0 unreads to 1, you click on the feed again and see the previously read story as unread.

This is exactly what happens to me, except it happens with one or more feeds.

Also, please submit a screenshot of your extensions. I worry that it’s one of your browser extensions, as they have caused headaches for ages.

My extensions would not fit into a screenshot, so I made a list of them:

  • Google Calendar (by Google) 1.5.3
  • Google Docs 0.7
  • Google Mail Checker 4.4.0
  • imgur Extension by Metronomik 2.0.13
  • LastPass: Free Password Manager 3.1.85
  • Peerio 1.0.2
  • Pinboard Tools 1.0.0
  • Remote Torrent Adder 1.2.4
  • RSS Subscription Extension (by Google) 2.2.4
  • Search by Image (by Google) 1.5.1
  • Send from Gmail (by Google) 1.16
  • μBlock 0.8.5.3

Try disabling extensions for a day and see if it still happens. You have to understand that I don’t see this issue with most other users. Also, if other users who see this issue could cross-reference their extensions with the list above and tell me what extensions you share, that would be most helpful.

Try disabling extensions for a day and see if it still happens.

I’ll give it a shot.

I’ll have to look to build a better list, but I can tell by looking that I’ve got LastPass and the RSS Subscription Extension in common.

And if that doesn’t work, try a different browser for a day and see if it still happens. Gotta narrow it down, as it looks like the mark read request is failing. If we can figure out that this is happening, I may ask bot hot you to use a debug server and watch your requests to ensure that what you expect to happen is happening.

It just did it to me on Firefox too FYI. The two extensions I have installed both between Firefox and Chrome that can modify data on all sites would be ABP and Lastpass FYI.

Update 12:35pm, just happened again on Firefox.

Ok, Richard. I want you to go to debug.newsblur.com and use that until it happens again. The *second* it happens again, stop using debug and go back to www so I can investigate. I’ve got full logging turned on. And if anybody else sees this, please do not use debug, as it will make my job harder to diagnose this bug.

I just had it happen on IE11, no add-ons.

Edit: to be more precise, I had to click the mark all as read button (there was one unread feed) three times before it would stay read.

Since it’s happened on Firefox and Chrome, do you want me to use normally or with extensions disabled?

@Samuel, it just happened on the debug site. I immediately closed the browser. This was still me on Firefox with all site modifying extensions disabled.

Bingo, found the bug. Haven’t figured out a fix, but I have no doubt that this is the bug. It’s a race condition between marking a feed as read and it continuing to load stories. I bet that every time you marked a feed as read, it was still loading in stories.

The bug is that if you mark it as read at precisely the same moment that another page of stories is loading, then the load_page call will overwrite the mark_read_date set by the mark_feed_read call. It’s super rare because it shouldn’t happen. 

There’s a couple fixes. One is to make the mark_feed_read call atomic, which will effectively slow down marking_feed_read calls and possibly lead to deadlocks. If I were running a bank, this would be the answer.

Another idea is client-side: only load new feed pages after the mark_feed_read call returns. This can also lead to a deadlock, but is a safer bet.

Best idea is to not allow the load_page page to overwrite the mark_read_date value in the database, but that’s easier said than done. I use an ORM, which is an abstraction on top of the database. Even though all I’m doing is rewriting the number_of_feed_loads number (which you can see in the new Organizer when you sort by Use), the django ORM forces every value to be rewritten, including the mark_read_date, which was read BEFORE the mark_feed_read call has finished writing. 

I’m going to marinate on this one for a bit.

Oh, and if you want to see this in action? Load a feed, mark some stories as unread (I use j + u to quickly do this), then reload it (use ‘r’), and while it’s loading additional pages, which takes a few seconds, hit shift+a to mark it as read. 9/10 times it’ll work perfectly, but sometimes the timing is right and you’ll see the unread count bounce back. Try it! Don’t worry about overloading the servers.

2 Likes

I wish I would have seen this thread earlier. I was experiencing this behavior. The race condition fits with what I was seeing. I could tell it was happening with feeds that contained lots of older read articles. I simply just started filtering my feeds to unread only. That solved all my problems.

Not a fix specifically but I’ve not found a way to pair down or manage how far back the feed keeps history. It would be nice to have that as an option per feed. Some of my feeds are tech blogs and I can’t tell you how many times I’ve forgotten to bookmark something and the search has been a lifesaver. Yet I also have some Craigslist feeds and there is no reason to keep those around for more then a couple days or purge them after marking read.