-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Cannot lock file on lustre filesystem #3666
Comments
Sounds good to me! I believe the relevant support would go here. Would you be interested in sending a PR for this? |
I would need some mentoring, but sure! |
Sure yeah I'd be happy to help! I think you'll basically want to add a clause like the existing one for OSX except which matches the error code coming out of libc. I don't know precisely what 38 is but you can likely find what it is in the libc crate. |
Hm not sure I understand, can you elaborate? |
I'm not sure how to start |
Oh sure yeah, so to start out you'll want to compile from source to ensure that's working. After that you can likely run Once that's all taken care of you can toy around modifying the relevant match block and see if that fixes tests for you. If that's all working, then you can send a PR! |
ok i found 38 https://doc.rust-lang.org/libc/x86_64-unknown-linux-gnu/libc/constant.ENOSYS.html so it would be something like
|
Ah yeah that looks right! (for a constant to check against) |
That would be enough? or there is something else to be done? Someone told me that it would be nice to check the filesystem, but I'm not sure how to do it |
In theory that's it, but you may want to test out the cargo binary locally to ensure you don't get the same error |
Ok, I have a logistical problem. I cannot build Cargo because it needs a previous rustc/cargo installation and it wont build because the filesystem cannot lock files |
Heh that would indeed cause problems! Could you build it in /tmp perhaps which may not be the same filesystem? |
Almost there. However the cargo registry is still in my home folder on lustre, how can I change this path? |
Oh you can probably do CARGO_HOME=/tmp/cargo |
It failed:
|
It seems that somehow you've picked up a statically linked version of OpenSSL as opposed to a dynamic version. You wouldn't happen to know why, would you? |
I had to compile it myself, let me recompile it with ./config shared |
Ok. I had to compile openssl and download the cmake binaries to make this work. I can build cargo correctly, but some test fail randomly. This is what i've been doing https://gist.github.com/z1mvader/9185f4a8f18adefe516d63b4b338469a I'll work on this tomorrow |
Ok, there is a pattern on the random failures of tests. Everytime one of them fails. This error appears somewhere:
durka42 on irc suggested that it might be because everything is stored at /tmp, so after moving some stuff outside /tmp, it passed all tests. I tried building and running some simple crates with this fork and it worked :) I'm gonna PR |
trying to fix unimplemented flock under linux It fixes #3666
hey I just tested cargo on the same filesystem and this still happens, any suggestions? |
Does the proposed fix not work? |
Apparently not, but when I PR the fix it worked compiling cargo from source |
The code is still there, so I'm not sure :( |
Ok i just rechecked:
According to the libc docs, Am I missing something? |
Are you sure the version of Cargo you're using has the fix? |
I hate myself, yeah I forgot to set nightly as default. Thanks Alex |
When I tried to install Cargo and Rust under a lustre filesystem using rustup I got the following error after trying to build a simple crate:
It would be nice to let Cargo handle missing flock() by not locking? (durka42)
The text was updated successfully, but these errors were encountered: