We have two server machines running XGBoost on Windows Server 2016 (one Standard, one DataCenter) - both of these are running fine without issues on version 0.82 installed via pip.
However, on my Windows 10 machine, I get a crash when trying to call predict on one row of data. I have validated that the data being passed is identical across all machines (by loading the input df in both from pickled file), and further to this the python environment is identical in terms of installed packages and their versions.
What is interesting is that when I compile the source code manually in Visual Studio and instead use the compiled xgboost.dll instead of the version downloaded from pip, I do not get the crash and all appears to work fine.
Could this be related possibly to an unwanted interraction between the DLL that forms part of the package, and the C:\Windows\System32 dlls? These system DLLs used in xgboost.dll are the only obvious difference I can make out from looking at process explorer, and the versions on the Windows 10 machine are mostly different from those running Windows Server 2016.
My system specs are as follows, along with the call stack from the crash:
The function call that fails is a call to XGBoosterPredict, called from core.py in the package. Note that n_jobs is set to 1, so there should be no attempt at parallelization despite the position in the code where the crash seems to happen in the call stack above.
I should also point out that the same behavior occurs with version 0.9 of XGBoost - the pip installed DLL crashes, but compiling the source code and using this version does not cause the crash.
If anyone has any tips as to how I can get the pip repo version of the DLL to work it would be much appreciated. Thanks!