http://bugs.winehq.org/show_bug.cgi?id=58584
Bug ID: 58584 Summary: msvcp140: Multiple modern applications using C++ Concurrency crash in CONCRT140.dll on startup Product: Wine Version: 10.12 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: blocker Priority: P2 Component: msvcp Assignee: wine-bugs@winehq.org Reporter: waser@waser.tech Distribution: ---
This report details a consistent, immediate startup crash in `CONCRT140.dll` affecting modern S.T.A.L.K.E.R. engine forks. These engines are based on the open-source **Open X-Ray 1.6**, which itself works flawlessly under Wine.
The crash only appears in these newer, more advanced forks which leverage the MSVC concurrency runtime for performance. This strongly indicates the issue lies within Wine's implementation of these APIs, not a bug in the engines themselves. This is effectively a regression, as the baseline engine works while the newer, concurrency-enabled versions do not.
**Existing Related Bugs:** This issue appears to be a new, highly reproducible test case for known problems in Wine's concurrency support. We are filing this as a new report due to the unique test case and the specific failure point (constructor vs. destructor), but it is likely caused by the same underlying issues as: - **Bug 52899:** Notes that `CONCRT140.dll` requires `CreateEventExW` from `kernel32`. This is the most likely root cause. - **Bug 41749:** Shows a crash in the destructor for `Concurrency::details::_TaskCollection`. Our crash occurs in the *constructor* of this same object, demonstrating a different failing code path.
Our report provides two clear methods to reproduce this crash, including one that is fully free and requires no commercial software.
---
### **Primary Reproduction Steps (IX-Ray on S.T.A.L.K.E.R.: Call of Pripyat)**
*(Steps 1-5 as in previous draft)*
6. **Run the Game with Debug Logging:** Launch the game using its main executable with full debug channels enabled. ```bash WINEDEBUG=+all wine Stalker-COP.exe &> stalker_cop_crash_all.log WINEDEBUG=+seh,+loaddll wine Stalker-COP.exe &> stalker_cop_crash_seh.log ``` 7. **Result:** The process will crash immediately. The game's own crash log (in `_appdata_ixray_/logs`) and the attached Wine debug logs will show a fatal error in `CONCRT140.dll`.
---
### **Alternative Reproduction Steps (AOEngine on S.T.A.L.K.E.R. Anomaly)**
This method is fully free and requires no commercial game assets.
1. **Download S.T.A.L.K.E.R. Anomaly:** Download the standalone game from its [ModDB page](https://www.moddb.com/mods/stalker-anomaly/downloads). 2. **Download AOEngine:** Download the latest AOEngine release from its [ModDB addons page](https://www.moddb.com/mods/stalker-anomaly/addons/aoengine). 3. **Install AOEngine:** Extract the contents into the Anomaly game's `bin` directory, overwriting `AnomalyDX11.exe`. 4. **Create a Clean Wine Prefix:** ```bash export WINEPREFIX=~/.wine_anomaly rm -rf $WINEPREFIX && wineboot -u ``` 5. **Install Runtimes:** ```bash winetricks -q vcrun2022 d3dcompiler_47 ``` 6. **Run the Game with Debug Logging:** Launch the game using the Anomaly launcher. ```bash WINEDEBUG=+all wine AnomalyLauncher.exe &> anomaly_crash_all.log WINEDEBUG=++seh,+loaddll wine AnomalyLauncher.exe &> anomaly_crash_seh.log ``` (Within the launcher, disable AVX, select DX11, disable the shader cache, and click Play). 7. **Result:** The exact same crash behavior as the IX-Ray method will be observed. The game's crash log will be in `_appdata_/logs` and the full Wine log will be `anomaly_crash_*.log`.
---
**Expected Behavior:** The game launcher should appear, and the game should launch to the main menu successfully, as it does on Windows and as the baseline Open X-Ray 1.6 engine does under Wine.
**Logs:** Three files will be attached for the primary reproduction case: 1. `stalker_cop_crash_seh.log`: A small log with `+seh,+loaddll` for quick initial review. 2. `stalker_cop_crash_all.log.bz2`: The complete `+all` debug log, compressed with bzip2 due to its large size. 3. `ixray-2025.08.10-02.37.21-waser.log`: The game's own crash log from its `_appdata_ixray_/logs` directory.
**References:** - **IX-Ray GitHub (Open Source Engine):** https://github.com/ixray-team/ixray-1.6-stcop - **GE-Proton Issue #197 (Full History):** https://github.com/GloriousEggroll/proton-ge-custom/issues/197