-
Notifications
You must be signed in to change notification settings - Fork 10
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
Update Hyper dependency #10
Comments
What OS are you using? Rust version? Are your graphics drivers up-to-date? On my machine (Ubuntu 16.04, Rust 1.22.1 stable) I don't have any issues with the current setup (i.e. hyper 0.7). If changing the dependency version to 0.10 works as a short-term solution, then I can do that, but I was also planning on migrating away from hyper to something more high-level like reqwests anyway, so hopefully this no longer becomes my issue. |
I'm running Archlinux (kernel 4.15.5-1-ARCH), with Both my graphic drivers (integrated intel and GTX960m) are up to date:
And there is no difference if I run shadertoy-rs on the intel GPU or the nvidia one: it runs perfectly in debug mode and crashes in release mode. I'm not sure I fully understand the rust ecosystem yet, but I'm under the impression that -sys crates depend on the actual system library, in which case my version of openssl might be more recent: |
I'd be curious to see whether the rust version has anything to do with this. Do you have a way of reverting back to 1.22.1 stable and trying again (with both hyper 0.7 and hyper 0.10)? My internet connection here is quite unreliable so it might take me a while to upgrade to 1.24 and try it myself. |
I was able to downgrade to rust 1.22.1, fortunately rust doesn't have any dependencies on my system. Here are the results with rust 1.22.1:
So while the downgrade didn't fix the problem with hyper compilation, it did fix the crash in release mode. |
So then it seems to me that there are two issues at play here: the later rust version that causes crashes in release mode, and the hyper version that causes compilation errors (likely to do with the system version of openssl). Updating the hyper dependency would be a good short-term fix for the compilation error on older rust versions, but we're still left with the release crashes on the latest rust version. Maybe this warrants filing a bug with the rustc team? I normally try not to jump to the conclusion that there's a bug in the compiler but it's highly suspicious that this crate would work fine in 1.22 stable and crash with 1.24 stable. They also just released 1.24.1 stable because of regressions in other crates, so maybe it's not such a crazy idea after all. In the meantime, I'll update the hyper dependency so people with older rust versions don't experience compile errors, but the crashing is going to require a deeper dive to figure out (ideally a bisect of the rustc code to find the commit that seemingly introduced the regression). I might also file a bug with the rustc folks to see if this might be something on their end. A few more things we could try before going that far would be
|
Well, rust 1.24.1 didn't fix the problem :/
I'm not sure sure my (very) limited rust experience will be enough to debug a compiler bug. |
I agree, it looks like something during window creation, so I would try |
Sorry it's taken me so long to address this, I've been extremely busy. I've added a new branch, |
No worries, I've also felt bad about doing more to help with this issue ^^ Good news! It runs perfectly both in debug and release mode, and on integrated and dedicated graphics. I saw you reworked the event handling in runner.rs, seems like a prime suspect. |
So I was having a similar issue on my linux box (it does eventually close the window but it seems to take a minute or two). I figured this was an issue with my lack of graphics drivers, and my internet wasn't good enough to re-download/build the project on my windows box. This is partly why I asked you to confirm that it works for you. Since it doesn't, I'm not exactly sure what the issue could be, but I'll keep digging. |
Now that you mention it, I retried and the keypresses do indeed register when you hold them down long enough (at least a few seconds). |
Yeah this is quite strange. I'm not entirely sure what's going on, so maybe I'll open an issue with the gfx project. |
Going to go ahead and close this given that your fix was just merged in. Thanks again for your contribution! |
The Hyper dependency is too old and prevents the build on up to date system as it itself depend on an old version of openssl-sys (0.74). More detail about the issue can be found here hyperium/hyper#985
I tried turning the version up to 0.11, but the compilation failed. However it succeeded with
hyper = "0.10"
I'm not sure if it has anything to do with the other issue, but shadertoy-rs seems to crash while creating the windows in release mode. It works fine in debug mode. Here is the backtrace I got from the coredump:
If you confirm the two issues aren't linked, I'll open another issue.
The text was updated successfully, but these errors were encountered: