Open Bug 1239896 Opened 8 years ago Updated 2 years ago

ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 ( in xpcshell-test that may generate error condition which is reported in a dialog window)

Categories

(Thunderbird :: Mail Window Front End, defect)

defect

Tracking

(Not tracked)

People

(Reporter: ishikawa, Unassigned)

References

Details

This assertion is by C-C TB during xpcshell-tests and
result in many failures.
(All platforms: linux, OSX and Windows.)

I have been my local patches, and I did not get this a few days ago (Jan 11) and so it seems a new regression caused by changes in M-C code (?)

One such instance re-created locally is as follows.

 LANG=C
ishikawa@ip030:/NREF-COMM-CENTRAL/objdir-tb3$ LC_ALL=C
ishikawa@ip030:/NREF-COMM-CENTRAL/objdir-tb3$ mach xpcshell-test mailnews/compose/test/unit/test_longLines.js 
make: Circular /NREF-COMM-CENTRAL/comm-central/mozilla/CLOBBER <- /NREF-COMM-CENTRAL/comm-central/mozilla/CLOBBER dependency dropped.
From _tests: Kept 38627 existing; Added/updated 0; Removed 0 files and 0 directories.
 0:00.36 LOG: MainThread INFO Running tests sequentially.
 0:00.36 SUITE_START: MainThread 1
 0:00.36 LOG: Thread-1 INFO profile dir is /tmp/firefox/xpcshellprofile
 0:00.36 TEST_START: Thread-1 mailnews/compose/test/unit/test_longLines.js
 0:01.52 TEST_END: Thread-1 FAIL, expected PASS
xpcshell return code: -11
 0:01.52 LOG: Thread-1 INFO >>>>>>>
 0:01.17 LOG: Thread-1 INFO (xpcshell/head.js) | test MAIN run_test pending (1)
 0:01.19 LOG: Thread-1 INFO (xpcshell/head.js) | test run_next_test 0 pending (2)
 0:01.20 LOG: Thread-1 INFO (xpcshell/head.js) | test MAIN run_test finished (2)
 0:01.20 LOG: Thread-1 INFO running event loop
 0:01.21 LOG: Thread-1 INFO mailnews/compose/test/unit/test_longLines.js | Starting testBodyWithLongLine
 0:01.21 LOG: Thread-1 INFO (xpcshell/head.js) | test testBodyWithLongLine pending (2)
 0:01.52 PROCESS_OUTPUT: Thread-1 (pid:23861) Full command: ['/NREF-COMM-CENTRAL/objdir-tb3/dist/bin/xpcshell', '-g', '/NREF-COMM-CENTRAL/objdir-tb3/dist/bin', '-a', '/NREF-COMM-CENTRAL/objdir-tb3/dist/bin', '-r', '/NREF-COMM-CENTRAL/objdir-tb3/dist/bin/components/httpd.manifest', '-m', '-s', '-e', 'const _HEAD_JS_PATH = "/NREF-COMM-CENTRAL/comm-central/mozilla/testing/xpcshell/head.js";', '-e', 'const _MOZINFO_JS_PATH = "/tmp/firefox/xpcshellprofile/mozinfo.json";', '-e', 'const _TESTING_MODULES_DIR = "/NREF-COMM-CENTRAL/objdir-tb3/_tests/modules/";', '-f', '/NREF-COMM-CENTRAL/comm-central/mozilla/testing/xpcshell/head.js', '-p', '/tmp/xpc-plugins-zudO3M', '-e', 'const _SERVER_ADDR = "localhost"', '-e', 'const _HEAD_FILES = ["/NREF-COMM-CENTRAL/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/head_compose.js"];', '-e', 'const _TAIL_FILES = ["/NREF-COMM-CENTRAL/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/tail_compose.js"];', '-e', 'const _JSDEBUGGER_PORT = 0;', '-e', 'const _TEST_FILE = ["/NREF-COMM-CENTRAL/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/test_longLines.js"];', '-e', 'const _TEST_NAME = "mailnews/compose/test/unit/test_longLines.js"', '-e', '_execute_test(); quit(0);']
(pid:23861) "[23861] WARNING: No valid default account found.: file /NREF-COMM-CENTRAL/comm-central/mailnews/base/src/nsMsgAccountManager.cpp, line 781"
 0:01.52 PROCESS_OUTPUT: Thread-1 (pid:23861) "[23861] WARNING: Just using the first one (FIXME).: file /NREF-COMM-CENTRAL/comm-central/mailnews/base/src/nsMsgAccountManager.cpp, line 783"
 0:01.52 PROCESS_OUTPUT: Thread-1 (pid:23861) "[23861] WARNING: NS_ENSURE_TRUE(parent) failed: file /NREF-COMM-CENTRAL/comm-central/mailnews/base/src/nsMsgProgress.cpp, line 54"
 0:01.52 PROCESS_OUTPUT: Thread-1 (pid:23861) "\x07[23861] ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file /NREF-COMM-CENTRAL/comm-central/mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740"
 0:02.42 PROCESS_OUTPUT: Thread-1 (pid:23861) "#01: nsWindowWatcher::OpenWindowInternal(nsIDOMWindow*, char const*, char const*, char const*, bool, bool, bool, nsITabParent*, nsIArray*, nsIDOMWindow**) (/NREF-COMM-CENTRAL/comm-central/mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp:739 (discriminator 1))"
 0:02.44 PROCESS_OUTPUT: Thread-1 (pid:23861) "#02: nsWindowWatcher::OpenWindow(nsIDOMWindow*, char const*, char const*, char const*, nsISupports*, nsIDOMWindow**) (/NREF-COMM-CENTRAL/comm-central/mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp:369)"
 0:02.45 PROCESS_OUTPUT: Thread-1 (pid:23861) "#03: NS_InvokeByIndex (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcinvoke_x86_64_unix.cpp:176)"
 0:02.49 PROCESS_OUTPUT: Thread-1 (pid:23861) "#04: CallMethodHelper::Invoke() (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:2098)"
 0:02.50 PROCESS_OUTPUT: Thread-1 (pid:23861) "#05: CallMethodHelper::Call() (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:1414)"
 0:02.52 PROCESS_OUTPUT: Thread-1 (pid:23861) "#06: XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNative.cpp:1381)"
 0:02.55 PROCESS_OUTPUT: Thread-1 (pid:23861) "#07: XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1115)"
 0:02.71 PROCESS_OUTPUT: Thread-1 (pid:23861) "#08: js::CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jscntxtinlines.h:235)"
 0:02.73 PROCESS_OUTPUT: Thread-1 (pid:23861) "#09: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:479)"
 0:02.76 PROCESS_OUTPUT: Thread-1 (pid:23861) "#10: Interpret(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:2802)"
 0:02.78 PROCESS_OUTPUT: Thread-1 (pid:23861) "#11: js::RunScript(JSContext*, js::RunState&) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:426)"
 0:02.79 PROCESS_OUTPUT: Thread-1 (pid:23861) "#12: js::Invoke(JSContext*, JS::CallArgs const&, js::MaybeConstruct) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:497)"
 0:02.81 PROCESS_OUTPUT: Thread-1 (pid:23861) "#13: js::Invoke(JSContext*, JS::Value const&, JS::Value const&, unsigned int, JS::Value const*, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/vm/Interpreter.cpp:531)"
 0:02.87 PROCESS_OUTPUT: Thread-1 (pid:23861) "#14: JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/src/jsapi.cpp:2845)"
 0:02.88 PROCESS_OUTPUT: Thread-1 (pid:23861) "#15: nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJSClass.cpp:1221)"
 0:02.90 PROCESS_OUTPUT: Thread-1 (pid:23861) "#16: nsXPCWrappedJS::CallMethod(unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) (/NREF-COMM-CENTRAL/comm-central/mozilla/js/xpconnect/src/XPCWrappedJS.cpp:603)"
 0:02.91 PROCESS_OUTPUT: Thread-1 (pid:23861) "#17: PrepareAndDispatch (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:122)"
 0:02.93 PROCESS_OUTPUT: Thread-1 (pid:23861) "#18: SharedStub (/NREF-COMM-CENTRAL/comm-central/mozilla/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:128 (discriminator 1))"
 0:02.93 PROCESS_OUTPUT: Thread-1 (pid:23861) "[23861] ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file /NREF-COMM-CENTRAL/comm-central/mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740"
 0:02.93 PROCESS_OUTPUT: Thread-1 (pid:23861) "Hit MOZ_CRASH() at /NREF-COMM-CENTRAL/comm-central/mozilla/memory/mozalloc/mozalloc_abort.cpp:33"
 0:02.93 LOG: Thread-1 INFO <<<<<<<
 0:02.93 LOG: MainThread INFO INFO | Result summary:
 0:02.93 LOG: MainThread INFO INFO | Passed: 0
 0:02.93 LOG: MainThread INFO INFO | Failed: 1
 0:02.93 LOG: MainThread INFO INFO | Todo: 0
 0:02.93 LOG: MainThread INFO INFO | Retried: 0
 0:02.93 SUITE_END: MainThread 
Summary
=======

Ran 1 tests
Expected results: 0
Unexpected results: 1 (FAIL: 1)

Unexpected Results
==================

FAIL mailnews/compose/test/unit/test_longLines.js
ishikawa@ip030:/NREF-COMM-CENTRAL/objdir-tb3$ 

Just before the assertion, we see
WARNING: NS_ENSURE_TRUE(parent) failed: file /NREF-COMM-CENTRAL/comm-central/mailnews/base/src/nsMsgProgress.cpp, line 54

http://mxr.mozilla.org/comm-central/source/mailnews/base/src/nsMsgProgress.cpp#54

52   NS_ENSURE_ARG_POINTER(dialogURL);
53   nsCOMPtr<nsPIDOMWindow> parent(do_QueryInterface(parentDOMWindow));
54   NS_ENSURE_ARG_POINTER(parent);
55   parent = parent->GetOuterWindow();
56   NS_ENSURE_ARG_POINTER(parent);

I recall reading something about no firefox code tries to open an innerwindow without parent or something like that.
Now I recall that it is in
Bug 1224840 - mozmill run: Assertion failure: IsOuterWindow(), at /builds/slave/tb-c-cen-lx-d-0000000000000000/build/mozilla/dom/base/nsGlobalWindow.cpp:7678

The code above is fixed in the bug 1224840.
That TB is hitting the assertion makes me suspicious that the error has something to do with the similar cause as in bug 1224840?

TIA
I am bisecting my patch set which caused the issue on tryserver and found that
a few I/O routine changes seem to cause the failure.
Maybe the change in I/O caused some error message to be shown in a dialog in a strange situation may be the cause of it. 
But this assertion did not trigger early this week. So there is something fishy going on.

TIA
See Also: → 1224840
OK, now I figured out the issue.
My local patch set had one logical error which caused a spurious error return value in some cases. 
This error return value seems to have been ignored at least until several days ago. (The error was generated in nsMsgComposeAndSend::MimeDoFCC() )

Now it seems that this error return value is not ignored and probably an error dialog will be shown during the operation of regular TB.

However, somehow during xpshell-tests run, the dialog or something is going to be generated without the so called window creator value. That is why the assertion kicked in.

My patch was modified so that the spurious incorrect error is not produced during normal operation.

*HOWEVER*, I am not entirely certain what happens *WHEN* a real I/O error occurs where my patch produced bogus error before due to incorrect logic. I was checking the Write() system call's operation and used an incorrect value to compare the number of written octets. That is why the error was produced. But suppose a real I/O occurs there, and only fewer octets were written due to I/O error.

Will TB hit the assertion?

Again, we did not hit this assertion early this week.
I think I know one cause of the problem.

I checked where |mWindowCreator| is set.
Using mxr, I got:

mWindowCreator

    mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp (View Hg log or Hg annotations)
        line 791 -- rv = mWindowCreator->CreateChromeWindow(parentChrome, chromeFlags,
        line 1187 -- mWindowCreator = aCreator;
        line 1194 -- *aResult = mWindowCreator; 
    mozilla/embedding/components/windowwatcher/nsWindowWatcher.h (View Hg log or Hg annotations)
        line 122 -- nsCOMPtr<nsIWindowCreator> mWindowCreator; 

Referenced in:

    mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp (View Hg log or Hg annotations)
        line 739 -- NS_ASSERTION(mWindowCreator,
        line 742 -- if (mWindowCreator) {
        line 753 -- do_QueryInterface(mWindowCreator)); 

There is only one place where |mWindowCreator| is set: line 1187 of mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp.


1184 NS_IMETHODIMP
1185 nsWindowWatcher::SetWindowCreator(nsIWindowCreator* aCreator)
1186 {
1187   mWindowCreator = aCreator;
1188   return NS_OK;
1189 }
1190 

So I traced the call of SetWindowCreator by inserting a debug printf in the function body.


I found that SetWindowCreator() is called when C-C TB is started normally from a console.
However, when TB binary is invoked in xpcshell-tests as in
mach xpcshell-test  --verbose  mailnews/compose/test/unit/test_longLines.js 

SEtWindowCreator() is not called at all (!).

This suggests to me that the assertion() is a little too restrictive.
Legitimate xpcshell test programs that want to exercise error generation and error handling may crash if it involves in dialog window generation, etc. Previously, my guess is that the processing would proceeded without creating the window, etc. (if (mWindowCreator) ...).

I wonder what the best course of action would be here.

TIA
Summary: ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 → ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 (may occur any xpcshell-test that may generate error condition which is reported in a dialog w
Summary: ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 (may occur any xpcshell-test that may generate error condition which is reported in a dialog w → ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 (may occur in xpcshell-test that may generate error condition which is reported in a dialog w
Summary: ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 (may occur in xpcshell-test that may generate error condition which is reported in a dialog w → ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file mozilla/embedding/components/windowwatcher/nsWindowWatcher.cpp, line 740 ( in xpcshell-test that may generate error condition which is reported in a dialog window)
Hmm, still, it's a mystery why this shows up later this week.
It was not there earlier.
Somehow I found a similar error as follows.
It was not solved back in 2009.

Bug 476189 - ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator' in xpcshell test 'test_cookies/unit/test_bug468700.js

Hmm...
See Also: → 476189, 478522, 679841, 616395
I am afraid that the errors may be intermittent. I changed the list of unit tests to see if strange errors that I observe on C-C tryserver build of Windows debug version may show different symptoms. Well, before the submission, I tried the local xpcshell-test and to my surprise, this error is back in a few tests (!).

In the meantime, I found a few others have been hit with the bug in the past.

In 2009
Bug 476189 - ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator' in xpcshell test 'test_cookies/unit/test_bug468700.js

In 2009
Bug 478522 - "ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file c:/moz/2/embedding/components/win dowwatcher/src/nsWindowWatcher.cpp, line 668" running xpcshell tests

In 2011:
Bug 679841 - window.showModalDialog fails in fennec mochitests

In 2010:
Bug 616395 - test_bug_382825.js | test failed (with xpcshell return code: -2147483645) followed several lines down by ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator' 

Bug 679841 comment 2 correctly surmized or repeat what I found in my own comment 3.
Quote from bug 679841 comment 2:
--- begin quote
It looks like the main problem here is that we don't initialize the window watcher component at startup by calling SetWindowCreator as it states we need to in the docs.
--- end quote

So what do we do?
It looks that the local patch set enforces stricter error check and
possibly an error dialog during xpcshell-tests.
I can probably bisect the patches to see what particular change triggers the problematic behavior.

TIA
Due to hiccups of C-C TB tryserver builds over the last few weeks, I could not perform meaningful bisection.

At last, yesterday, I could confirm that  the test crashes caused by
MOZ_CRASH are all related to the assertion caused by this bugzilla isssue. 
Following is the analysis using gdb.

Before delving into the analysis, I wonder what we should do.
With the current situation, any future xpcshell unit test that wants to excercise
error handling feature of C-C TB may crash the test if such error handling involves
error dialog prompt.
(Indeed, one local crash was caused by a patch that caused an I/O error by mistake, and I suspect it caused an error prompt to be shown. Subsequently that local bug was fixed.)

In my patch, I have added stricter checks of the return values of low-level routines to catch run-time errors early. So the program may encounter errors earlier than before.

This is a regression of a sort.
From what I recall, the local patches did not cause xpshell test to fail like this
before. I think the symptoms I report are observed since Jan 23 in my local logs.
An earlier log on Jan 11 does not encountered it.
So something changed. Maybe related to 
Bug 1241764 - Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer?

Anyway, the issue is from what I said in my previous post. 
===
Bug 679841 comment 2 correctly surmized or repeat what I found in my own comment 3.
Quote from bug 679841 comment 2:
--- begin quote
It looks like the main problem here is that we don't initialize the window watcher component at startup by calling SetWindowCreator as it states we need to in the docs.
--- end quote
===
Maybe the call was taken out by mistake from xpcshell test harness?

Anyway, here is the analysis of failures.

These are reproducible under linux on my local machine.
All calls are related to invocation from JS code, and thus
I used |jsstack| macro to print the JS stack and I think
the symptom is clear.
Modal prompter is being created and since there is no
toplevel window(?) existing, the error occurred.

========================================
Checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_attachment.js | xpcshell return code: 1
PROCESS-CRASH | mailnews/compose/test/unit/test_attachment.js | application crashed [@ mozalloc_abort(char const * const)]

mach xpcshell-test --debugger=gdb  --log-mach-verbose debug mailnews/compose/test/unit/test_attachment.js

Encounted SIGSEGV

(gdb) jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0xcfa620 (native @ 0xcf99e0)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Save Draft Error", text = "Unable to save your message as a draft.
Unable to open the file /tmp/xpc-profile-hNzXFn/nsmail.tmp.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 _do_main() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":208]
    this = [object BackstagePass @ 0x9c8350 (native @ 0x46cfb0)]
4 _execute_test() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":541]
    this = [object BackstagePass @ 0x9c8350 (native @ 0x46cfb0)]
5 <TOP LEVEL> ["-e":1]

(gdb)

========================================
checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_bug235432.js | xpcshell return code: 1
PROCESS-CRASH | mailnews/compose/test/unit/test_bug235432.js | application crashed [@ mozalloc_abort(char const * const)]

  /tmp/xpc-profile-XvAbuA:
  合計 104
  drwx------  6 ishikawa vboxsf  4096  2月  5 16:05 .
  drwxrwxrwt 25 root     root   12288  2月  5 16:05 ..
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:05 Mail
  drwx------  4 ishikawa vboxsf  4096  2月  5 16:05 cache2
  -rw-------  1 ishikawa vboxsf 65536  2月  5 16:05 cert8.db
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:05 crashes
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:05 key3.db
  -rw-r--r--  1 ishikawa vboxsf   684  2月  5 16:05 mozinfo.json
  -rw-------  1 ishikawa vboxsf     0  2月  5 16:05 nsemail.eml
  -rw-------  1 ishikawa vboxsf   329  2月  5 16:05 nsmail-1.tmp
  -rw-------  1 ishikawa vboxsf     0  2月  5 16:05 nsmail.tmp
  -rw-r--r--  1 ishikawa vboxsf  1709  2月  5 16:05 panacea.dat
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:05 secmod.db
  drwxr-xr-x  2 ishikawa vboxsf  4096  2月  5 16:05 startupCache

    msg=0x7fffffff3030 "[9582] ###!!! ASSERTION: attempted to open a new window with no WindowCreator: 'mWindowCreator', file /new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/embedding/components/windowwatcher/nsWindowWatc"...)
    at /new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/memory/mozalloc/mozalloc_abort.cpp:33
33	    MOZ_CRASH();
(gdb) jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0xd10d20 (native @ 0xd100b0)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Send Later Error", text = "Sorry, we were unable to save your message for sending later.
Unable to open the file /tmp/xpc-profile-XvAbuA/nsmail-1.tmp.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 _do_main() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":208]
    this = [object BackstagePass @ 0x9c7770 (native @ 0x46cfb0)]
4 _execute_test() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":541]
    this = [object BackstagePass @ 0x9c7770 (native @ 0x46cfb0)]
5 <TOP LEVEL> ["-e":1]

(gdb) 

========================================
checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_detectAttachmentCharset.js | xpcshell return code: 1

PROCESS-CRASH | mailnews/compose/test/unit/test_detectAttachmentCharset.js | application crashed [@ mozalloc_abort(char const * const)]

jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0xce6950 (native @ 0xce5ca0)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Save Draft Error", text = "Unable to save your message as a draft.
Unable to open the file /home/ishikawa/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/data/test-UTF-8.txt.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 richCreateMessage(fields = [xpconnect wrapped nsIMsgCompFields @ 0xc4d880 (native @ 0xbbd5f0)], attachments = [xpconnect wrapped nsIMsgAttachment @ 0xc4dcb0 (native @ 0xc4dbd0)]) ["/home/ishikawa/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/head_compose.js":190]
    this = [object BackstagePass @ 0x9c7750 (native @ 0x46cfb0)]
4 createMessage(aAttachment = [xpconnect wrapped (nsISupports, nsILocalFile, nsIFile) @ 0xbbd260 (native @ 0xbbd190)]) ["/home/ishikawa/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/head_compose.js":148]
    this = [object BackstagePass @ 0x9c7750 (native @ 0x46cfb0)]
5 testUTF8() ["/home/ishikawa/objdir-tb3/_tests/xpcshell/mailnews/compose/test/unit/test_detectAttachmentCharset.js":27]
    this = [object BackstagePass @ 0x9c7750 (native @ 0x46cfb0)]
6 next(val = undefined) ["self-hosted":956]
    this = [object Generator]
7 TaskImpl_run(aSendResolved = true) ["resource://gre/modules/Task.jsm":319]
    this = [object Object]
8 TaskImpl(iterator = [object Generator]) ["resource://gre/modules/Task.jsm":280]
    this = [object Object]
9 createAsyncFunction/asyncFunction() ["resource://gre/modules/Task.jsm":254]
10 Task_spawn(aTask = function* testUTF8() {
  yield createMessage(do_get_file("data/test-UTF-8.txt"));
  check(gdb) 

========================================
checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_longLines.js | xpcshell return code: 1
PROCESS-CRASH | mailnews/compose/test/unit/test_longLines.js | application crashed [@ mozalloc_abort(char const * const)]


mach xpcshell-test --debugger=gdb  --log-mach-verbose debug mailnews/compose/test/unit/test_longLines.js

jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0xb044c0 (native @ 0xd87eb0)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Save Draft Error", text = "Unable to save your message as a draft.
Unable to open the file /tmp/xpc-profile-6IOcLl/nsmail.tmp.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 _do_main() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":208]
    this = [object BackstagePass @ 0x9c7700 (native @ 0x46cfa0)]
4 _execute_test() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":541]
    this = [object BackstagePass @ 0x9c7700 (native @ 0x46cfa0)]
5 <TOP LEVEL> ["-e":1]

========================================
checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_messageHeaders.js | xpcshell return code: 1
PROCESS-CRASH | mailnews/compose/test/unit/test_messageHeaders.js | application crashed [@ mozalloc_abort(char const * const)]


jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0x1037030 (native @ 0x10353f0)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Save Draft Error", text = "Unable to save your message as a draft.
Unable to open the file /tmp/xpc-profile-CfY1Dl/nsmail.tmp.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 _do_main() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":208]
    this = [object BackstagePass @ 0x9c7750 (native @ 0x46cfb0)]
4 _execute_test() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":541]
    this = [object BackstagePass @ 0x9c7750 (native @ 0x46cfb0)]
5 <TOP LEVEL> ["-e":1]

(gdb) 

  /tmp/xpc-profile-CfY1Dl:
  合計 112
  drwx------  7 ishikawa vboxsf  4096  2月  5 16:12 .
  drwxrwxrwt 25 root     root   12288  2月  5 16:13 ..
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:12 Mail
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:12 News
  drwx------  4 ishikawa vboxsf  4096  2月  5 16:12 cache2
  -rw-------  1 ishikawa vboxsf 65536  2月  5 16:12 cert8.db
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:12 crashes
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:12 key3.db
  -rw-r--r--  1 ishikawa vboxsf   684  2月  5 16:12 mozinfo.json
  -rw-------  1 ishikawa vboxsf     0  2月  5 16:12 nsemail.eml
  -rw-------  1 ishikawa vboxsf     4  2月  5 16:12 nsmail.tmp
  -rw-r--r--  1 ishikawa vboxsf  6339  2月  5 16:12 panacea.dat
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:12 secmod.db
  drwxr-xr-x  2 ishikawa vboxsf  4096  2月  5 16:12 startupCache

Something is still reading/writing when open is attempted?


========================================
checked

TEST-UNEXPECTED-FAIL | mailnews/compose/test/unit/test_temporaryFilesRemoved.js | xpcshell return code: 1
PROCESS-CRASH | mailnews/compose/test/unit/test_temporaryFilesRemoved.js | application crashed [@ mozalloc_abort(char const * const)]

jsstack
0 openModalWindow(domWin = null, uri = "chrome://global/content/commonDialog.xul", args = [xpconnect wrapped (nsISupports, nsIWritablePropertyBag2, nsIWritablePropertyBag) @ 0xcfb590 (native @ 0xcfa950)]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":360]
1 ModalPrompter.prototype.openPrompt(args = [object Object]) ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":550]
    this = [object Object]
2 ModalPrompter.prototype.alert(title = "Save Draft Error", text = "Unable to save your message as a draft.
Unable to open the file /tmp/xpc-profile-QlXO7x/nsmail.tmp.") ["file:///home/ishikawa/objdir-tb3/dist/bin/components/nsPrompter.js":602]
    this = [object Object]
3 _do_main() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":208]
    this = [object BackstagePass @ 0x9c7740 (native @ 0x46cfb0)]
4 _execute_test() ["/new-hd1/extra/ishikawa/TB-3HG/NEW-COMMSRC/mozilla/testing/xpcshell/head.js":541]
    this = [object BackstagePass @ 0x9c7740 (native @ 0x46cfb0)]
5 <TOP LEVEL> ["-e":1]

(gdb) ???

  /tmp/xpc-profile-QlXO7x:
  合計 108
  drwx------  6 ishikawa vboxsf  4096  2月  5 16:15 .
  drwxrwxrwt 25 root     root   12288  2月  5 16:15 ..
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:15 Mail
  drwx------  4 ishikawa vboxsf  4096  2月  5 16:15 cache2
  -rw-------  1 ishikawa vboxsf 65536  2月  5 16:15 cert8.db
  drwx------  3 ishikawa vboxsf  4096  2月  5 16:15 crashes
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:15 key3.db
  -rw-r--r--  1 ishikawa vboxsf   684  2月  5 16:15 mozinfo.json
  -rw-------  1 ishikawa vboxsf     0  2月  5 16:15 nsemail.eml
  -rw-------  1 ishikawa vboxsf     9  2月  5 16:15 nsemail.html
  -rw-------  1 ishikawa vboxsf    10  2月  5 16:15 nsmail.tmp
  -rw-r--r--  1 ishikawa vboxsf  1667  2月  5 16:15 panacea.dat
  -rw-------  1 ishikawa vboxsf 16384  2月  5 16:15 secmod.db
  drwxr-xr-x  2 ishikawa vboxsf  4096  2月  5 16:15 startupCache


========================================


PS: Some errors being reported by modal prompt do not make sense since
the message says something about a file under /tmp directory not being
written into, etc. But clearly the /tmp directory is writable and
the file in question is there (albet 0 size in a case, or two).
I suspect another ASYNC issue: maybe another process has still not closed it after
it writes into it, etc.
Dumps from two different PCs are quoted. So the file paths are different in the first dump.
Sorry if this causes any confusion on readers' part.
See Also: → 1563697
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.