Crash with big endian Plot3D file
Hello Paraview devs,
I have troubles processing big endian Plot3D files (generated on SPARC, big endian architecture) in an automated testing environment on Docker using pvpython
(on x86_64, little-endian architecture). The script opens the xyz
and the q
file, extracts data on a line, and writes it to a text file. The process crashes when creating the writer object:
pvpython: /build/paraview-lH8wFv/paraview-5.4.1+dfsg3/VTK/IO/Parallel/vtkMultiBlockPLOT3DReader.cxx:1464: virtual int vtkMultiBlockPLOT3DReader::RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*): Assertion `record.AtEnd(offset)' failed.
Aborted (core dumped)
Please find the different files (py
, xyz
, q
, and reference csv
) in the archive attached to the issue.
The crash depends on the Docker image used:
- It occurs with Ubuntu 18.04.1 LTS (using Paraview 5.4.1+dfsg3-1);
- It does not with OpenSUSE Leap 15.0 (using Paraview 5.4.1-lp150.2.20, which has not been compiled with MPI support, maybe this explains the difference).
The problem seems to be related to the VTK library. I found that the incriminated function RequestData was removed in v8.2.0.rc1. Could this be an explanation?
Little endian Plot3D files are fine (i.e. for the exact same data as the one provided in the archive), on the other hand. I cannot say if this is related to #17840 (closed).
Message initially posted on the Discourse forum.
Edit: by bad, I mismatched big/little endian in my original post. I fixed it.