Okay, the issue causing the 0x80000003 exception should now be fixed in
the trunk version of BOINC.

The Astropulse client was reusing the same instance of an MFILE class to
write its current state.  After it wrote it's state it closed the file
and released the MFILE buffer.  The MFILE class didn't re-create the
buffer during the next attempt to write the current state.

I have also fixed up the project files for Astropulse and SETI_BOINC so
that they use the BOINC based projects for libboinc_staticcrt,
libboincapi_staticcrt, and libgraphics.

Anyway, checkout the stock project files and see if that also fixes the
CRT problem you sometimes see.

----- Rom

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Rom Walton
Sent: Wednesday, August 11, 2010 1:22 PM
To: David Anderson (BOINC); [email protected]
Subject: Re: [boinc_dev] Incorrect function when running under BOINC

Which would be a result of the CRT not being initialized.

I've build a private drop of the ap_client with VS 2005.  I'll update
the project files to 2008 and see what happens.

----- Rom

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of David Anderson
Sent: Wednesday, August 11, 2010 1:08 PM
To: [email protected]
Subject: Re: [boinc_dev] Incorrect function when running under BOINC

The arg to msize() is the result of malloc(64K).
It looks like the memory-allocation system hasn't been
initialized.

On 10-Aug-2010 10:42 PM, Rom Walton wrote:
> Hmmmmmm...
>
> According to the callstack msize is called with a null parameter.
Since
> it is a debug build I assume the CRT is asserting and the exception
code
> is 0x80000003.
>
> Using some of the stats before the callstack, how much virtual memory
> was in use before the crash?
>
> Which version of Visual Studio are you using?
>
> I'll try and repro.
>
> ----- Rom
>
> -----Original Message-----
> From: Raistmer [mailto:[email protected]]
> Sent: Tuesday, August 10, 2010 6:11 PM
> To: Rom Walton; [email protected]
> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>
> Well, I getting  exception with astropulse too now. All that was
changed
> -
> BOINC libs to link.
> Call stack and BPINC function that causes exception are:
>
> - Callstack -
> ChildEBP RetAddr  Args to Child
> 000f8b5c 0050f297 00000000 00000000 00000000 00000000
> ntdll!DbgBreakPoint+0x0
> 000f8ba8 0042ea9c 00000000 00111274 0042e9ef 00000000
> ap_5.05_win_x86_SSE3_r446_DEBUG!_msize+0x25
> (f:\dd\vctools\crt_bld\self_x86\crt\src\msize.c:47)
> 000f8bb4 0042e9ef 00000000 00000015 00563f0c 00000014
> ap_5.05_win_x86_SSE3_r446_DEBUG!realloc_aux+0x9
> (d:\r\seti6\boinc\lib\mfile.cpp:61)
> 00111274 0042eadc 00534b20 0011129c 0011129c 0052dba1
> ap_5.05_win_x86_SSE3_r446_DEBUG!MFILE::vprintf+0x1f
> (d:\r\seti6\boinc\lib\mfile.cpp:82)
> 0011128c 0040bfcc 00563f0c 00534b20 59543951 00563b68
> ap_5.05_win_x86_SSE3_r446_DEBUG!MFILE::printf+0x10
> (d:\r\seti6\boinc\lib\mfile.cpp:98)
> 001112d0 00413d72 5954392d 003d7780 00563b68 0012fd38
> ap_5.05_win_x86_SSE3_r446_DEBUG!Astropulse::Outfile::write_header+0xb
> (d:\r\seti6\ap\client\ap_fileio.cpp:803)
> 001112f4 004076fb 016df8d8 02a9c000 00370000 00000000
> ap_5.05_win_x86_SSE3_r446_DEBUG!Astropulse::Outfile::write_main+0x0
> (d:\r\seti6\ap\client\ap_fileio.cpp:842)
> 00111334 00407f0a 595438b1 00000003 00000000 00000001
> ap_5.05_win_x86_SSE3_r446_DEBUG!Astropulse::Client::do_checkpoint+0x0
> (d:\r\seti6\ap\client\astropulse.h:648)
> 0012fd38 00409623 fffffffe 0012ff88 00000001 00000000
> ap_5.05_win_x86_SSE3_r446_DEBUG!Astropulse::Science::mainloop+0x13
> (d:\r\seti6\ap\client\ap_client_main.cpp:1680)
> 0012fd54 00409671 00000003 0012fd6c 00272df9 0012fd6c
> ap_5.05_win_x86_SSE3_r446_DEBUG!main+0x0
> (d:\r\seti6\ap\client\ap_client_main.cpp:572)
> 0012fef8 0050ed56 00400000 00000000 00272def 0000000a
> ap_5.05_win_x86_SSE3_r446_DEBUG!WinMain+0x0
> (d:\r\seti6\ap\client\ap_client_main.cpp:141)
> 0012ff88 76e0d0e9 7ffdf000 0012ffd4 773919bb 7ffdf000
> ap_5.05_win_x86_SSE3_r446_DEBUG!__tmainCRTStartup+0x1b
> (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:263)
> 0012ff94 773919bb 7ffdf000 74288bf4 00000000 00000000
> kernel32!BaseThreadInitThunk+0x0
> (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:263)
> 0012ffd4 7739198e 0050edc1 7ffdf000 00000000 00000000
> ntdll!RtlInitializeExceptionChain+0x0
> (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:263)
> 0012ffec 00000000 0050edc1 7ffdf000 00000000 78746341
> ntdll!RtlInitializeExceptionChain+0x0
> (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:263)
>
> static inline char* realloc_aux(char* p, int len) {
> #ifdef _WIN32
>      if (_msize(p)>= len) return p;
>      return (char*) realloc(p, len*2);
> #else
>      return (char*) realloc(p, len);
> #endif
> }
>
> Any ideas why  _msize(p) generates exception here? ...
>
> ----- Original Message -----
> From: "Rom Walton"<[email protected]>
> To: "Raistmer"<[email protected]>;<[email protected]>
> Sent: Monday, August 02, 2010 4:06 AM
> Subject: RE: [boinc_dev] Incorrect function when running under BOINC
>
>
> Odd, assuming that your variant of the app is setup for static CRT
> compilation it should be working.
>
> The only time I've seen that error before is when a different
> function(Entry Point), from the default name, is specified to launch
the
> application.
>
> Basically when a non-standard entry point is used, the CRT cannot
> prepare the process for the likes of malloc et al.
>
> ----- Rom
>
> -----Original Message-----
> From: Raistmer [mailto:[email protected]]
> Sent: Sunday, August 01, 2010 5:59 PM
> To: Raistmer; Rom Walton; [email protected]
> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>
> And now it fails with "CRT uninitialized" popup box even in offline
> mode.
> It's regress, not progress :/
> What BOINC libs should be used?
>
> ----- Original Message -----
> From: "Raistmer"<[email protected]>
> To: "Raistmer"<[email protected]>; "Rom Walton"<[email protected]>;
> <[email protected]>
> Sent: Monday, August 02, 2010 1:47 AM
> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>
>
>> I linked vs libboinc_staticcrt.lib and libboincapi_staticcrt.lib
> compiled
>>from current trunk.
>> Now app not only fails, it summons exception data gathering window
> (under
>> Vista) and prompts to launch debugger.
>> In call stack place of failure is in malloc function now %) Same
BOINC
> API
>> call as before...
>>
>> ----- Original Message -----
>> From: "Raistmer"<[email protected]>
>> To: "Rom Walton"<[email protected]>;<[email protected]>
>> Sent: Monday, August 02, 2010 1:17 AM
>> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>>
>>
>>> It was 6.10.56 tag.
>>> Will try with trunk then.
>>>
>>> ----- Original Message -----
>>> From: "Rom Walton"<[email protected]>
>>> To: "Raistmer"<[email protected]>;<[email protected]>
>>> Sent: Monday, August 02, 2010 12:26 AM
>>> Subject: RE: [boinc_dev] Incorrect function when running under BOINC
>>>
>>>
>>> How recent is the BOINC API you are building with?  Trunk or some
> other
>>> branch?  If some other branch you should switch to using trunk.
>>>
>>> We have had problems in the past with memset calls zeroing out
> complex
>>> data types like std::string and std::vector in the HOST_INFO
> structure.
>>>
>>> ----- Rom
>>>
>>> -----Original Message-----
>>> From: Raistmer [mailto:[email protected]]
>>> Sent: Sunday, August 01, 2010 4:05 PM
>>> To: Rom Walton; [email protected]
>>> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>>>
>>> Yes, call stack presents:
>>> But it's inside BOINC API call...
>>> 0012ed40 004b8ed3 00000000 00000000 00000000 00000000
>>> ntdll!DbgBreakPoint+0x0
>>>
>>> 0012ed58 004e4f2c 00000000 0012ed88 0012ed78 004e4e53
>>> MB_6.10_win_SSE3_ATI_r103!_invalid_parameter_noinfo+0xc
>>> (f:\dd\vctools\crt_bld\self_x86\crt\src\invarg.c:125)
>>>
>>> 0012ed68 004e4e53 00000000 0012ed88 0012ed90 004e4dc3
>>>
>
MB_6.10_win_SSE3_ATI_r103!std::_Vector_const_iterator<_BOINC_MESSAGEMONI
>>> TORENTRY
>>> *,std::allocator<_BOINC_MESSAGEMONITORENTRY *>  >::operator+=+0x14
>>> (p:\bin\vs9\vc\include\vector:160)
>>>
>>> 0012ed78 004e4dc3 00000000 0012eda8 00000000 0170ff68
>>>
> MB_6.10_win_SSE3_ATI_r103!std::_Vector_iterator<_BOINC_THREADLISTENTRY
>>> *,std::allocator<_BOINC_THREADLISTENTRY *>  >::operator+=+0x0
>>> (p:\bin\vs9\vc\include\vector:376)
>>>
>>> 0012ed90 004e48cd 0012eddc 00000000 00000000 005315c0
>>>
>
MB_6.10_win_SSE3_ATI_r103!std::_Vector_iterator<_BOINC_MESSAGEMONITORENT
>>> RY
>>> *,std::allocator<_BOINC_MESSAGEMONITORENTRY *>  >::operator++0xc
>>> (p:\bin\vs9\vc\include\vector:382)
>>>
>>> 0012edbc 004e477c 0012eddc 00000000 00000000 0012ee10
>>> MB_6.10_win_SSE3_ATI_r103!std::vector<_BOINC_THREADLISTENTRY
>>> *,std::allocator<_BOINC_THREADLISTENTRY *>  >::insert+0x1b
>>> (p:\bin\vs9\vc\include\vector:878)
>>>
>>> 0012edf4 004ef52d 0012ee10 6a5888c6 001b9860 0012f078
>>> MB_6.10_win_SSE3_ATI_r103!std::vector<_BOINC_MESSAGEMONITORENTRY
>>> *,std::allocator<_BOINC_MESSAGEMONITORENTRY *>  >::push_back+0x0
>>> (p:\bin\vs9\vc\include\vector:824)
>>>
>>> 0012f24c 004eb0d6 0012f6b0 00530a30 20202020 706f633c
>>> MB_6.10_win_SSE3_ATI_r103!COPROCS::parse+0x0
>>> (d:\r\seti6\boinc\lib\coproc.cpp:140)
>>>
>>> 0012f664 004e0762 0012f6b0 00000000 6a58806a 0042005c
>>> MB_6.10_win_SSE3_ATI_r103!HOST_INFO::parse+0x0
>>> (d:\r\seti6\boinc\lib\hostinfo.cpp:111)
>>>
>>> 0012fae0 004f151a 00525ed8 005300e8 00525ed8 00525e98
>>> MB_6.10_win_SSE3_ATI_r103!parse_init_data_file+0x0
>>> (d:\r\seti6\boinc\lib\app_ipc.cpp:297)
>>>
>>> 0012faf8 0040d74b 00525eb8 00525e98 0170f7b0 00000000
>>> MB_6.10_win_SSE3_ATI_r103!_boinc_parse_init_data_file+0x0
>>> (d:\r\seti6\boinc\lib\app_ipc.cpp:297)
>>>
>>> ----- Original Message -----
>>> From: "Rom Walton"<[email protected]>
>>> To: "Raistmer"<[email protected]>;<[email protected]>
>>> Sent: Sunday, August 01, 2010 11:28 PM
>>> Subject: RE: [boinc_dev] Incorrect function when running under BOINC
>>>
>>>
>>> Well 0x80000003 is what error code is returned when an application
>>> asserts, which is different than the original error code.
>>>
>>> Both of these lines are generated by the C Runtime Library and
should
> be
>>> properly filled out by rebuilding the application in the debug
>>> configuration.
>>> ERROR: Invalid parameter detected in function (null). File: (null)
> Line:
>>> 0?
>>> ERROR: Expression: (null)?
>>>
>>> However if the app did assert and returned 0x80000003 it should have
>>> also returned a crash report which should include the call stacks of
> all
>>> the threads which should give you the same information that the two
>>> ERROR lines above would give.
>>>
>>> ----- Rom
>>>
>>> -----Original Message-----
>>> From: Raistmer [mailto:[email protected]]
>>> Sent: Sunday, August 01, 2010 3:12 PM
>>> To: Raistmer; Rom Walton; [email protected]
>>> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>>>
>>> Now I advanced further and got error in BOINC function call:
>>>
>>> Code:
>>>     // Initialize BOINC
>>>     //
>>> fprintf(stderr,"before boinc_parse_init_data_file\n");
>>>     boinc_parse_init_data_file();
>>> fprintf(stderr,"before boinc_get_init_data\n");
>>>
>>> STDERR:
>>> <![CDATA[
>>> <message>
>>> ????????? ?????? ??????????? (0x80000003) - exit code -2147483645
>>> (0x80000003)
>>> </message>
>>> <stderr_txt>
>>> after diagnstic init?
>>> before boinc_parse_init_data_file?
>>> ERROR: Invalid parameter detected in function (null). File: (null)
> Line:
>>> 0?
>>> ERROR: Expression: (null)?
>>>
>>> What  could be wrong there?
>>>
>>> ----- Original Message -----
>>> From: "Raistmer"<[email protected]>
>>> To: "Raistmer"<[email protected]>; "Rom Walton"<[email protected]>;
>>> <[email protected]>
>>> Sent: Saturday, July 24, 2010 10:31 PM
>>> Subject: Re: [boinc_dev] Incorrect function when running under BOINC
>>>
>>>
>>>> Well, i added few fprintfs just after init diagnostics, boinc init
>>> call
>>>> and so on.
>>>> there is nothing in stderr again. Probably it means very first
boinc
>>> api
>>>> call, init diagnostic, failed and caused exit(1) call. Any thoughts
>>> why it
>>>> could fail?
>>>>
>>>> ----- Original Message -----
>>>> From: "Raistmer"<[email protected]>
>>>> To: "Rom Walton"<[email protected]>;<[email protected]>
>>>> Sent: Tuesday, July 20, 2010 12:12 PM
>>>> Subject: Re: [boinc_dev] Incorrect function when running under
BOINC
>>>>
>>>>
>>>>> Thanks!
>>>>> What I found:
>>>>>
>>>>> 0)
>>>>>     if (err != CL_SUCCESS) {
>>>>>         std::cerr<<  "ERROR: "<<   name<<  " ("<<  err<<  ")"<<
>>>>> std::endl;
>>>>>         exit(1);
>>>>>     }
>>>>> Not th case, no "ERROR" in stderr.
>>>>> 1)
>>>>>       fprintf(stderr, "bad arg: %s\n", argv[i]);
>>>>>       usage();
>>>>>       exit(1);
>>>>> Not the case cause no "bad arg" in stderr
>>>>>
>>>>> 2)
>>>>>     PowerSpectrum = (float*) calloc_a(NumPointsInChunk,
> sizeof(float),
>>>>> MEM_ALIGN);
>>>>>     if (PowerSpectrum == NULL) {
>>>>>       printf("Could not allocate Power Spectrum array in
>>>>> v_BaseLineSmooth()\n");
>>>>>       exit(1);
>>>>>     }
>>>>>
>>>>> can't say if  it's what I looking for cause additional output goes
> to
>>>
>>>>> stdout
>>>>> instead of stderr, need to rebuild to check...
>>>>>
>>>>> But if it's very place, why buffer allocation fails under BOINC
> while
>>> it
>>>>> goes OK w/o it?
>>>>>
>>>>> ----- Original Message -----
>>>>> From: "Rom Walton"<[email protected]>
>>>>> To: "Raistmer"<[email protected]>;<[email protected]>
>>>>> Sent: Tuesday, July 20, 2010 11:47 AM
>>>>> Subject: RE: [boinc_dev] Incorrect function when running under
> BOINC
>>>>>
>>>>>
>>>>> Search the source code of the app for exit(1) or
exit(EXIT_FAILURE)
>>>>>
>>>>> ----- Rom
>>>>>
>>>>> -----Original Message-----
>>>>> From: [email protected]
>>>>> [mailto:[email protected]] On Behalf Of Raistmer
>>>>> Sent: Tuesday, July 20, 2010 3:41 AM
>>>>> To: [email protected]
>>>>> Subject: [boinc_dev] Incorrect function when running under BOINC
>>>>>
>>>>> When running offline app works OK, but being launched by BOINC it
>>> fails
>>>>> with
>>>>> "incorrect function exit code 0x1"
>>>>> Stderr:
>>>>> <stderr_out>
>>>>> <![CDATA[
>>>>> <message>
>>>>> =ooo?y?  ??yu?o . (0x1) - exit code 1 (0x1)
>>>>> </message>
>>>>> ]]>
>>>>> </stderr_out>
>>>>>
>>>>> No additional info available.
>>>>> Maybe there are some known possible reasons of such behavior?
> Someone
>>>>> encountered such situation?
>>>>>
>>>>> _______________________________________________
>>>>> boinc_dev mailing list
>>>>> [email protected]
>>>>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>>>>> To unsubscribe, visit the above URL and
>>>>> (near bottom of page) enter your email address.
>>>>>
>>>>> _______________________________________________
>>>>> boinc_dev mailing list
>>>>> [email protected]
>>>>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>>>>> To unsubscribe, visit the above URL and
>>>>> (near bottom of page) enter your email address.
>>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> boinc_dev mailing list
>>> [email protected]
>>> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
>>> To unsubscribe, visit the above URL and
>>> (near bottom of page) enter your email address.
>>>
>>
>>
> _______________________________________________
> boinc_dev mailing list
> [email protected]
> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
> To unsubscribe, visit the above URL and
> (near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to