On 1/18/22 14:05, Michal Prívozník wrote: > On 1/18/22 13:57, Andrea Bolognani wrote: >> On Tue, Jan 18, 2022 at 12:30:30PM +0100, Michal Prívozník wrote: >>> On 1/18/22 11:14, Andrea Bolognani wrote: >>>> These changes seem to have made ASAN very unhappy, see >>>> >>>> https://gitlab.com/MichalPrivoznik/libvirt/-/jobs/1985244739 >>>> https://gitlab.com/MichalPrivoznik/libvirt/-/jobs/1985244740 >>>> >>>> Tim, do you have any idea why that would be the case? My uneducated >>>> guess is that the environment needed by ASAN is somehow lost when the >>>> dnsmasqmock.py script is called, but I'm unfamiliar with how these >>>> tools actually work. >>> >>> [...] I >>> could mock virFindFileInPath() just like I am now, except let it return >>> a predictable path (say /usr/sbin/dnsmasq) and then use >>> virFileWrapper...() to redirect /usr/sbin/ to abs_srcdir. >>> >>> Alternative to all of this is to keed virCommandSetDryRun() just like I >>> had in one of previous patches. Remind me please, what was the issue >>> with that? >> >> The Python script approach seemed simpler, but in light of this issue >> I guess that argument has gone completely out of the window :) >> >> Can you please try a version of this series with your original >> dnsmasq mocking approach in CI and see whether ASAN is happy with it? >> If so, we can just go ahead with that one. >> > > Will do. Although, since virCommandRun() wouldn't actually execute > anything I don't expect ASAN to raise any issues. Meanwhile, I'm testing > the approach I've outlined: > > https://gitlab.com/MichalPrivoznik/libvirt/-/pipelines/450382098 > > Let's see how it runs. Aaand I have the results: failed to create the fake capabilities: internal error: Child process (LC_ALL=C LD_PRELOAD=/builds/MichalPrivoznik/libvirt/build/tests/libvirdnsmasqmock.so PATH=/builds/MichalPrivoznik/libvirt/build/tests:/usr/libexec/ccache-wrappers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/bad-test-used-env-home /usr/local/sbin/dnsmasqmock.py --version) unexpected exit status 127: /usr/bin/env: symbol lookup error: /builds/MichalPrivoznik/libvirt/build/tests/../src/libvirt.so.0: undefined symbol: __asan_option_detect_stack_use_after_return Why does dnsmasqmock.py try to link with libvirt.so.0 or why there's a missing symbol is beyond me. So let me just stick with what I suggested initially. Michal