Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't load polars on Windows 7 since 0.8.0 #383

Closed
etiennebacher opened this issue Sep 11, 2023 · 7 comments
Closed

Can't load polars on Windows 7 since 0.8.0 #383

etiennebacher opened this issue Sep 11, 2023 · 7 comments
Labels
bug Something isn't working installation About installation or setup

Comments

@etiennebacher
Copy link
Collaborator

etiennebacher commented Sep 11, 2023

I work on a server that is still on Windows 7 and I noticed that loading polars doesn't work anymore since 0.8.0. It does work for 0.7.0 so I guess there have been some changes between the two that provoke this error. Looking at the commits, I think it could be due to #334 since it modified the Rust toolchain used for compilation in the Makefile but I'm really not sure.

If I install the R-universe version, I have this error when I run library(polars):

unable to load shared object: "<path_to_polars_dll>"
  LoadLibrary failure: the specified procedure could not be found

I know it's hard to debug something like this, especially since I don't have admin rights and a limited internet connection in the server I use. I'm simply opening this so that it is tracked somewhere and in case other people have the same issue. I'll try to reproduce this in a VM later.

Some session info:

  • R 4.3.1
  • x86_64-w64-mingw32/x64 (64-bit)
  • Windows 7 x64 (build 7601) service pack 1
@etiennebacher
Copy link
Collaborator Author

I can reproduce this in a VM with Windows 7. I get one additional system message: "The procedure entry point GetOverlappedResultEx could not be located in the dynamic link library KERNEL32.dll".

Bad news, the main answer here says "your options are to run the program on a newer version of Windows or to modify the code to not rely on this particular function."

Is there any chance we can lower the Rust version used to compile to see if it changes something?

@eitsupi
Copy link
Collaborator

eitsupi commented Sep 13, 2023

Have you tried R-universe build?
I wonder that is come from the nightly toolchain or rustc 1.72.

@etiennebacher
Copy link
Collaborator Author

Yes I have tried to install binaries both from R-universe and the latest github release but same error

@sorhawell
Copy link
Collaborator

sorhawell commented Sep 13, 2023

I speculate it is not rustc but some crate which is now windows 8 only. Can you use latest py-polars on windows 7?

One possibility is it happened with bumping crate state (0.5.3 -> 6.0) -> loom -> windows (windows-rs) -> https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/System/IO/fn.GetOverlappedResultEx.html

if that is the case we can fairly easily revert and stay on state 0.5.3 or perhaps migrate to another crate. We use crate state for thread safe option states, when needed. I will try to revert and compare the cargo.lock to see what happens with windows crate.

is there a way I can check if it works with windows 7?

I could upload some test releases on github releases

@sorhawell
Copy link
Collaborator

an argument for it is not rustc is r-polars 0.7.0 from github releases was also compiled with rust night with rustc ~ 1.71, and that worked fine. If rust as language was not compatible in general with windows 7 it should be very searchable.

hmm maybe not the state crate, not sure what crate exactly.

it seems crates windows, windows-targets and windows-sys all got bumped when bumping rust-polars, and rust polars depend on these crates also. I guess it is one of these but I don't know which on and which version.

pinning these low-level crates for older version could be very tricky to maintain

@etiennebacher
Copy link
Collaborator Author

is there a way I can check if it works with windows 7?

You could set up a VM quite quickly with virtualbox (the longest part for me was downloading the 3GB iso image of windows 7). No idea if there's another option.

Can you use latest py-polars on windows 7?

I can try later

@etiennebacher etiennebacher added the bug Something isn't working label Sep 13, 2023
@eitsupi eitsupi added the installation About installation or setup label Oct 9, 2023
@etiennebacher
Copy link
Collaborator Author

I'm back at this, but if the problem comes from the Rust version used then there's no hope because we keep increasing it. And if it comes from crates used by rust-polars then they won't pin them to a lower version just to ensure it works on the old Windows 7.

About py-polars, I can't test this because I need Python 3.8 (last one supported by Windows 7) and I need an update of the Windows used in my VM to install it, and I can't update Windows because it's not an official one.

Bottom line, I don't think there's a solution

@eitsupi eitsupi closed this as not planned Won't fix, can't repro, duplicate, stale Jan 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working installation About installation or setup
Projects
None yet
Development

No branches or pull requests

3 participants