Debug ASAN build
State: closed

- [ ] closes #xxxx (Replace xxxx with the GitHub issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.


Labels:

Comments:
When I try locally on main I see the following:

```
$ pip install -ve . --no-build-isolation --config-settings=setup-args="-Dbuildtype=debug" --config-settings editable-verbose=true --config-settings=builddir="asan" --config-settings=setup-args="-Db_sanitize=address"
$ ASAN_OPTIONS=detect_leaks=0 LD_PRELOAD=$(gcc -print-file-name=libasan.so) python -m pytest pandas/tests
+ /home/willayd/mambaforge/envs/pandas-dev/bin/ninja
[1/1] Generating write_version_file with a custom command
FAILED: _version_meson.py 
/home/willayd/mambaforge/envs/pandas-dev/bin/python3.10 ../generate_version.py -o _version_meson.py
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
ninja: build stopped: subcommand failed.
ImportError while loading conftest '/home/willayd/clones/pandas/pandas/conftest.py'.
../../mambaforge/envs/pandas-dev/lib/python3.10/site-packages/_pandas_editable_loader.py:268: in find_spec
    tree = self.rebuild()
../../mambaforge/envs/pandas-dev/lib/python3.10/site-packages/_pandas_editable_loader.py:309: in rebuild
    subprocess.run(self._build_cmd, cwd=self._build_path, env=env, stdout=stdout, check=True)
../../mambaforge/envs/pandas-dev/lib/python3.10/subprocess.py:526: in run
    raise CalledProcessError(retcode, process.args,
E   subprocess.CalledProcessError: Command '['/home/willayd/mambaforge/envs/pandas-dev/bin/ninja']' returned non-zero exit status 1.
```

So _might_ have something to do with the meson step we have to generate a version file up front
cc @lithomas1 if you have any thoughts here
Also I notice that for the version file in `meson.build` , `build_by_default: true` and `build_always_stale: true` which seems like the reason why the version file is always runs when pytest runs. Shouldn't the file version only be build if the git commit changes?
I don't think so. There's no inbuilt mechanism to detect a git commit change.
My hypothesis is that maybe our ``json`` module is getting imported instead of the stdlib one by versioneer.
(but maybe we renamed our extension module).

I'm travelling today, but I'll look over the weekend/on Monday.
@WillAyd 

Do you have time to debug this further?

I can't really reproduce ASAN stuff locally on my mac and trying to reproduce on Gitpod seems to hang it. 

AFAICT, the version script at least runs successfully once. 
(since the pandas version is correctly set to ``3.0.0dev0`` in the wheel filename)
Yep will try to take a look in the next few days
Does anyone know any tricks to isolating what happens during fixture collection? I am seeing the DEADLYSIGNAL relatively often during fixture collection, but am unsure where all that messaging is going
I think `--setup-show` is the only way to gain insights into what happens during collection