[ITK] Win64 Visual Studio 12 segfaults

Bradley Lowekamp blowekamp at mail.nih.gov
Sun Feb 8 16:05:12 EST 2015


Hello,

My concern with the align(16) suggestion is that for the FixedArray and Index classes these are frequently specified of size 3. When the type used is a double or a 64-bit integer the size would be 24 bytes. If you make an array of a data structure which is 24-bytes but as a 16-byte alignment, I believe you will get gaps in the array between elements. This may have unintended consequences for serialization and other method in ITK which assume the FixedArray is a POD that is tightly packed.

Brad

On Feb 8, 2015, at 3:50 PM, Niels Dekker <niels-xtk at xs4all.nl> wrote:

> Thanks, Bradley! I'm glad to hear our workarounds have also solved the SimpleITK VS12/Win64 test failures. You know, I didn't expect our workarounds to fix those "SEH" issues.  :-)
> 
> Remember that Marian (Nekto89) suggested a different workaround for those segfaults, here at http://public.kitware.com/pipermail/community/2015-January/008086.html -- adding __declspec(align(16)) to those for classes that trigger the segfaults. Gratian Lup (Microsoft Visual C++ Team) wrote on February 3rd that he thinks the workaround by Nekto89 is a good one: http://connect.microsoft.com/VisualStudio/feedbackdetail/view/1060166  However, so far it seems to me that our current workarounds (as committed to ITK), are good enough. I'm hopeful that no further code changes with respect to those segfaults are needed.
> 
> Kind regards, Niels
> 
> Bradley Lowekamp wrote on February 6, 2015:
>> Just to follow up, the SimpleITK VS12 build looks OK too:
>> https://open.cdash.org/buildSummary.php?buildid=3682633
>> 
>> All those Deconvolution filters now are OK and not getting the SEH failure any more.
>> 
>> Brad
>> 
>> On Feb 4, 2015, at 10:57 AM, Matt McCormick <matt.mccormick at kitware.com> wrote:
>> 
>>> +1!
>>> 
>>> VS2013 has been moved to our regular Nightly Expected section on the
>>> dashboard, which is a great achievement!
>>> 
>>> We can do a release of 4.7.1 around Monday 2/16, and these patches
>>> will be included.
>>> 
>>> Thanks!
>>> Matt
>>> 
>>> On Wed, Feb 4, 2015 at 8:53 AM, Lowekamp, Bradley (NIH/NLM/LHC) [C]
>>> <blowekamp at mail.nih.gov> wrote:
>>>> Thank you Marius and Niels,
>>>> 
>>>> Outstanding work. The VS12 dashboard machine has all it's tests passing last night!
>>>> 
>>>> https://open.cdash.org/buildSummary.php?buildid=3680901
>>>> 
>>>> Brad
>>>> 
>>>> ________________________________________
>>>> From: Niels Dekker [niels-xtk at xs4all.nl]
>>>> Sent: Monday, February 02, 2015 9:45 AM
>>>> To: community at itk.org
>>>> Subject: Re: [ITK] Win64 Visual Studio 12 segfaults
>>>> 
>>>> Marius Staring and I have just placed three patches onto Gerrit, that
>>>> should fix both the segfaults and the internal compiler errors of Visual
>>>> Studio 2013 Win64. Each of the three patches can be committed onto the ITK
>>>> GIT master independently, but I think the segfaults patch have the highest
>>>> priority. Fortunately, it already has a "+1", thank you, Bradley!
>>>> 
>>>> "BUG: workaround for 64bit VS2013 Release segfaults"
>>>> http://review.source.kitware.com/#/c/19080/
>>>> 
>>>> "COMP: workaround for 64bit VS2013 Release ICE"
>>>> http://review.source.kitware.com/#/c/19081/
>>>> 
>>>> "WIP: COMP: workaround for 64bit VS2013 Release ICEs"
>>>> http://review.source.kitware.com/#/c/19082/
>>>> 
>>>> As you can see, there appear two ways to fix the ICEs (internal compiler
>>>> errors): either by some small modification of a 'for' loop (currently only
>>>> needed in "itkQuasiNewtonOptimizerv4.hxx", review 19081), or by avoiding
>>>> narrowing integer conversions, from 64-bits to 32-bits, when calling
>>>> vnl_vector::operator[] (review 19082).
>>>> 
>>>> The change of the parameter-type of vnl_vector::operator[] may have
>>>> implications outside of ITK as well, and it could be part of a larger
>>>> effort to improve 64-bits support, so we marked it "WIP"
>>>> (work-in-progress). However, personally I think the commit itself (review
>>>> 19082) is already a step in the right direction, and clearly it already
>>>> avoids those ICE's.
>>>> 
>>>> 
>>>> Kind regards, Niels
>>>> --
>>>> Niels Dekker
>>>> Scientific programmer
>>>> LKEB, Leiden University Medical Center
> 
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/mailman/listinfo/community



More information about the Community mailing list