Closed Bug 317970 Opened 14 years ago Closed 14 years ago

hang when saving (auto-save) and sending and mail [@ nsMsgCopy::DoCopy]

Categories

(MailNews Core :: Composition, defect, critical)

x86
All
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: ajschult784, Assigned: neil)

References

Details

(Keywords: hang, regression)

Attachments

(3 files)

With SeaMonkey trunk CVS I was copmosing an email.  I have the "automatically save every x minutes" pref enabled and when it tried to do so, it hung.  After restarting, I pulled up the draft (saving seemed to be successful) and sent it and I got another hang.  I was using a debug build and got this both times:

CopyListener::OnStartCopy()
nsMsgComposeSendListener::OnStartCopy()
CopyListener: SUCCESSFUL ON THE COPY OPERATION!
nsMsgComposeSendListener: Success on the message copy operation!
[hang]

I'll attach a stacktrace from the first hang (during periodic save).
Attached file stacktrace from hang
it never exited frame #6 (nsMsgCopy::DoCopy)
I can confirm this using Windows-CREATURE-Build 2005112718. I don't have activated autosave, so MailNews hangs reproduceable when I try to send a Message. 

The Message was already sent, also copied to the "Sent" Folder, but I have to kill the process. 

Think this was an regression from Checkin for Bug 317937. CREATURE 2005112709 was still o.k.
Bonsai:
http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=SeaMonkeyAll&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2005-11-27+14%3A00&maxdate=2005-11-27+18%3A00&cvsroot=%2Fcvsroot 

this is definitely from bug 317937 (the hang is an infinite loop in the last chunk of the patch to nsMsgCopy.cpp
Assignee: nobody → neil.parkwaycc.co.uk
Blocks: 317937
Keywords: regression
OS: Linux → All
*** Bug 318124 has been marked as a duplicate of this bug. ***
I haven't seen the hang, but I do see a crash in nsMsgCopy::DoCopy because mCopyListener has been deleted if I do a send after saving as draft a couple times.
the crash is probably because it's a debug build, so deleted objects get set so as to make pointers invalid. 
This patch seems to fix the problem, but I don't know why...I wonder if nsRefPtr is confused by the multiple nsISupports inherited by nsMsgCopy?
How about adding "saving", "save" and "auto save" to the summary to prevent duplicates?

Hang when sending & saving e-mail and on "auto save" [@ nsMsgCopy::DoCopy] (save)
And what about adding too news ? I first saw this bug using newsgroups. And it makes my user life really hard.

I will also try the patch "something that works" in order to test it ;)
Summary: hang when sending mail [@ nsMsgCopy::DoCopy] → hang when saving (auto-save) and sending and mail [@ nsMsgCopy::DoCopy]
Attached patch possible fixSplinter Review
Neil, how about this? It works for imap and local msgs, and doesn't leak the copy listener...
Attachment #204479 - Flags: superreview?
Attachment #204479 - Flags: superreview?(mscott)
Attachment #204479 - Flags: superreview?
Attachment #204479 - Flags: review?(neil.parkwaycc.co.uk)
Howard, this might be the crash you were seeing.
(In reply to comment #11)
> Howard, this might be the crash you were seeing.
> 
Thanks, yes that's it. I just applied your second patch and recompiled, and the problem is gone.

To elaborate - I don't have auto-save, but when I hit Send on a message, Seamonkey would either hang or crash, apparently after successfully sending the message. The hang was interesting because I could still select folders in the folder view, and the thread pane would update accordingly, but the preview pane would remain unchanged. Also, the browser would stop working, you could scroll up and down on a page but clicking links didn't have any effect.
Comment on attachment 204479 [details] [diff] [review]
possible fix

>+    CopyListener *copyListener = new CopyListener();
This needs to be an nsRefPtr<CopyListener> copyListener as per the line deleted from nsMsgCopy.h, then you can remove the (misspelled) kungFuDeathGrip too. r=me with those fixed.
Attachment #204479 - Flags: review?(neil.parkwaycc.co.uk) → review+
*** Bug 318320 has been marked as a duplicate of this bug. ***
Attachment #204479 - Flags: superreview?(mscott) → superreview+
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
(In reply to comment #7)
>I wonder if nsRefPtr is confused by the multiple nsISupports inherited by nsMsgCopy?
FYI, the whole point of nsRefPtr is that it doesn't know about nsISupports.
*** Bug 324110 has been marked as a duplicate of this bug. ***
Assuming that 319818 and 324110 (under discussion) are due to the same or similar bug(s) then the following applies to both.

Worikng with bugs 319818 and 324110 mxxxm@volny.cz shows that this bug or bug(s) first showed itself to the public after TB release ver 1.5 (20051201).   Looking at the Bugs FIxed for each release that are similar to the bug(s) above, one finds that the only bug listed as fixed or changed in this area is 301649 - the "spin indefinitely" part is especially relevant.

"TB ver 1.5  Bug 301649 'Fixed 8/30/05'
-------------------------------------------------------
301649: Invalid local image filenames cause forwarded-inline messages to spin indefinitely on send.

Bug 301649 Build ID: 2005-07-21-06, Windows XP SP2 SeaMonkey trunk.

Overview: When an HTML-formatted message contains and invalid filename (i.e.
non-existing), and this email message is forwarded inline, on send SeaMonkey
Mail spins indefinitely, 'Attaching filename.gif...'

Steps to Reproduce:

1. Load and select/view the attached .eml file in SeaMonkey Mail.
2. Choose Message -> Forward As -> Inline from the top-level menu.
3. Click Send.

Expected Results:
As in Thunderbird 0.9, I'd expect "There was a problem including the file
filename.gif in the message.  Would you like to continue sending the message
without this file?"
(OK) (Cancel)

Actual Results:
We spin saying "Attaching filename.gif...""

"Verified FIXED in version 1.6a1 (20050917) of Thunderbird trunk and SeaMonkey
1.1a:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20050917
Mozilla/1.0"

The behavior of the system in the above bug is strikingly similar to that of the bugs under discussion.  The above bug either wasn't fixed,  wasn't completely fixed or had an underlying cause.  While investigating this problem I also discovered another Bug, 317970, with is also similar to the named bugs and which was thought to be a duplicate of Bug 324110.

"Bug 317970  Description:  [reply]  	 Opened: 2005-11-27 21:10 PDT
------------------------------------------------------------------------------------------------------
With SeaMonkey trunk CVS I was copmosing an email.  I have the "automatically
save every x minutes" pref enabled and when it tried to do so, it hung.  After
restarting, I pulled up the draft (saving seemed to be successful) and sent it
and I got another hang.  I was using a debug build and got this both times:

CopyListener::OnStartCopy()
nsMsgComposeSendListener::OnStartCopy()
CopyListener: SUCCESSFUL ON THE COPY OPERATION!
nsMsgComposeSendListener: Success on the message copy operation!
[hang]

------ Comment #16 From Adam Guthrie  2006-01-20 12:36 PDT  [reply] -------
*** Bug 324110 has been marked as a duplicate of this bug. ***"

I believe that there is a reasonable probability that bugs:
301649
317970
319818
324110
either are the same bug, manifestations of the same bug, or have a common root cause.  If they were solved earlier, they wouldn't be problems now.

It therefore seens reasonable that the four different bugs be combined into a single bug and their votes be likewise combined.

Respectfully submitted,
Charles Faulk, MD
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.