I was working on a MR for moving the text2pcap/text_import debug over to the ws_log features and I ran into a seemingly bizarre problem. Setting the log level to a non-default value causes the pytest procedures to fail with heap corruption on the Gitlab Windows CI.
Some of the text2pcap pytests depend on grepping through the stderr output for some of the debug information. Those tests originally passed the -d flag to text2pcap, so I replaced it with setting the log level to "debug" (and later "info") with the standard "--log-level debug" argument read by ws_log_parse_args().
On Windows (but not Linux or MacOS, not clang or gcc, nor with either using ASAN), those tests which set the log level (and only those tests) started failing with a return code of 0xc0000374, heap corruption.
As I looked into it closer, all the debug information that those tests used ought to be logged at "warning" or "message," which are at the default log level, so I was able to remove that flag, and then it passed.
It looks like it might be related to some of the things discussed here, though I'm not 100% sure because I'm not a Windows programmer:
There's some kind of issue seen in Python 3.8 and higher, with Windows 10 build 1809 (which is a long term support build that is what the CI build server uses), with UTF-8 locales, with log systems that get system locale information and print dates, the Windows 10 Universal CRT, and heap corruption.
It might have something to do with the tests spawning a lot of subprocesses in parallel and setting the log level to a different value eventually calling free_log_filter() from ws_log_set_debug_filter().
John Thacker