Opened 11 years ago

Last modified 11 years ago

#1238 new Defect

BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized

Reported by: JacobKlein Owned by: romw
Priority: Undetermined Milestone: Undetermined
Component: Manager Version: 7.0.28
Keywords: All Projects Statistics Crash Initialize Initialization Cc: Jacob_W_Klein@…

Description

Note:
This ticket is related to, but different from, the following unfixed tickets:
Ticket #659
Ticket #1053

From: jacob_w_klein@…
To: boinc_alpha@…
Subject: BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized
Date: Sun, 7 Apr 2013 17:56:59 -0400

I noticed this bug today, that crashes the BOINC Manager, on 7.0.60 x64.
On the older 7.0.28 version, I've confirmed similar behavior, where the Manager appears to just freeze indefinitely; so I'll create a ticket for this.

I use an account manager to connect to several projects, and the Superlink project hasn't been able to initialize for a long long time; the project is down.
Because of the status of the project, the Statistics tab's project list shows an empty string for that project.
That is an issue (noted in Ticket 659), where it really should be showing the project's URL there, instead of empty string.

But I've discovered another issue, a crashing issue.
While the project is trying to initialize, if you click "All projects (sum)" on the Statistics Tab, the BOINC Manager will crash.
This bug does not require the use of an account manager; you can trigger the bug immediately after adding 1 project.

Steps to reproduce the crash:
1) Get a project in the status of "Project Initialization", using one of these methods:
- Add a project, and watch for that status
- Add an account manager that auto-attaches to a project which is currently down
2) Click the Statistics tab, and notice that the project erroneously shows a blank in the Statistics project list
3) Click "All projects (sum)"
4) Manager hangs/stalls, then closes itself.

Below is the relevant portion of the stderrgui.txt log file:

============================================================================================================
- Unhandled Exception Record -
Reason: Breakpoint Encountered (0x80000003) at address 0x000007FB4DCF478A

- Registers -
rax=000000000000001a rbx=000000000427bb50 rcx=00000000ffffffff rdx=0000000000000002 rsi=000000000013eca0 rdi=0000000000000000
r8=0000000000000000 r9=0000000000000000 r10=0000000057bb0000 r11=0000000000000200 r12=0000000000000005 r13=0000000001c735a0
r14=0000000001cc2c88 r15=000000000421a3c0 rip=000000004dcf478a rsp=000000000013e5e8 rbp=000000000421a3c0
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202

- Callstack -
ChildEBP RetAddr  Args to Child
0013e5e0 57bbb1bd 0427bb50 0421a3c0 0013eca0 00000000 KERNELBASE!DebugBreak+0x0
0013eba0 400f10d7 01cc2ce8 01c8c720 0013eca0 04222100 MSVCR80!_invalid_parameter_noinfo+0x0
0013f090 400f5218 01c8c720 0013f120 00000005 00000000 boincmgr!CPaintStatistics::DrawAll+0x17 (c:\src\boincgit\boinc_7.0b\clientgui\viewstatistics.cpp:1543)
0013f440 4017cb71 00000507 0013f550 00000272 0013f250 boincmgr!CPaintStatistics::OnPaint+0x0 (c:\src\boincgit\boinc_7.0b\clientgui\viewstatistics.cpp:1626)
0013f470 4017d1e3 00000001 00000000 0013f500 4024712a boincmgr!wxEvtHandler::ProcessEventIfMatches+0x0 (c:\src\sdks\wx28x64\src\common\event.cpp:1233)
0013f4a0 4017d2b0 0013f550 01c8c720 00000000 01c8c720 boincmgr!wxEventHashTable::HandleEvent+0xf (c:\src\sdks\wx28x64\src\common\event.cpp:907)
0013f4d0 401e29ff bc041863 bc041863 00000000 01c8c720 boincmgr!wxEvtHandler::ProcessEvent+0x17 (c:\src\sdks\wx28x64\src\common\event.cpp:1293)
0013f590 401e2cd0 40000000 01c8c720 00000002 00000070 boincmgr!wxWindow::HandlePaint+0x12 (c:\src\sdks\wx28x64\src\msw\window.cpp:4602)
0013f850 401e0d6f 01c8c720 007c05b0 00000000 00000000 boincmgr!wxWindow::MSWWindowProc+0x8 (c:\src\sdks\wx28x64\src\msw\window.cpp:2747)
0013f880 4e2d3e95 00000001 0044068a 00000000 0000000f boincmgr!wxWndProc+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013f940 4e2d2a62 00000000 00000000 00000000 00000000 USER32!UserCallWinProcCheckWow+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013f9a0 4e2d294d 00000000 00000000 00000000 57bb6dfb USER32!DispatchClientMessage+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fa00 509f4b67 00000001 57bb6dfb fffffffe 00000000 USER32!__fnEMPTY+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fa88 4e2d203a 4e2d204c 011d03d2 00000000 fffde000 ntdll!KiUserCallbackDispatcherContinue+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fa90 4e2d204c 011d03d2 00000000 fffde000 4e2d19ec USER32!ZwUserDispatchMessage+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fb10 4e2fe067 01c8be00 00907510 009071c0 0013fce8 USER32!DispatchMessageWorker+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fba0 401e0c29 0013fc48 01c8be00 00000000 00000000 USER32!IsDialogMessageW+0x0 (c:\src\sdks\wx28x64\src\msw\window.cpp:2623)
0013fc50 4024c8af 01c8be00 00000000 0013fce8 00000000 boincmgr!wxWindow::MSWProcessMessage+0x10 (c:\src\sdks\wx28x64\src\msw\window.cpp:2407)
0013fc80 4024c39f 0013fce8 01c24d50 00000000 00000000 boincmgr!wxEventLoop::PreProcessMessage+0xf (c:\src\sdks\wx28x64\src\msw\evtloop.cpp:175)
0013fcb0 4024c702 00000000 00000000 01c24d50 00000010 boincmgr!wxEventLoop::ProcessMessage+0x9 (c:\src\sdks\wx28x64\src\msw\evtloop.cpp:74)
0013fd20 4025a941 01c9eb70 00000000 01c24d50 01c24980 boincmgr!wxEventLoop::Dispatch+0x0 (c:\src\sdks\wx28x64\src\msw\evtloop.cpp:294)
0013fd60 40244f8e 01c9eb70 00000000 cb4edcf2 01c24cd0 boincmgr!wxEventLoopManual::Run+0x9 (c:\src\sdks\wx28x64\src\common\evtloopcmn.cpp:115)
0013fdb0 401c02e3 01c9eb70 01c1c990 01c1c990 01c1c990 boincmgr!wxAppBase::MainLoop+0x9 (c:\src\sdks\wx28x64\src\common\appcmn.cpp:312)
0013fdf0 401b5219 01c1c990 00000000 00000000 00000000 boincmgr!wxEntryReal+0x10 (c:\src\sdks\wx28x64\src\common\init.cpp:460)
0013fe20 40244d04 00000008 00000000 003ec428 00000001 boincmgr!wxEntry+0xb (c:\src\sdks\wx28x64\src\msw\main.cpp:209)
0013fea0 401779cc 001b27e6 00000000 00000000 00000000 boincmgr!wxEntry+0xd (c:\src\sdks\wx28x64\src\msw\main.cpp:386)
0013ff50 4deb167e 00000000 00000000 00000000 00000000 boincmgr!__tmainCRTStartup+0x26 (f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:589)
0013ff80 50a13501 00000000 00000000 00000000 00000000 KERNEL32!BaseThreadInitThunk+0x0 (f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:589)
0013ffd0 00000000 00000000 00000000 00000000 00000000 ntdll!RtlUserThreadStart+0x0 (f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c:589)
============================================================================================================

Regards,
Jacob

Change History (1)

comment:1 Changed 11 years ago by JacobKlein

7.0.62 prevents the Manager crash, but still does not show the graph properly when an uninitialized project is included. Emails between Rom and me, are below:


From: Jacob Klein jacob_w_klein@…
Sent: Tuesday, April 09, 2013 12:37 PM
To: Rom Walton; BOINC Alpha
Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized

Rom,

Well, the private drop doesn't crash, but... whenever the non-initialized empty-string project is selected for inclusion in the "All projects (sum)" mode view, the graph stops showing me the summed work for the other projects that were included. Instead, depending on which Command I choose... the graph either shows no lines, or shows a spiked line going straight up for today.

So, doesn't crash anymore, but still broken.

- Jacob

Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized
Date: Tue, 9 Apr 2013 12:40:53 -0400
From: romw@…
To: jacob_w_klein@…; boinc_alpha@…

Okay, I’m going to take that as a partial win then.

In the project init case there are no stats to display. Ideally it would just print text instead of the graph saying so, but that is a pretty big change for right now.


From: Jacob Klein [mailto:jacob_w_klein@msn.com]
Sent: Tuesday, April 09, 2013 12:50 PM
To: Rom Walton; BOINC Alpha
Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized

If there's no data to sum in, then can't it just not sum in?

I don't see why including that project has to make the graph go completely blank, when the other projects were showing just fine.
I would think that including the uninitialized project would simply have no effect on the summation graph.


Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized
Date: Tue, 9 Apr 2013 12:55:04 -0400
From: romw@…
To: jacob_w_klein@…; boinc_alpha@…

That is what I thought I accomplished with my commit. Apparently I missed something.



From: jacob_w_klein@…
To: romw@…
Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized
Date: Tue, 9 Apr 2013 13:01:24 -0400

I might not have phrased things well when I said:
"whenever the non-initialized empty-string project is selected for inclusion in the "All projects (sum)" mode view, the graph stops showing me the summed work for the other projects that were included. Instead, depending on which Command I choose... the graph either shows no lines, or shows a spiked line going straight up for today."

But... do you understand what I'm saying there?
The graph, which did have a nice data line when several initialized projects were included, all of the sudden has no data when the uninitialized project is included.

You might be able to test this by adding SuperLink to an Account Manager, and connecting to it.
Or maybe, disconnecting an Account Manager, removing some projects, reconnecting to the Account Manager, but then interrupting network communications as projects are trying to get initialized.


From: jacob_w_klein@…
To: romw@…
Subject: RE: [boinc_alpha] BOINC Manager crash - Statistics Tab - Clicking "All projects (sum)" while a project hasn't initialized
Date: Tue, 9 Apr 2013 14:31:37 -0400

I think the problem is that the y-axis is zoomed in far too much, and doesn't show the full range of y-values that are within the data.
Does that help?

Note: See TracTickets for help on using tickets.