[MacPorts] #56773: vtk 7.1.1 +hdf5: Illegal hardware instruction when using Xdmf3Reader

MacPorts noreply at macports.org
Wed Jul 4 18:28:14 UTC 2018


#56773: vtk 7.1.1 +hdf5: Illegal hardware instruction when using Xdmf3Reader
-----------------------------+--------------------
 Reporter:  rubendibattista  |      Owner:  (none)
     Type:  defect           |     Status:  new
 Priority:  Normal           |  Milestone:
Component:  ports            |    Version:  2.5.2
 Keywords:                   |       Port:  vtk
-----------------------------+--------------------
 System Information:
 OSX 10.13.5
 Apple Clang 9.1.0


 Hello,
 I opened a PR on Github [https://github.com/macports/macports-
 ports/pull/2123] providing +hdf5 variant to vtk in order to have the Xdmf3
 file readers. The compilation proceeds as expected, no errors are raised
 (you can see the log attached in the Pull Request).

 The problem is that when I try to use one of the Xdm3Readers, I receive a
 "Illegal Hardware Instruction" error that seems to trace back to the
 Xdm3RectilinearGrid destructor in VTK, but I don't know if it's a VTK bug
 w/ Apple Clang or else...

 Here a MWE to reproduce:

 {{{
 #include "vtkNew.h"
 #include "vtkXdmf3Reader.h"

 int main(int argc, char** argv) {

     vtkNew<vtkXdmf3Reader> reader;

     reader->SetFileName("scalar.xmf");
     reader->DebugOn();
     reader->Update();

 }
 }}}

 The scalar.xmf data can be retrieved from: [https://github.com/macports
 /macports-ports/files/2160224/scalar-data.tar.gz].

 This is the Backtrace from lldb:

 {{{
 (lldb) run
 Process 10472 launched:
 '/Users/***/git/x/HG/examples/c++/rayleigh/build/rayleigh' (x86_64)
 Debug: In /opt/local/var/macports/build/_Users_***_git_macports-
 ports_graphics_vtk/vtk/work/VTK-7.1.1/Common/Core/vtkObject.cxx, line 861
 vtkXdmf3Reader (0x109218d80): Registered by vtkCompositeDataPipeline
 (0x109219ff0), ReferenceCount = 2

 Process 10472 stopped
 * thread #1, queue = 'com.apple.main-thread', stop reason =
 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
     frame #0: 0x00000001044f383b
 libvtkxdmf3.dylib`XdmfRectilinearGrid::~XdmfRectilinearGrid() + 47
 libvtkxdmf3.dylib`XdmfRectilinearGrid::~XdmfRectilinearGrid:
 ->  0x1044f383b <+47>: ud2
     0x1044f383d <+49>: nop
     0x1044f383e <+0>:  pushq  %rbp
     0x1044f383f <+1>:  movq   %rsp, %rbp
 Target 0: (rayleigh) stopped.
 (lldb) bt
 * thread #1, queue = 'com.apple.main-thread', stop reason =
 EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
   * frame #0: 0x00000001044f383b
 libvtkxdmf3.dylib`XdmfRectilinearGrid::~XdmfRectilinearGrid() + 47
     frame #1: 0x00007ffeefbfef20
     frame #2: 0x00000001044f3854
 libvtkxdmf3.dylib`XdmfRectilinearGrid::~XdmfRectilinearGrid() + 22
     frame #3: 0x00000001044f38ab
 libvtkxdmf3.dylib`XdmfRectilinearGrid::~XdmfRectilinearGrid() + 15
     frame #4: 0x0000000104f1c2ed
 libXdmfCore.dylib`boost::detail::shared_count::~shared_count() + 45
     frame #5: 0x0000000104eeac46
 libXdmfCore.dylib`std::__1::__tree<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, std::__1::__map_value_compare<_xmlNode*,
 std::__1::__value_type<_xmlNode*, boost::shared_ptr<XdmfItem> >,
 std::__1::less<_xmlNode*>, true>,
 std::__1::allocator<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> > >
 >::destroy(std::__1::__tree_node<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, void*>*) + 50
     frame #6: 0x0000000104eeac3d
 libXdmfCore.dylib`std::__1::__tree<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, std::__1::__map_value_compare<_xmlNode*,
 std::__1::__value_type<_xmlNode*, boost::shared_ptr<XdmfItem> >,
 std::__1::less<_xmlNode*>, true>,
 std::__1::allocator<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> > >
 >::destroy(std::__1::__tree_node<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, void*>*) + 41
     frame #7: 0x0000000104eeac31
 libXdmfCore.dylib`std::__1::__tree<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, std::__1::__map_value_compare<_xmlNode*,
 std::__1::__value_type<_xmlNode*, boost::shared_ptr<XdmfItem> >,
 std::__1::less<_xmlNode*>, true>,
 std::__1::allocator<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> > >
 >::destroy(std::__1::__tree_node<std::__1::__value_type<_xmlNode*,
 boost::shared_ptr<XdmfItem> >, void*>*) + 29
     frame #8: 0x0000000104eea377
 libXdmfCore.dylib`XdmfCoreReader::XdmfCoreReaderImpl::closeFile() + 31
     frame #9: 0x0000000104eea44b
 libXdmfCore.dylib`XdmfCoreReader::readItems(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> > const&) const +
 65
     frame #10: 0x0000000104eea777
 libXdmfCore.dylib`XdmfCoreReader::read(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> > const&) const +
 27
     frame #11: 0x00000001044f2912
 libvtkxdmf3.dylib`XdmfReader::read(std::__1::basic_string<char,
 std::__1::char_traits<char>, std::__1::allocator<char> > const&) const +
 14
     frame #12: 0x000000010444aa32
 libvtkIOXdmf3-7.1.1.dylib`vtkXdmf3Reader::Internals::Init(char const*,
 bool) + 2224
     frame #13: 0x0000000104443ffe
 libvtkIOXdmf3-7.1.1.dylib`vtkXdmf3Reader::Internals::PrepareDocument(vtkXdmf3Reader*,
 char const*, bool) + 96
     frame #14: 0x0000000104443ecf
 libvtkIOXdmf3-7.1.1.dylib`vtkXdmf3Reader::RequestDataObject(vtkInformationVector*)
 + 57
     frame #15: 0x0000000107cdf00f
 libvtkCommonExecutionModel-7.1.1.dylib`vtkExecutive::CallAlgorithm(vtkInformation*,
 int, vtkInformationVector**, vtkInformationVector*) + 69
     frame #16: 0x0000000107cd49fe
 libvtkCommonExecutionModel-7.1.1.dylib`vtkCompositeDataPipeline::ExecuteDataObject(vtkInformation*,
 vtkInformationVector**, vtkInformationVector*) + 304
     frame #17: 0x0000000107cd944e
 libvtkCommonExecutionModel-7.1.1.dylib`vtkDemandDrivenPipeline::ProcessRequest(vtkInformation*,
 vtkInformationVector**, vtkInformationVector*) + 166
     frame #18: 0x0000000107cf601d
 libvtkCommonExecutionModel-7.1.1.dylib`vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation*,
 vtkInformationVector**, vtkInformationVector*) + 543
     frame #19: 0x0000000107cd9968
 libvtkCommonExecutionModel-7.1.1.dylib`vtkDemandDrivenPipeline::UpdateInformation()
 + 48
     frame #20: 0x0000000107cf6438
 libvtkCommonExecutionModel-7.1.1.dylib`vtkStreamingDemandDrivenPipeline::Update(int,
 vtkInformationVector*) + 36
     frame #21: 0x0000000100021d1f rayleigh`main(argc=1,
 argv=0x00007ffeefbff4e8) at rayleigh.cpp:10
     frame #22: 0x00007fff7c908015 libdyld.dylib`start + 1
     frame #23: 0x00007fff7c908015 libdyld.dylib`start + 1
 }}}

 The readers are working if the xdmf files does not include actual data via
 HDF5...

-- 
Ticket URL: <https://trac.macports.org/ticket/56773>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list