Closed Bug 28360 Opened 26 years ago Closed 26 years ago

linux hangs-on-exit when "Tasks" menu is opened

Categories

(SeaMonkey :: General, defect, P1)

x86
Linux
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: waterson, Assigned: slogan)

Details

(Whiteboard: [PDT+])

To reproduce: 1. Start browser 2. Open "Tasks" menu 3. Close browser Results: browser hangs on exit. Expected: browser closes cleanly. Alternatively, 1. Start browser 2. Open "Open windows" menu at the bottom of the screen 3. Close browser This makes me pretty sure something is going wrong with the window mediator. Can you take a look?
Keywords: beta1
Yes, this is definitely a beta 1 stopper.
Putting on PDT+ radar for beta1.
Whiteboard: [PDT+]
I can take a look but I really doubt the problem is in my code since I haven't touched it in several months.
I have observed this for the last few days. Another good way to reproduce it is to use the pulldown menus a few times. I traced it in gdb yesterday. We are blocked on a pthread lock inside a call to free(). This should obviously never happen. If I had to guess I would say someone is writting to an invalid pointer and scribbling over things. Can anyone run purify under Solaris and see if it picks anything up?
hey, dmose, mcafee. can on of you guys run purify on a solaris build to test jim's theory? (or help me to do it?)
OK, I ran it in the debugger again, and its not as simple as I thought. It is not simply stuck in free (though it may have been last night. I have no way of knowing). I am going to try and get better tracebacks in a few minutes.
Here is a stack trace where we are stuck. This is with glib and gtk 1.2.7, but we get stuck with 1.2.6 as well. I just got 1.2.7 to see if it fixed the problem, and thats what happens to be in the debugger at the moment. I stopped/started the program several times and it always seems to be in some function down in glib. (gdb) bt #0 0x40964c25 in g_main_iterate (block=1, dispatch=1) at /usr/local/home/jlnance/tmp/glib-1.2.7/gmain.c:843 #1 0x40964ec9 in g_main_run (loop=0x8198578) at /usr/local/home/jlnance/tmp/glib-1.2.7/gmain.c:935 #2 0x4089396a in gtk_main () at /usr/local/home/jlnance/tmp/gtk+-1.2.7/gtk/gtkmain.c:476 #3 0x407bbcf7 in nsAppShell::Run (this=0x8136888) at nsAppShell.cpp:304 #4 0x40652e4d in ?? () from /mnt/tmp/mozilla/dist/bin/components/libnsappshell.so #5 0x804e31e in main1 (argc=1, argv=0xbffffb44, splashScreen=0x0) at nsAppRunner.cpp:651 #6 0x804e8b0 in main (argc=1, argv=0xbffffb44) at nsAppRunner.cpp:770
I've seen occasional hang-on-exit with similar stack traces recently. I first started seeing them when I setenv'd XPCOM_MEM_LEAK_LOG=1, so I wasn't sure if it was a known problem or not. There were certain classes where, if I set XPCOM_MEM_REFCNT_LOG and XPCOM_MEM_LOG_CLASSES=class, I would hang 100% of the time. (I got decent logs by going into the debugger and just forcing g_main_run (or was it g_main_iterate?) to return.) This has happened in cases as simple as just clicking "Exit" when I see the profile manager.
I put a couple of printfs and what appears to me to be happening is that the ExitCallback never gets called.
I think this may have started happening when the history was made to appear in the tasks menu in addition to the go menu...
I'm noticing on my startup hang bug that the ExitApp Exit callback in appshell is not being called either when the profile wizard is closed. Also, on linux when I bring up the tasks menu, it draws wider than need be, i.e., incorrectly. Whether or not that has any bearing on the problem I can't say.
Probably is a duplicate, yes. Since this is not affected by chris's soon to be landed appshellservice change (afaik), I'll take ownership since my tests indicate it is related to timer priorities.
Assignee: davidm → syd
Priority: P3 → P1
Status: NEW → ASSIGNED
Fixed
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
I no longer see a crash with 2000-02-28-09-M15 Linux build. Marking Verified.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.