Closed Bug 255453 Opened 20 years ago Closed 20 years ago

cannot seem to cleanly delete RSS feeds

Categories

(MailNews Core :: Feed Reader, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: bugzilla, Assigned: Bienvenu)

References

Details

(Keywords: fixed-aviary1.0)

Attachments

(2 files)

found using 2004081205-0.8 (linux fedora core 2). let me know if I should spin
off separate bugs for these cases. (couldn't find existing bugs.)

case a
------
1. make sure you've got an RSS account in tbird with at least a couple of RSS
feeds added, for example:

http://del.icio.us/rss
http://feedhouse.mozillazine.org/rss10.xml

2. in the folder pane (of the main tbird window), bring up the context menu for
one of the feeds, eg, del.icio.us, and select "Delete Folder" --then empty the
trash.

observe: the feed for del.icio.us is removed from the folder pane.

3. go into Account Settings and click Manage Subscriptions.

results: del.icio.us is still listed in the RSS Subscriptions dialog. should it
have been removed?

case b
------
1. same as case (a).

2. go into Account Settings and click Manage Subscriptions.

3. in the RSS Subscriptions dialog, select a feed like the Mozillazine Feedhouse
one and hit the Delete button.

observe: Mozillazine Feedhouse feed is removed from the RSS Subscriptions dialog.

4. click OK, OK to save and dismiss RSS Subscriptions and Account Settings,
respectively.

results: the Mozillazine Feedhouse feed is still listed in the folder pane.
even easier, if you just delete the folder from the folder pane, we
automatically unsubscribe you as well. Just an fYI for testing. You don't need
to go through the rss subscription dialog at all for unsubscribing. 

both of these cases work for me on Windows. Any weird errors in the JS console
when you try this?

For me, when i delete a feed from the subscription UI, the folder is moved to
trash and the feed is removed from the feeds data source. Subsequent attempts to
bring up the RSS feed dialog successfully fail to show the deleted feed).

I wonder if it's a linux only behavior...
I'll check the JS console in a bit, but another observation: if I quit and
restart tbird (after running both cases), Mozillazine Feedhouse remains listed
--but now there's this strange folder (under the RSS account) called "366b3701"
which appears to be empty.
nothing showed up in the JS console while I retested (a) or (b). however, if
repeated (a), deleting the feed directly from the folder pane with the following
modifications:

3. while in RSS Subscriptions, select the feed which is gone from the folder
pane but still present in this dialog, and hit Delete.

results: the feed is removed from the dialog, but the following appears in the
JS console:

Error: uncaught exception: [Exception... "Component returned failure code:
0x80004003 (NS_ERROR_INVALID_POINTER) [nsIMsgFolder.getMsgDatabase]"  nsresult:
"0x80004003 (NS_ERROR_INVALID_POINTER)"  location: "JS frame ::
chrome://messenger-newsblog/content/utils.js :: updateFolderFeedUrl :: line 93"
 data: no]
I tried to delete the weird "366b3701" folder and got the following JS console
error:

Error: [Exception... "Component returned failure code: 0x80004003
(NS_ERROR_INVALID_POINTER) [nsIMsgDatabase.dBFolderInfo]"  nsresult: "0x80004003
(NS_ERROR_INVALID_POINTER)"  location: "JS frame ::
file:///home/sairuh/thunderbird-bits/2004081205-0.8/thunderbird/components/newsblog.js
:: anonymous :: line 115"  data: no]
Source File:
file:///home/sairuh/thunderbird-bits/2004081205-0.8/thunderbird/components/newsblog.js
Line: 115

however, after I emptied the trash, quit and restarted, that weird folder is gone.
using Mac tbird bits (2004081303-0.8, OS X 10.3.5), I can reproduce case (a) (in
comment 0) as well as get the error if I continue the steps in comment 4. I also
get the odd "366b3701" folder after quitting and restarting tbird (after doing
(a) and comment 4).
OS: Linux → All
Hardware: PC → All
I'm still struggling to reproduce this. Sairuh, is there any chance that you had
the forumzilla extension installed for Thunderbird before testing the
Thunderbird builtin RSS reader? maybe the two are conflicting.

Here's what I'm doing to try to reproduce this. tell me if you see something I'm
doing wrong.

1) Create a new profile
2) Start up thunderbird, create an RSS account via the account manager.
3) go through the subscriptions dialog and add a subscription for:
http://weblogs.mozillazine.org/ben/index.rdf
4) Hit okay, note that a folder gets created called Inside Firefox and it now
has a number of articles in it.
5) Dismiss the subscriptions dialog. 
6) Bring it back up. Select Inside Firefox and click the delete button
7) Note that the inside firefox folder is moved to my trash folder for my RSS
account.
8) Note that the item has been removed from the RSS subscriptions dialog.
9) Close the dialog and bring it back up again. Note that it is still not in the
list.
10) Empty my trash
11) Restart the app and note that there is no folder called Inside Firefox in
the folder pane and the subscriptions dialog doesn't show it either.

The only time I could get the folder to still show up in the UI but NOT in the
subscriptions dialog is if I re-subscribe to the same folder again, then delete
it. In this case I get an error dialog informing me that a folder with this name
already exists in my trash folder. The foler is obviously then left alone in the
folder pane but we still unsubscribe from the feed so it is removed from the UI.

I'll keep trying some different combinations. 
(In reply to comment #7)
> I'm still struggling to reproduce this. Sairuh, is there any chance that you had
> the forumzilla extension installed for Thunderbird before testing the
> Thunderbird builtin RSS reader? maybe the two are conflicting.

I don't have any extensions installed; just using what I got with the Linux (and
Mac) non-installer blobs with new profiles.

> Here's what I'm doing to try to reproduce this. tell me if you see something I'm
> doing wrong.

I'll check this out again later today!
putting in the 0.8 bucket for now pending more analysis.
Status: NEW → ASSIGNED
Target Milestone: --- → Thunderbird0.8
okay, I followed your steps in comment 7 exactly, and like you the feed was
removed in that scenario.

however, I couldn't get the feed to be completely removed in the following
recipe. (tested with 2004081603-0.8 gtk2 build, linux fedora core 2).

1. create new profile.

2. startup thunderbird, create an RSS account via acct mgr.

3. bring up subscriptions dialog (I select it from the context menu for the RSS
acct in the folder pane, fwiw) and add a subscription for
http://weblogs.mozillazine.org/ben/index.rdf

4. hit OK, note that Inside Firefox is created as a folder for the RSS acct and
that it contains several articles.

5. hit OK to dismiss subscriptions dlg.

6. go to the folder pane, select Inside Firefox, bring up the context menu and
select Delete Folder. note that it's moved to the Trash folder for the RSS account.

7. bring up the subscriptions dlg again. note that the Inside Firefox is still
listed there. dismiss the dialog.

8. empty the trash. bring up the subscriptions dialog yet again: Inside Firefox
is still listed. dismiss it.

9. quit and restart thunderbird. note that Inside Firefox is (as expected) no
longer in the folder pane.

10. open the subscriptions dialog. note that (strangely?) Inside Firefox is
still listed there.

Scott, how does this particular recipe go for you?
On Windows, at step 7, I differ from the Linux and OS X behavior. When I bring
up the subscriptions dialog, it is empty using this new recipe.

I'll try on the OS X machine in the office. 
I see this on Mac OS X. sorry for being so lazy and only trying this out on Windows.

For some reason the feed.rdf file for the RSS account isn't getting updated with
delete information on the Mac but it is on Windows. More details to come.

Thanks for sticking with me sairuh.
*** Bug 256147 has been marked as a duplicate of this bug. ***
This situatation happens only on Mac OS X and Linux because of the way the
operating system is time stamping the mail folder and the summary file. On
windows they get the same time stamp. On linux and Mac OS X the time stamps are
different by an ever so small margin. 

As a result when a folder gets moved, renamed or deleted, the time stamps differ
so we end up throwing away the summary file and re building it. As a result we
forget the feed url associated with the folder. This causes us to unsubscribe
from  the feed when the folder gets deleted because we don't know that the
folder has a feed url associated with it.
you could always set the summary valid in the place where you know a folder has
been moved under the trash in an rss account; then the js code could get the db...

around here:
http://lxr.mozilla.org/seamonkey/source/mailnews/local/src/nsRssIncomingServer.cpp#298

if we're going to unsubscribe,
try to get the db for the folder, if that fails, set the db valid:

    nsCOMPtr <nsIMsgDatabase> msgDB;
    nsresult folderOpen = NS_OK;
    nsCOMPtr<nsIMsgDBService> msgDBService =
do_GetService(NS_MSGDB_SERVICE_CONTRACTID, &rv);
    if (msgDBService)
    {
      folderOpen = msgDBService->OpenFolderDB(folder, PR_TRUE, PR_TRUE,
getter_AddRefs(msgDB));
      if(NS_FAILED(folderOpen) &&
        folderOpen == NS_MSG_ERROR_FOLDER_SUMMARY_OUT_OF_DATE)
          msgDB->SetSummaryValid(PR_TRUE);
     }
Unfortunately it looks like the summary file has already been opened before this
point in time. By the time this code gets called I see that the .msf file is
already 0 bytes. This was seen by just deleting the folder from the folder pane
context menu......Someone must be opening the summary file after the folder is
moved to the trash but before my onItemAdded observer gets called...
(In reply to comment #7)
> 7) Note that the inside firefox folder is moved to my trash folder for my RSS
> account.

Following your instructions, this is where it differs for me for Windows XP SP1.
 The Inside Firefox folder does not move to the trash and must be manually deleted.

Case a) is ok tho'.
*** Bug 257563 has been marked as a duplicate of this bug. ***
version 0.7+ (20040830)

On the Mac, I am unable to delete this feed at all:
http://rss.news.yahoo.com/rss/oped.  Despite repeated attempts to try to delete
it, it never gets moved to the trash folder.

I have no problem deleting any other Yahoo RSS feeds. This is the only
troublesome one.
*** Bug 257700 has been marked as a duplicate of this bug. ***
I'm breaking the case Marcia cited in
http://bugzilla.mozilla.org/show_bug.cgi?id=255453#c19

into a new bug. That's not an RSS problem. The name of the feed has forward
slashes and when we move it to the trash folder we end up directory looking
slashes in the file name which gets us messed up.

This is now Bug #257986 
Target Milestone: Thunderbird0.8 → Thunderbird0.9
Attached patch proposed fixSplinter Review
OK, this is pretty ugly, but it should work - if the source folder db is valid,
then open the dest folder db (using a call that will return the db even though
it's technically invalid) and mark it as valid.
Assignee: mscott → bienvenu
Attachment #163513 - Flags: superreview?(mscott)
Attachment #163513 - Flags: superreview?(mscott) → superreview+
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Keywords: fixed-aviary1.0
Resolution: --- → FIXED
Verified with windows thunderbird branch build 2004-11-03-13-0.9
Status: RESOLVED → VERIFIED
Component: RSS → Feed Reader
Product: Thunderbird → MailNews Core
QA Contact: rss
Target Milestone: Thunderbird0.9 → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: