accel icon indicating copy to clipboard operation
accel copied to clipboard

Panic at Termination on Windows

Open bheisler opened this issue 6 years ago • 0 comments

When I run the example program add.rs on Windows, it adds the numbers correctly and then panics when terminating the program:

thread '<unnamed>' panicked at 'Failed to unload module: cudaError(CUDA_ERROR_DEINITIALIZED)', libcore\result.rs:945:5
stack backtrace:
   0: std::sys::windows::backtrace::unwind_backtrace
             at C:\projects\rust\src\libstd\sys\windows\backtrace\mod.rs:65
   1: std::sys_common::backtrace::_print
             at C:\projects\rust\src\libstd\sys_common\backtrace.rs:71
   2: std::sys_common::backtrace::print
             at C:\projects\rust\src\libstd\sys_common\backtrace.rs:59
   3: std::panicking::default_hook::{{closure}}
             at C:\projects\rust\src\libstd\panicking.rs:211
   4: std::panicking::default_hook
             at C:\projects\rust\src\libstd\panicking.rs:227
   5: std::panicking::rust_panic_with_hook
             at C:\projects\rust\src\libstd\panicking.rs:463
   6: std::panicking::begin_panic_fmt
             at C:\projects\rust\src\libstd\panicking.rs:350
   7: std::panicking::rust_begin_panic
             at C:\projects\rust\src\libstd\panicking.rs:328
   8: core::panicking::panic_fmt
             at C:\projects\rust\src\libcore\panicking.rs:71
   9: core::result::unwrap_failed<accel::error::Error>
             at C:\projects\rust\src\libcore\macros.rs:26
  10: core::result::Result<(), accel::error::Error>::expect<(),accel::error::Error>
             at C:\projects\rust\src\libcore\result.rs:809
  11: accel::module::{{impl}}::drop
             at .\src\module.rs:233
  12: core::ptr::drop_in_place<accel::module::Module>
             at C:\projects\rust\src\libcore\ptr.rs:59
  13: core::ptr::drop_in_place<core::cell::UnsafeCell<accel::module::Module>>
             at C:\projects\rust\src\libcore\ptr.rs:59
  14: core::ptr::drop_in_place<core::cell::RefCell<accel::module::Module>>
             at C:\projects\rust\src\libcore\ptr.rs:59
  15: core::ptr::drop_in_place<core::option::Option<core::cell::RefCell<accel::module::Module>>>
             at C:\projects\rust\src\libcore\ptr.rs:59
  16: std::thread::local::fast::destroy_value<core::cell::RefCell<accel::module::Module>>
             at C:\projects\rust\src\libstd\thread\local.rs:402
  17: std::sys_common::thread_local::register_dtor_fallback::run_dtors
             at C:\projects\rust\src\libstd\sys_common\thread_local.rs:266
  18: std::sys::windows::thread_local::run_dtors
             at C:\projects\rust\src\libstd\sys\windows\thread_local.rs:244
  19: std::sys::windows::thread_local::on_tls_callback
             at C:\projects\rust\src\libstd\sys\windows\thread_local.rs:215
  20: RtlDeactivateActivationContextUnsafeFast
  21: RtlDeactivateActivationContextUnsafeFast
  22: LdrShutdownProcess
  23: RtlExitUserProcess
  24: ExitProcess
  25: exit
  26: exit
  27: __scrt_common_main_seh
             at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:290
  28: BaseThreadInitThunk
  29: RtlUserThreadStart

It's trying to unload the module and failing with CUDA_ERROR_DEINITIALIZED. I don't know why this is happening, else I would submit a pull request to fix it. I've been able to work around it by commenting out the code in module.rs which checks for errors when the module is dropped, but I don't think that's the right fix.

bheisler avatar May 13 '18 14:05 bheisler