Closed
Bug 69231
Opened 24 years ago
Closed 23 years ago
subscribe crashes when server sends "..."
Categories
(SeaMonkey :: MailNews: Message Display, defect, P2)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla0.9.1
People
(Reporter: shochat, Assigned: sspitzer)
Details
(Keywords: crash, Whiteboard: [nsbeta1+])
Attachments
(3 files)
571 bytes,
patch
|
Details | Diff | Splinter Review | |
1.19 KB,
patch
|
Details | Diff | Splinter Review | |
3.27 KB,
patch
|
Details | Diff | Splinter Review |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux 2.4.1 i686; en-US; 0.7) Gecko/20010105 BuildID: 2001021503 and 0000000000 (CVS 2001-02-17) Regression in 0.8 (problem not present in 0.7). When attempting to subscribe to newsgroups for a new news account, the subscribe dialog appears and a second later, mozilla crashes. This occurs with 0.8 binary and with CVS from 2001-02-17. It also occurs with a freshly created profile. For the CVS version, the following message accompanies the problem: ###!!! ASSERTION: didn't find the node: 'node', file nsSubscribableServer.cpp, line 199 ###!!! Break: at file nsSubscribableServer.cpp, line 199 ###!!! ASSERTION: failed to add to subscribe ds: 'NS_SUCCEEDED(rv)', file nsNNTPProtocol.cpp, line 3274 ###!!! Break: at file nsNNTPProtocol.cpp, line 3274 Reproducible: Always Steps to Reproduce: 1.Delete or rename ~/.mozilla 2.Start mozilla 3.Use the account wizard to set up the news account. 4.With the account selected, invoke File->Subscribe. Actual Results: The subscribe dialog appears and a short time later (before any newsgroups have appeared), mozilla terminates. Expected Results: Produced a list of newsgroups available on the selected server.
Comment 1•24 years ago
|
||
Reporter, are you sure you did a full rebuild (a.k.a clobber)?
Reporter | ||
Comment 2•24 years ago
|
||
Håkan, If you mean force everything to recompile, the answer is yes. In this case, I had deleted my entire tree, downloaded a new tarball, sync'd with CVS and rebuilt. So in this case, everything recomplied from scratch. I guess I could have used 'clean' or 'everything', but I wanted a total fresh start.
Did you subscribe using the context menu or by using the File | Subscribe menu?
I think Navin gets this. Re-assigning.
Assignee: sspitzer → naving
Reporter | ||
Comment 5•24 years ago
|
||
I had always used File | Subscribe. After seeing comment from stephend, I tried the context menu. Same result (crash).
Reporter, if you try with this build and a new profile, do you still crash? ftp://ftp.mozilla.org/pub/mozilla/nightly/2001-02-18-06-Mtrunk/mozilla-i686-pc-linux-gnu-sea.tar.gz Thanks for reporting bugs and using Mozilla!
Reporter | ||
Comment 7•24 years ago
|
||
Ok, I took that new version and with a new profile (I just rename my fully- populated .mozilla so it will make a new one), I set up a new news "account" and when I tried to subscribe, it crashed, but after a longer delay (20 seconds during which the empty subscribe dialog box stayed up). Important: All these crashes are with the server news.ne.mediaone.net which has a very large list of groups. I tried setting up news.mozilla.org (tiny list of groups) and the subscribe dialog worked fine. Maybe it just can't handle very large lists. Or maybe it is some other incompatability between this particular server and recent mozilla subscribe code.
Do you have a talkback enabled build? I'm pretty sure this is a DUP of a another bug we've got, but I'll need to the stack trace to verify. Thanks.
Status: UNCONFIRMED → NEW
Ever confirmed: true
I have a suspicion this is a DUP of bug 48409.
Reporter | ||
Comment 10•24 years ago
|
||
How do I create a tallkback-enabled build (for Linux)? I have a CVS setup, but I only see that option under OS/2 in the Build Configurator. Can I just set a breakpoint somewhere at the assertion failure and then get a bt from gdb? Or, would the --enable-crash-on-assert option give me a core dump?
Comment 11•24 years ago
|
||
talkback can only be done by a group that has talkback [i can only think of netscape.com]. a gdb bt w/ debug info is good enough.
Comment 12•24 years ago
|
||
I am not able to reproduce this on today's linux debug build
Reporter | ||
Comment 13•24 years ago
|
||
Here is the stack trace at the point of the SIGSEGV: #0 chunk_free (ar_ptr=0x4044ed60, p=0x8e3bef9) at malloc.c:3049 #1 0x403b9fba in __libc_free (mem=0x8e3bf01) at malloc.c:3023 #2 0x402b4a65 in PR_Free (ptr=0x8e3bf01) at prmem.c:66 #3 0x420faafc in nsNNTPProtocol::ReadNewsList (this=0x8dce610, inputStream=0x8e44928, length=8082) at nsNNTPProtocol.cpp:3301 #4 0x42101e37 in nsNNTPProtocol::ProcessProtocolState (this=0x8dce610, url=0x8dce324, inputStream=0x8e44928, sourceOffset=110, length=8082) at nsNNTPProtocol.cpp:5097 #5 0x42063721 in nsMsgProtocol::OnDataAvailable (this=0x8dce618, ctxt=0x8dce320, inStr=0x8e44928, sourceOffset=110, count=8082) at nsMsgProtocol.cpp:194 #6 0x40de8a44 in nsOnDataAvailableEvent::HandleEvent (this=0x41f06900) at nsStreamListenerProxy.cpp:160 #7 0x40de78c0 in nsStreamObserverEvent::HandlePLEvent (aEvent=0x41f06900) at nsStreamObserverProxy.cpp:77 #8 0x4013308e in PL_HandleEvent (self=0x41f06900) at plevent.c:576 #9 0x40132eac in PL_ProcessPendingEvents (self=0x8cef450) at plevent.c:509 #10 0x40134dd9 in nsEventQueueImpl::ProcessPendingEvents (this=0x8d03ed8) at nsEventQueue.cpp:361 #11 0x407c7784 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #12 0x407c73bf in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #13 0x4098faca in ?? () from /usr/lib/libglib-1.2.so.0 #14 0x40991186 in ?? () from /usr/lib/libglib-1.2.so.0 #15 0x40991751 in ?? () from /usr/lib/libglib-1.2.so.0 #16 0x40991804 in ?? () from /usr/lib/libglib-1.2.so.0 #17 0x407c7f27 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #18 0x407424c7 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #19 0x4074e51e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #20 0x4073e4b9 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #21 0x4055ee06 in ?? () from /usr/local/mozilla/mozilla/dist/bin/libjsdom.so #22 0x40558a21 in ?? () from /usr/local/mozilla/mozilla/dist/bin/libjsdom.so #23 0x40546cee in ?? () from /usr/local/mozilla/mozilla/dist/bin/libjsdom.so #24 0x40200f24 in js_Invoke (cx=0x88522b0, argc=4, flags=0) at jsinterp.c:777 #25 0x40217a97 in js_Interpret (cx=0x88522b0, result=0xbfffdedc) at jsinterp.c:2670 #26 0x40200f9d in js_Invoke (cx=0x88522b0, argc=1, flags=2) at jsinterp.c:794 #27 0x402012fc in js_InternalInvoke (cx=0x88522b0, obj=0x8d22ac0, fval=147991416, flags=0, argc=1, argv=0xbfffe190, rval=0xbfffe060) at jsinterp.c:866 #28 0x401ceda7 in JS_CallFunctionValue (cx=0x88522b0, obj=0x8d22ac0, fval=147991416, argc=1, argv=0xbfffe190, rval=0xbfffe060) at jsapi.c:3268 #29 0x40538dfd in ?? () from /usr/local/mozilla/mozilla/dist/bin/libjsdom.so #30 0x4059378c in ?? () from /usr/local/mozilla/mozilla/dist/bin/libjsdom.so #31 0x4135b58c in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #32 0x4135de05 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #33 0x40c5554a in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/librdf.so #34 0x413d51b1 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #35 0x415f1e7e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #36 0x415ed49b in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #37 0x413d5027 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #38 0x413d4b2a in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #39 0x41cfceab in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #40 0x41cfce32 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #41 0x41cfce32 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #42 0x41cfce32 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #43 0x41d106c5 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #44 0x41cfc554 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #45 0x407db948 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #46 0x407db58c in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #47 0x407dba00 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #48 0x407dcd35 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #49 0x407e3310 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #50 0x407d323d in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #51 0x407d2ee9 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #52 0x4096453b in ?? () from /usr/lib/libgdk-1.2.so.0 #53 0x40991186 in ?? () from /usr/lib/libglib-1.2.so.0 #54 0x40991751 in ?? () from /usr/lib/libglib-1.2.so.0 #55 0x409918f1 in ?? () from /usr/lib/libglib-1.2.so.0 #56 0x408b98e9 in ?? () from /usr/lib/libgtk-1.2.so.0 #57 0x407c7e7a in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #58 0x4074a154 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #59 0x8056703 in main1 (argc=1, argv=0xbffff77c, nativeApp=0x0) at nsAppRunner.cpp:978 #60 0x80573ba in main (argc=1, argv=0xbffff77c) at nsAppRunner.cpp:1270 (gdb)
Comment 14•24 years ago
|
||
I am seeing from the steps to reproduce that you have deleted or renamed ~/.mozilla where all the profiles are stored. Please see that your server directory exists physically
Reporter | ||
Comment 15•24 years ago
|
||
Yes News/news.ne.mediaone.net exists (empty). Also the corresponding newsrc file.
If you delete panacea.dat does it still crash?
Reporter | ||
Comment 17•24 years ago
|
||
Yes, it still crashes, both with the original 0.8 binary and my recent CVS version. But in the test which I did before where I start out with no profile at all (forcing mozilla to create a new one) there was of course no prior panacea.dat. Or did you mean to delete it while mozilla is running, immediately before the subscribe attempt?
Hmm..I'm having no problems with build 2001022808 using Mandrake 7.2 with KDE.
So, if you rm -r the directory that contains the mozilla binary, and you download a fresh mozilla-i686-pc-linux-gnu.tar.gz, and then tar -xzvf that file and ./mozilla, it still crashes?
Reporter | ||
Comment 20•24 years ago
|
||
Yes. I just downloaded nightly binary build (id 2001022821) into an empty directory. I renamed my ~/.mozilla and launched the _new_ mozilla. Went to mail/news. Since this was a freshly created profile, I got the "account wizard" and proceeded to create a news account for news.ne.mediaone.net. I highlighted the server and used the context menu to invoke subscribe. It crashed after displaying the subscribe dialog for about one second. What symbol can I break at (using a debug CVS build) so that I can get a stack trace at the exact point where the assertion failure occurs? Note that the error message from a debug version (see my original comment on 2/17) always mentions two source line numbers preceded by "Break: at". Does that mean I should set breakpoints at those 2 places and then invoke the subscribe function? Is there an environment variable (such as XPCOM_BREAK_ON_LOAD) that will make it break on any assertion failure?
Seth, Navin, can you guys help him get a stack trace going? Thanks. I can't reproduce this crash, but he's getting it all the time and it would be great to find out what's causing it.
Reporter | ||
Comment 22•24 years ago
|
||
Ok, I think I finally have a decent stack dump. I had to get a snapshot gdb in order to escape bug 57051. Based on the messages I saw when running without gdb I figured I should set a breakpoint at nsSubscribableServer.cpp:199. When I do that, I get this bt: #0 nsSubscribableServer::AddTo (this=0x86e56a8, aName=0x8e95fe8 "alt.offroading-uk", addAsSubscribed=0, changeIfExists=1) at nsSubscribableServer.cpp:199 #1 0x4209891a in nsNntpIncomingServer::AddTo (this=0x8c0aa68, aName=0x8e95fe8 "alt.offroading-uk", addAsSubscribed=0, changeIfExists=1) at nsNntpIncomingServer.cpp:1114 #2 0x42097ff9 in nsNntpIncomingServer::AddNewsgroupToList (this=0x8c0aa68, aName=0x8e95fe8 "alt.offroading-uk") at nsNntpIncomingServer.cpp:1004 #3 0x420719bc in nsNNTPProtocol::ReadNewsList (this=0x8f42208, inputStream=0x8f470b8, length=5815) at nsNNTPProtocol.cpp:3285 #4 0x42078bd4 in nsNNTPProtocol::ProcessProtocolState (this=0x8f42208, url=0x8f31adc, inputStream=0x8f470b8, sourceOffset=110, length=5815) at nsNNTPProtocol.cpp:5109 #5 0x4213e39c in nsMsgProtocol::OnDataAvailable (this=0x8f42210, request=0x8f47190, ctxt=0x8f31ad8, inStr=0x8f470b8, sourceOffset=110, count=5815) at nsMsgProtocol.cpp:218 #6 0x40d12385 in nsOnDataAvailableEvent::HandleEvent (this=0x8eb92f8) at nsStreamListenerProxy.cpp:161 #7 0x40d10fea in nsStreamObserverEvent::HandlePLEvent (aEvent=0x8eb92f8) at nsStreamObserverProxy.cpp:78 #8 0x401351c3 in PL_HandleEvent (self=0x8eb92f8) at plevent.c:576 #9 0x40134fb0 in PL_ProcessPendingEvents (self=0x8e2b5e8) at plevent.c:509 #10 0x401371cc in nsEventQueueImpl::ProcessPendingEvents (this=0x8e19c38) at nsEventQueue.cpp:361 #11 0x407bbe72 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #12 0x407bba48 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #13 0x4098daca in ?? () from /usr/lib/libglib-1.2.so.0 #14 0x4098f186 in ?? () from /usr/lib/libglib-1.2.so.0 #15 0x4098f751 in ?? () from /usr/lib/libglib-1.2.so.0 #16 0x4098f804 in ?? () from /usr/lib/libglib-1.2.so.0 #17 0x407bc6ba in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #18 0x4057ce5a in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #19 0x40589dbf in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #20 0x4057852e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #21 0x40c28f3d in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libembedcomponents.so #22 0x40657899 in ?? () from ./libjsdom.so #23 0x40652caa in ?? () from ./libjsdom.so #24 0x4063f64c in ?? () from ./libjsdom.so #25 0x4021a48d in js_Invoke (cx=0x88cdd80, argc=4, flags=0) at jsinterp.c:777 #26 0x40228899 in js_Interpret (cx=0x88cdd80, result=0xbfffde30) at jsinterp.c:2670 #27 0x4021a510 in js_Invoke (cx=0x88cdd80, argc=1, flags=2) at jsinterp.c:794 #28 0x4021a83f in js_InternalInvoke (cx=0x88cdd80, obj=0x8b6f070, fval=146207008, flags=0, argc=1, argv=0xbfffe124, rval=0xbfffdfe8) at jsinterp.c:866 #29 0x401ee7c8 in JS_CallFunctionValue (cx=0x88cdd80, obj=0x8b6f070, fval=146207008, argc=1, argv=0xbfffe124, rval=0xbfffdfe8) at jsapi.c:3268 #30 0x40630e61 in ?? () from ./libjsdom.so #31 0x4068e55a in ?? () from ./libjsdom.so #32 0x4122ab91 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkcontent.so #33 0x4122d598 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkcontent.so #34 0x4138da03 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkcontent.so #35 0x41c51705 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #36 0x41d6c14a in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #37 0x41d6741e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #38 0x41c51550 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #39 0x41c50fef in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgklayout.so #40 0x41ebb98e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #41 0x41ebb91e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #42 0x41ebb91e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #43 0x41ebb91e in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #44 0x41ed03d2 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #45 0x41ebaf60 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libgkview.so #46 0x407d22ab in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #47 0x407d1e86 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so ---Type <return> to continue, or q <return> to quit--- #48 0x407d236b in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #49 0x407d37e5 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #50 0x407da763 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #51 0x407c8af0 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #52 0x407c872c in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #53 0x4096253b in ?? () from /usr/lib/libgdk-1.2.so.0 #54 0x4098f186 in ?? () from /usr/lib/libglib-1.2.so.0 #55 0x4098f751 in ?? () from /usr/lib/libglib-1.2.so.0 #56 0x4098f8f1 in ?? () from /usr/lib/libglib-1.2.so.0 #57 0x408b78e9 in ?? () from /usr/lib/libgtk-1.2.so.0 #58 0x407bc60d in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libwidget_gtk.so #59 0x405853a5 in ?? () from /usr/local/mozilla/mozilla/dist/bin/components/libnsappshell.so #60 0x08057356 in main1 (argc=1, argv=0xbffff8cc, nativeApp=0x0) at nsAppRunner.cpp:1004 #61 0x08058191 in main (argc=1, argv=0xbffff8cc) at nsAppRunner.cpp:1295 #62 0x403429cb in __libc_start_main (main=0x8057f7c <main>, argc=1, argv=0xbffff8cc, init=0x8051948 <_init>, fini=0x8067ed0 <_fini>, rtld_fini=0x4000ae60 <_dl_fini>, stack_end=0xbffff8c4) at ../sysdeps/generic/libc-start.c:92 The code around 199 is: 192 SubscribeTreeNode *node = nsnull; 193 194 // todo, shouldn't we pass in addAsSubscribed, for the 195 // default value if we create it? 196 rv = FindAndCreateNode(aName, &node); 197 NS_ENSURE_SUCCESS(rv,rv); 198 199 NS_ASSERTION(node,"didn't find the node"); 200 if (!node) return NS_ERROR_FAILURE; 201 I believe that assertion is what eventually fails, but not right away. With the breakpoint still set, I do 'c' many times and keep hitting line 199, each time with a different newsgroup. Then after much of this, we finally get: Breakpoint 2, nsSubscribableServer::AddTo (this=0x86e56a8, aName=0x8ed4658 "alt.aus.telehealth", addAsSubscribed=0, changeIfExists=1) at nsSubscribableServer.cpp:199 199 NS_ASSERTION(node,"didn't find the node"); (gdb) c Continuing. Breakpoint 2, nsSubscribableServer::AddTo (this=0x86e56a8, aName=0x8ed4658 "alt.telehealth.test", addAsSubscribed=0, changeIfExists=1) at nsSubscribableServer.cpp:199 199 NS_ASSERTION(node,"didn't find the node"); (gdb) c Continuing. Breakpoint 2, nsSubscribableServer::AddTo (this=0x86e56a8, aName=0x8ed3559 "..", addAsSubscribed=0, changeIfExists=1) at nsSubscribableServer.cpp:199 199 NS_ASSERTION(node,"didn't find the node"); (gdb) c Continuing. c###!!! ASSERTION: didn't find the node: 'node', file nsSubscribableServer.cpp, line 199 ###!!! Break: at file nsSubscribableServer.cpp, line 199 ###!!! ASSERTION: failed to add to subscribe ds: 'NS_SUCCEEDED(rv)', file nsNNTPProtocol.cpp, line 3286 ###!!! Break: at file nsNNTPProtocol.cpp, line 3286 c Program received signal SIGSEGV, Segmentation fault. chunk_free (ar_ptr=0x40418d60, p=0x8ed3551) at malloc.c:3049 Could it be that funny newsgroup name of ".." that is killing us? I hope this helps. Let me know if I should set a different breakpoint. This was done on a CVS co on 3/3 at about 21:30 EST.
nominating for nsbeta1, if there is some strange config or something and we find it, it would be great to fix this, but I still can't reproduce on linux (mac I can, known bug.)
Keywords: nsbeta1
Reporter | ||
Comment 24•23 years ago
|
||
I have found a fix for this problem. It turns out that when dealing with my ISP's news server (AT&T Broadband for Eastern Mass) news.ne.mediaone.net, in the routine nsNNTPProtocol::ReadNewsList(), the call at line 3190: (all line numbers are for revision 1.244 of nsNNTPProtocol.cpp) line = m_lineStreamBuffer->ReadNextLine(inputStream, status, pauseForMoreData); eventually returns a pointer to this string (sometimes only happens after many calls): ... 0000000001 0000000002 y Then at line 3214-6, line is incremented past the 1st '.'. At line 3283, a null is put in place of the 1st blank and we are left with just "..". As I reported before, the call at line 3293: rv = m_nntpServer->AddNewsgroupToList(line); fails and results in an assertion failure. However, this is not the crash. The segfault comes from line 3321: PR_FREEIF(line); My "fix" is to check back at line 3192 to see if line begins with "..". If so, I return immediately, bypassing the fatal PR_FREEIF(line). I do not believe that this is the correct final fix. But I hope it is enough information to help someone more familiar with the code to see what the real problem is. Trying to free line after incrementing it seems fishy to me, but I have a pretty limited understanding of the design at this point.
Do you have CVS? If you could produce a diff -u out of this, that would be excellent.
Reporter | ||
Comment 26•23 years ago
|
||
Comment 27•23 years ago
|
||
marking nsbeta1+ and moving to mozilla0.9 Can we try out shocat's patch (thanks for the patch)? If it works we might try to get this into 0.8.1
Priority: -- → P2
Whiteboard: [nsbeta1+]
Target Milestone: --- → mozilla0.9
Assignee | ||
Comment 28•23 years ago
|
||
hold off on this, I'm returning to the trunk. the "." worries me, I hope we're not escaping the periods when we aren't supposed to. naving, can I take this back from you?
Assignee | ||
Comment 29•23 years ago
|
||
the fact that we are crashing in PR_FREEIF() is not a good sign. reporter, can you use 4.x and then email me your 4.x hostinfo.dat file for this server? (you won't be able to attach it to bugzilla, it should be pretty big. probably a couple megs when compressed.) I can use that to reproduce this crasher.
Reporter | ||
Comment 30•23 years ago
|
||
Reporter | ||
Comment 31•23 years ago
|
||
I have now found through testing that the reason for the crash was indeed the fact that line was passed to PR_FREEIF() *after* being incremented (to bypass the initial period). When I made a change consisting only of saving the original value of line in line_orig and passing that instead of line to PR_FREEIF() at the end of the routine, there was no crash. However, I still got the assertion failure since again, ".." was being passed to m_nntpServer->AddNewsgroupToList(). The assertion failure terminates processing of the newsgroup list before it is completely populated. So in the above patch, I additionally check for a third period, given that there are two. That means we have the pathologically strange line from news.ne.mediaone.net. In this case we return as in the previous patch. The reason this solution is better is that the original logic is preserved for handling a potential server that sends a legitimate line starting with a "data" period preceded by an escaping period (news.ne.mediaone.net does not ever do that). In particular, it will not crash since the original value of line is still passed to PR_FREEIF().
Comment 32•23 years ago
|
||
Seth, you can take it back. I never started to work on this one.
Comment 33•23 years ago
|
||
I am not able to reproduce this on my linux debug build from today. Marking worksforme. Reopen, if you see the problem
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
Reporter | ||
Comment 34•23 years ago
|
||
It still crashes using a debug build which I did today at about 7PM EST. Please read my comments from 3/13 and 3/14. What I described there still applies since nsNNTPProtocol.cpp is still at revision 1.244. The problem is caused by the server sending a line in the newsgroup list starting with 2 or more periods (3 in my case). This results in the variable 'line' being incremented. And then the crash is caused by a segfault resulting from trying to free this incremented pointer. To reproduce the crash, you need to be using a news server which gives you the strange line with the periods among the valid newsgroup names. Evidenty mine does that (news.ne.mediaone.net) but yours does not. Also, as I said on 2/19, it works fine for me too as long as I use a different news server such as news.mozilla.org. Either of the two patches I posted actually does fix this, but neither has been applied.
Suggesting we re-open this and have Seth take a further look at this (since he had previous comments regarding the patches.)
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Comment 36•23 years ago
|
||
I am not able to subscribe to news.ne.mediaone.net. It throws an alert. " A News (NNTP) error occurred : Permission denied ......" Do you have a test account that I can use.
Assignee | ||
Comment 37•23 years ago
|
||
the crasher that shochat found is still valid, I just haven't gotten to his patches yet. naving, feel free to re-assign to me.
Comment 38•23 years ago
|
||
shocat@acm.org, I need a test account to verify your patch...
Assignee | ||
Comment 39•23 years ago
|
||
reporter, does 4.x crash when try the same thing? naving, we can duplicate this in house (by trickery).
Comment 40•23 years ago
|
||
Seth, how ?
Updated•23 years ago
|
Assignee: naving → sspitzer
Status: REOPENED → NEW
Comment 41•23 years ago
|
||
reassign to sspitzer
Reporter | ||
Comment 43•23 years ago
|
||
I know the target is now set to 0.9.1, but since people have trouble testing this, I thought I would report that the crash is still there in 0.9. Is there a disagreement with the analysis and fix which I provided?
Assignee | ||
Comment 44•23 years ago
|
||
schochat: I haven't had the cycles to test / review your patch yet. I'll work on this today.
Status: NEW → ASSIGNED
Reporter | ||
Comment 45•23 years ago
|
||
Ok, just don't use the first one I posted. Although it worked, it clearly has a memory leak since it never frees 'line' at all if the funny line from the server is detected.
Assignee | ||
Comment 46•23 years ago
|
||
shochat, your fix makes sense. I looked at the 4.x code, and the reason it didn't crash is we didn't copy the buffer, so we didn't have to free it. (note, perhaps we can investigate what it would take to get rid of that extra buffer copy) I've got a fixed based closely on your fix. coming soon...
Assignee | ||
Comment 47•23 years ago
|
||
Assignee | ||
Comment 48•23 years ago
|
||
shochat@acm.org, can you review and test that patch?
Reporter | ||
Comment 49•23 years ago
|
||
Absolutely. I should be able to do it tonight.
Assignee | ||
Comment 50•23 years ago
|
||
updating summary.
Summary: subscribe crashes immediately in 0.8 → subscribe crashes when server sends "..."
Reporter | ||
Comment 51•23 years ago
|
||
I made sure I had an unmodified version 1.262 of nsNNTPProtocol.cpp (using cvs status). But when I try to apply the patch, I get: $ patch -p0 < /usr/local/mozilla/news_5_9.patch patching file `nsNNTPProtocol.cpp' Hunk #1 FAILED at 3129. Hunk #2 FAILED at 3155. Hunk #3 FAILED at 3218. Hunk #4 FAILED at 3257. 4 out of 4 hunks FAILED -- saving rejects to nsNNTPProtocol.cpp.rej What am I doing wrong?
Assignee | ||
Comment 52•23 years ago
|
||
probably line endings. my patch comes from winnt, you are on linux, right? to convert line endings, use dos2unix
Reporter | ||
Comment 53•23 years ago
|
||
Ok, that worked (don't have dos2unix, used emacs). Trouble is my latest CVS build of c/o date 8 May 2001 20:06:12 won't even start: ###!!! ASSERTION: bad state!: 'GetResolveState() == PARTIALLY_RESOLVED', file xptiInterfaceInfo.cpp, line 144 ###!!! Break: at file xptiInterfaceInfo.cpp, line 144 So I'm pulling more or less current CVS and will try that. Anyway, getting closer.
Assignee | ||
Comment 54•23 years ago
|
||
thanks for keeping me posted.
Reporter | ||
Comment 55•23 years ago
|
||
Fix works. No more crash, and the newsgroup list loaded.
Assignee | ||
Comment 56•23 years ago
|
||
excellent! I'll land the fix (based on your patch) tonight.
Assignee | ||
Comment 57•23 years ago
|
||
fixed.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → FIXED
There isn't a way to reproduce this in-house (QA side) correct? Is it safe to verify based on David's comments per it working for him now?
Reporter | ||
Comment 59•23 years ago
|
||
I have checked again that retrieving the newsgroup list (from news.ne.mediaone.net) works properly now (using v. 1.263 of nsNNTPProtocol.cpp). Attempting the same operation with 0.9 still causes a crash.
Status: RESOLVED → VERIFIED
Updated•20 years ago
|
Product: Browser → Seamonkey
Component: MailNews: Subscribe → MailNews: Message Display
QA Contact: stephend → search
You need to log in
before you can comment on or make changes to this bug.
Description
•