<Dimension> elements in a constrained DMR sometimes have 'random' order
Reported by: firstname.lastname@example.org
We have a report from email@example.com that four of the DMR tests are failing for him when building libdap on travis. He has these failures with both libdap 3.18.0 and 3.18.1
I'm building with libxml2 2.9.4.
You can see the entire build output at https://travis-ci.org/nansencenter/libdap4-feedstock
Attached is the DMRTest log. Here is an excerpt showing the error. Note the order of the Dimension elements in the first and second XML docs:
According to StackOverflow, element order is significant and libxml2 preserves it, so this is a bug.
I learned two things about this issue recently:
It is a function of the compilation options with gcc. when using -O2, the issues does not show up, but with -O0 it does (which means it shows up with the new ASan build feature I'm working on in HYRAX-601.
It seems to show up only with DAP4 functions, not CEs.
Here's what's in the function evaluator code that I suspect is the source of the problem:
Using the STL set container.