Closed Bug 254527 Opened 20 years ago Closed 19 years ago

TB09 crashes when using a symlink to a signature file [@ nsLocalFile::SetRelativeDescriptor]

Categories

(Thunderbird :: Message Compose Window, defect)

x86
Linux
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird1.0

People

(Reporter: joseparrella, Assigned: Bienvenu)

References

Details

(Keywords: crash, topcrash)

Crash Data

Attachments

(2 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040615 Firefox/0.9
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040615 Firefox/0.9

This was first experienced when opening a mailto:// link from Firefox 0.9 in
Gnome (Debian Sarge/Sid) and then reproduced later clicking New Mail in
Thunderbird 0.7.3. Compose mail opens and shows partially, then crashes. Quality
Feedback Agent opens up after crash. I imported my mail and settings (whole
profile) from Mozilla Mail, by making a symbolic link named "default.xwo" in
~/.thunderbird to my profile in ~/.mozilla (not moving the whole folder because
it's big), so I guess that's the deal.

Reproducible: Always
Steps to Reproduce:
1. Import your Mozilla 1.x profile manually into Thunderbird
2. Open a New Mail window

Actual Results:  
Mail crashed, Quality Feedback Agent opened up.

Expected Results:  
Window should have opened and let user introduce text.

Using default theme.
This is a plain text "cat prefs.js | grep mail" file from the prefs.js file
which is being used in that profile.
Attachment #155329 - Attachment mime type: application/octet-stream → text/plain
Jose Miguel: Could you provide TalkBack Quality Agent incident ID? To get the
Talkback ID's go to your Thunderbird directory and go to components/, there
start Talkback, it'll give you a list with the IDs. Thank's a lot.
Severity: major → critical
Keywords: crash
(In reply to comment #2)
> Jose Miguel: Could you provide TalkBack Quality Agent incident ID? To get the
> Talkback ID's go to your Thunderbird directory and go to components/, there
> start Talkback, it'll give you a list with the IDs. Thank's a lot.

It's: TB494519H

Greetings.
TB494519:
nsLocalFile::SetRelativeDescriptor()
nsPrefBranch::GetComplexValue()
NS_GetPersistentFile()
nsMsgIdentity::GetSignature()
nsMsgCompose::ProcessSignature()
nsMsgCompose::BuildBodyMessageAndSignature()
nsMsgCompose::InitEditor()
XPTC_InvokeByIndex()
XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode)()
XPC_WN_CallMethod()
js_Invoke()
js_Interpret()
js_Invoke()
nsXPCWrappedJSClass::CallMethod()
nsXPCWrappedJS::CallMethod()
PrepareAndDispatch()
nsCommandManager::CommandStatusChanged()
nsComposerCommandsUpdater::UpdateOneCommand()
nsComposerCommandsUpdater::NotifyDocumentCreated()
nsEditor::NotifyDocumentListeners(nsEditor::TDocumentListenerNotification)()
nsEditor::PostCreate()
nsEditingSession::SetupEditorOnWindow()
nsEditingSession::EndDocumentLoad()
nsEditingSession::OnStateChange()
nsDocLoaderImpl::FireOnStateChange()
nsDocLoaderImpl::doStopDocumentLoad()
nsDocLoaderImpl::DocLoaderIsEmpty()
nsDocLoaderImpl::OnStopRequest()
nsLoadGroup::RemoveRequest()
nsInputStreamChannel::OnStopRequest()
nsInputStreamPump::OnStateStop()
nsInputStreamPump::OnInputStreamReady()
nsInputStreamReadyEvent::EventHandler()
PL_HandleEvent()
PL_ProcessPendingEvents()
nsEventQueueImpl::ProcessPendingEvents()
event_processor_callback()
libglib-2.0.so.0 + 0x49f5f (0x404eef5f)
libglib-2.0.so.0 + 0x24a02 (0x404c9a02)
libglib-2.0.so.0 + 0x25af8 (0x404caaf8)
libglib-2.0.so.0 + 0x25e30 (0x404cae30)
libglib-2.0.so.0 + 0x26473 (0x404cb473)
libgtk-x11-2.0.so.0 + 0x117e83 (0x401bfe83)
nsAppShell::Run()
nsAppShellService::Run()
xre_main()
main()
libc.so.6 + 0x15dc6 (0x409eddc6)

there are over 70 crashes with this signature over M17 and Thunderbird aviary
branch:
http://talkback-public.mozilla.org/talkback/fastfind.jsp?search=1&searchby=stacksig&match=contains&searchfor=nsLocalFile%3A%3ASetRelativeDescriptor&vendor=All&product=All&platform=All&buildid=&sdate=&stime=00%3A00%3A00&edate=&etime=23%3A59%3A59
Summary: Mail (0.7.3) crashes when composing mail after importing profile manually from Mozilla Mail → TB073 crashes when composing mail after importing profile manually from Mozilla Mail [@ nsLocalFile::SetRelativeDescriptor() ]
(In reply to comment #4)
> TB494519:

Found something. Setting manually
"user_pref("mail.identity.id1.attach_signature", true);" to false in prefs.js in
the profile makes Thunderbird to work OK (by now). The signature which this
setting is making reference is local and exists (and worked with Mozilla Mail).
Guess it has something to do with Firebird parsing sloppy prefs.js from Mozilla
Mail?
Blocks: 262280
*** Bug 262280 has been marked as a duplicate of this bug. ***
Adding topcrash keyword and TB08 for tracking. This looks like a topcrasher for
Thunderbird 0.8.  Although users appear to be crash doing different tasks, the
stacks all look the same:
http://talkback-public.mozilla.org/talkback/fastfind.jsp?search=1&searchby=stacksig&match=contains&searchfor=nsLocalFile%3A%3ASetRelativeDescriptor&vendor=All&product=All&platform=All&buildid=&sdate=&stime=&edate=&etime=

Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: topcrash
Summary: TB073 crashes when composing mail after importing profile manually from Mozilla Mail [@ nsLocalFile::SetRelativeDescriptor() ] → TB08 crashes when composing mail after importing profile manually from Mozilla Mail [@ nsLocalFile::SetRelativeDescriptor]
Jose, can you post the value of your signature file preference in prefs.js?

I want to see how we were expressing your relative signature path in prefs.js. I
think that's why we crash.

The pref would look something like:

user_pref("mail.identity.id1.sig_file", "C:\\temp\\signature.txt");
Status: NEW → ASSIGNED
Target Milestone: --- → Thunderbird1.0
Summary: TB08 crashes when composing mail after importing profile manually from Mozilla Mail [@ nsLocalFile::SetRelativeDescriptor] → TB08 crashes when using a relative path to a signature file [@ nsLocalFile::SetRelativeDescriptor]
3rd time at adjusting the summary is a charm...hopefully.
Summary: TB08 crashes when using a relative path to a signature file [@ nsLocalFile::SetRelativeDescriptor] → TB08 crashes when using a symlink to a signature file [@ nsLocalFile::SetRelativeDescriptor]
*** Bug 268779 has been marked as a duplicate of this bug. ***
Adam, Jose, anyone who sees this crash can you post the fore mentioned signature
pref in your prefs.js file that cause this crash?

Thanks!
Updating summary with TB09 for tracking
Summary: TB08 crashes when using a symlink to a signature file [@ nsLocalFile::SetRelativeDescriptor] → TB09 crashes when using a symlink to a signature file [@ nsLocalFile::SetRelativeDescriptor]
Scott, isn't the line
user_pref("mail.identity.id1.sig_file", "/mnt/hdb1/documentos/jose-firmas");

in the pref.js file that Jose attached to this bug?
Flags: blocking-aviary1.0?
Flags: blocking-aviary1.0? → blocking-aviary1.0-
*** Bug 274701 has been marked as a duplicate of this bug. ***
Please have a look at the dupe, bug 274701. 
As far as I understood simply the (wrong?) path of the sig file made my TB
crash, David helped me to create a workaround (disabling the sig in seamonkey
and manually deleting the path information in the prefs.js, see patch to the
prefs.js).
*** Bug 275058 has been marked as a duplicate of this bug. ***
*** Bug 277894 has been marked as a duplicate of this bug. ***
*** Bug 282287 has been marked as a duplicate of this bug. ***
*** Bug 286067 has been marked as a duplicate of this bug. ***
Blocks: 286067
No longer blocks: 286067
*** Bug 286067 has been marked as a duplicate of this bug. ***
*** Bug 289464 has been marked as a duplicate of this bug. ***
*** Bug 295984 has been marked as a duplicate of this bug. ***
Attached patch proposed fixSplinter Review
proposed fix - there doesn't seem to be any contract that GetParent won't
return a null parent but an OK result, so I've added a check for that. The
windows code was returning NS_OK w/o even initializing *aParent, which I doubt
was the intent of that code.

I'm not sure what you want to do here, Darin (or if you want to be the person
to worry about this) - checking the return of GetParent instead of crashing
seems like the safest thing to do. At first glance, I don't think GetParent
should return a null parent and an NS_OK response, but maybe that is the
contract.
Assignee: mscott → bienvenu
cc'ing Darin given David's question in comment 23 :)
Comment on attachment 186869 [details] [diff] [review]
proposed fix

darn, I meant to ask Darin for a review...
Attachment #186869 - Flags: review?(darin)
Comment on attachment 186869 [details] [diff] [review]
proposed fix

r+sr=darin
Attachment #186869 - Flags: superreview+
Attachment #186869 - Flags: review?(darin)
Attachment #186869 - Flags: review+
by the way, please fix the indentation in nsLocalFileCommon.cpp to be consistent
with surrounding code.
Comment on attachment 186869 [details] [diff] [review]
proposed fix

I'll put in a four space indent in that file before checking in.
Attachment #186869 - Flags: approval-aviary1.1a2?
Attachment #186869 - Flags: approval-aviary1.1a2? → approval-aviary1.1a2+
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Crash Signature: [@ nsLocalFile::SetRelativeDescriptor]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: