Skip to content
This repository was archived by the owner on Mar 28, 2022. It is now read-only.
This repository was archived by the owner on Mar 28, 2022. It is now read-only.

Panic at Termination on Windows #41

Description

@bheisler

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions