-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.vtu
file parsing errors after libexpat1
upgrade (Ubuntu 22.04, 23.10, 24.04)
#249
Comments
The following could be added to CI workflows to perform this downgrade just from this exact version, for workflows where The alternative when this is using a container is untested, but the upgrade will only occur if the offending package is installed. Non debian-based workflows would need another condition adding in place. - name: Downgrade libexpat
if: ${{ (runner.os == 'Linux' && matrix.os == 'ubuntu-22.04') || job.container != null }}
run: |
if dpkg -l | grep libexpat1-dev | grep 2.4.7-1ubuntu0.3; then
sudo apt-get install -y --allow-downgrades libexpat1=2.4.7-1 libexpat1-dev=2.4.7-1
fi |
A few more relevant links to keep an eye on for fixes. It seems to be that paraview is going to need to be patched for
As this is effected by distribution specific patches/backports, it'll be hard to guard against / detect this programatically. Potenitally could detect it at cmake configuration time via |
Detection via I've pushed a crude first stab at this to $ cmake ..
...
CMake Error at CMakeLists.txt:403 (message):
.vtu parsing runtime error. probably bad libexpat1? @todo - helpful
message ERROR: In ./IO/XML/vtkXMLReader.cxx, line 467
vtkXMLUnstructuredGridReader (0x55f7d7f840d0): Error parsing input file.
ReadXMLInformation aborting.
ERROR: In ./Common/ExecutionModel/vtkExecutive.cxx, line 781
vtkCompositeDataPipeline (0x55f7d7f84e50): Algorithm
vtkXMLUnstructuredGridReader(0x55f7d7f840d0) returned failure for request:
vtkInformation (0x55f7d7f8b5f0)
Debug: Off
Modified Time: 85
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
ALGORITHM_AFTER_FORWARD: 1
FORWARD_DIRECTION: 0
-- Configuring incomplete, errors occurred! This took a lot more effort than I'd hoped, but something to conisder / discuss if this wants taking further. Ideally VTK/paraview will be patched where required and this won't actually be neccessary long term. Commit 7003517 includes the crude (incomplete but functional) demonstration. |
Todo from in-meeting discussion.
|
This will check for ubuntu22.04 with up to date libexpat1 nightly, leaving a comment when this passes (i.e. #249 has been fixed by libexpat1/vtk/paraview changes upstream)
Hi,
(The full job output is here.) |
The apt cache has been purged by the preceeding line, so you'll need to add an |
@bdevans I've submitted a PR which adds the missing |
Good spot - thanks! |
The upstream VTK issue has been marked as closed on 2024-04-19 by https://gitlab.kitware.com/vtk/vtk/-/commit/db8f9efca220c9d16a30958e179abae3379d0011 If or when this gets backported to ubuntu 22.04's repositories (and other effected distributions, including 24.04 and 23.10) then .vtu files containing |
libexpat1
upgrade.vtu
file parsing errors after libexpat1
upgrade (Ubuntu 22.04, 23.10, 24.04)
I've been looking at this. Specifically using Ubuntu 22.04 with the newer libexpat
The next failure poses a problem. In reconstructing heart_decimation.vtu we should run TestXmlMeshWriters::TestVtkMeshWriterWithData(). However, with the newer libexpat this test writes a file that it cannot immediately read back! |
Current plan decided at the Sheffield in person event is to hold off on this until the end of July, hoping that this will be backported upstream to the Ubuntu 22.04 repository and fixed in the 24.04 repository by then. |
Due to security fixes for
libexpat1
/libexpat-dev
(between 2024-03-12 and 2024-03-18), tests which require reading.vtu
files which contain binary data now fail for up to date ubuntu 22.04 users (and potentially other distributions too).This has been fixed upstream by VTK (db8f9efc) but this has not yet been backported to Ubuntu.
E.g. for the Continuous test suite
A short-term workaround for ubuntu 22.04 users is to downgrade
libexpat1
andlibexpat1-dev
packages, however, this is not an ideal soluation as it removes vulnerability patches:23.10 (Mantic) users may be able to downgrade to
2.5.0-2
(untested).24.04 users do not appear to have an older version to downgrade to.
As of #255, this workaround has been applied to CI for 22.04 based workflows and containers.
An additional CI workflow has been set up to run every night without this patch, to monitor when this is resolved upstream (likely via a paraview/vtk update?). Once this new workflow passes, the github bot will leave a comment on this issue stating as much, before disabling the workflow.
When this occurs we can:
libexpat1
downgrade #255, using up to datelibexpat1
.libexpat1
andlibexpat1-dev
onnp3
.apt-mark unhold libexpat1 libexpat1-dev
Relevant issues:
Ubuntu 22.04 CI failures starrted to occur between 2024-03-12 and 2024-03-18.
This is due to a
libexpat1
update to2.4.7-1ubuntu0.3
, and has been reported upstream.https://bugs.launchpad.net/ubuntu/+source/expat/+bug/2058415
Locally, downgrading to
2.4.7-1
has resolved these issues for now, via:But this will also need holding/pinning to avoid being re-upgraded (e.g.
apt-mark hold libexpat1 libexpat1-dev
).This could be applied on CI, as a short term workaround, but the issue will still be present for other Ubuntu 22.04 users until this is fixed upstream.
For example
TestQuardraticMesh
fails as follows:I've managed to narrow this down to the upgrade of either
libexpat1-dev
orlibexpat1
, as I had an updated and an not-updated Ubuntu 22.04 machine available (with ~100 packge updates difference).from
apt list --upgradable
:After updating these packages via
sudo apt install libexpat1-dev libexpat1
and performing a clean build the following test failures then occur:The text was updated successfully, but these errors were encountered: