calebwin / emu

The write-once-run-anywhere GPGPU library for Rust
https://calebwin.github.io/emu
MIT License
1.59k stars 53 forks source link

`X server found. dri2 connection failed!` #17

Open cedws opened 5 years ago

cedws commented 5 years ago

I'm trying to run the tests for the arithmetic example (env RUST_BACKTRACE=1 cargo test), but am getting undefined behaviour. In most cases a double free is detected and the program crashes:

running 2 tests
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
X server found. dri2 connection failed!
double free or corruption (top)
error: process didn't exit successfully: `/home/cedwards/git/emu/examples/arithmetic/target/debug/deps/arithmetic-8e93e645dd4fd0c6` (signal: 6, SIGABRT: process abort signal)
calebwin commented 5 years ago

The tests work fine for me on my Ubuntu VMware VM running on Windows 10 Intel i7 so.. maybe it's an issue with your setup? Emu uses OpenCL behind the scenes - do you know if you can successfully run OpenCL programs from your computer?

This might be relevant - https://bugzilla.redhat.com/show_bug.cgi?id=1460400

cedws commented 5 years ago

This is a bit of a weird one. I saw a comment noting that it can have issues when a Wayland compositor is running, so I closed the compositor and ran the tests from the TTY. I got equally bad UB, but no X server found. dri2 connection failed! error. Sometimes the tests would pass, sometimes they'd fail and the program would display the same double free or corruption (top) error. If you're not sure what's going on then it's probably an issue at a lower level. Feel free to close this, I'm out of ideas and I don't have too much time to invest into trying this out.

calebwin commented 5 years ago

That's really strange. What I would try next is seeing if OpenCL works by trying to run one of the examples in https://github.com/cogciprocate/ocl. If that doesn't work, then the problem really is just OpenCL.

cedws commented 5 years ago

I've tried a few examples in that repository, by running for instance cargo run --example basic. The X server found. dri2 connection failed! warning still appears when a Wayland compositor is running, but the program does not segfault. The program continues running as normal it appears.