Can you try the attached patch? It should apply cleanly on r4840.
It works for me, but I want to be sure that it fixes your issue as well - 
I'm not really familiar with ex23. If it works, I'll check that in.

Thanks,
--
David Andrs



David Knezevic <[email protected]> wrote on 09/07/2011 09:47:31 
AM:

> OK, great, thanks for clarifying.
> 
> Dave
> 
> 
> On 09/07/2011 11:42 AM, David Andrs wrote: 
> 
> Hi! 
> 
> I was able to replicate this on a linux platform (it works on my Mac). 
> 
> The problem here is, that we are writing an empty array and because 
> of that this line fails because it is accessing zeroth element of 
> that vector : 
> return xdr_vector(x, (char*) &a[0], length, sizeof(T), 
>                             xdr_translator<T>()); 
> 
> This seems to be catched by the safe guards of gcc 4.6.1. (which I 
> have on that linux machine), but not by 4.2.1 which is on my Mac. 
> 
> I'll make a patch to fix this problem. 
> 
> Thanks for reporting, 
> --
> David Andrs
> 
> 
> David Knezevic <[email protected]> wrote on 09/06/2011 08:13:17 
PM:
> 
> > I updated to the svn head and I'm now getting an error in ex23 in 
debug 
> > mode. I traced it back to r4827:
> > 
> > 
------------------------------------------------------------------------
> > r4827 | andrsd | 2011-08-30 15:18:24 -0400 (Tue, 30 Aug 2011) | 1 line
> > 
> > Storing subdomain ids in and XDA solution file
> > 
------------------------------------------------------------------------
> > 
> > The problem seems to arise in src/systems/rb_evaluation.C:986 (the 
stack 
> > trace is below), where I added an explicit call to write_header a 
while 
> > back. Any thoughts on the right fix here?
> > 
> > Thanks,
> > Dave
> > 
> > 
> > 
> > 
> > Writing out the basis functions...
> > /usr/include/c++/4.5/debug/vector:272:error: attempt to subscript 
container
> >      with out-of-bounds index 0, but container only holds 0 elements.
> > 
> > Objects involved in the operation:
> > sequence "this" @ 0x0x7fffffffd210 {
> >    type = NSt7__debug6vectorItSaItEEE;
> > }
> > 
> > Program received signal SIGABRT, Aborted.
> > 0x00007ffff08cad05 in raise (sig=6) at 
> > ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> > 64    ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or 
directory.
> >      in ../nptl/sysdeps/unix/sysv/linux/raise.c
> > (gdb) bt
> > #0  0x00007ffff08cad05 in raise (sig=6) at 
> > ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> > #1  0x00007ffff08ceab6 in abort () at abort.c:92
> > #2  0x00007ffff0c8ec64 in __gnu_debug::_Error_formatter::_M_error() 
> > const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> > #3  0x00007ffff72be6d4 in std::__debug::vector<unsigned short, 
> > std::allocator<unsigned short> >::operator[] (
> >      this=0x7fffffffd210, __n=0) at 
/usr/include/c++/4.5/debug/vector:272
> > #4  0x00007ffff7782ab2 in libMesh::(anonymous 
> > namespace)::xdr_translate<unsigned short> (x=0xb57050, a=...)
> >      at src/utils/xdr_cxx.C:469
> > #5  0x00007ffff778aa02 in 
> > libMesh::Xdr::data<std::__debug::vector<unsigned short> > 
> > (this=0x7fffffffd6b0, a=...,
> >      comment=0xc940d8 "#     Subdomains, Variable \"u\", System 
> > \"RBConvectionDiffusion\"") at src/utils/xdr_cxx.C:612
> > #6  0x00007ffff76d8cc6 in libMesh::System::write_header 
(this=0x7e7a70, 
> > io=..., write_additional_data=false)
> >      at src/systems/system_io.C:1063
> > #7  0x00007ffff7675418 in 
> > libMesh::RBEvaluation::write_out_basis_functions (this=0x7fffffffd880, 

> > sys=..., directory_name=...,
> >      write_binary_basis_functions=true) at 
src/systems/rb_evaluation.C:986
> > #8  0x000000000044a92f in main (argc=1, argv=0x7fffffffe658) at 
ex23.C:174
> > 
> > 
> > 
> 
------------------------------------------------------------------------------
> > Using storage to extend the benefits of virtualization and iSCSI
> > Virtualization increases hardware utilization and delivers a new level 
of
> > agility. Learn what those decisions are and how to modernize your 
storage 
> > and backup environments for virtualization.
> > http://www.accelacomm.com/jaw/sfnl/114/51434361/
> > _______________________________________________
> > Libmesh-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/libmesh-devel
> 
> 
> 
------------------------------------------------------------------------------
> Using storage to extend the benefits of virtualization and iSCSI
> Virtualization increases hardware utilization and delivers a new level 
of
> agility. Learn what those decisions are and how to modernize your 
storage 
> and backup environments for virtualization.
> http://www.accelacomm.com/jaw/sfnl/114/51434361/
> 
> 
> _______________________________________________
> Libmesh-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-devel
> 
------------------------------------------------------------------------------
> Using storage to extend the benefits of virtualization and iSCSI
> Virtualization increases hardware utilization and delivers a new level 
of
> agility. Learn what those decisions are and how to modernize your 
storage 
> and backup environments for virtualization.
> http://www.accelacomm.com/jaw/sfnl/114/51434361/
> _______________________________________________
> Libmesh-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Attachment: 0001-Fixing-bug-in-writing-zero-length-vectors-in-XDA.patch
Description: Binary data

------------------------------------------------------------------------------
Using storage to extend the benefits of virtualization and iSCSI
Virtualization increases hardware utilization and delivers a new level of
agility. Learn what those decisions are and how to modernize your storage 
and backup environments for virtualization.
http://www.accelacomm.com/jaw/sfnl/114/51434361/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to