From 9604544e234b30673ffe1bbcd24809e91bd39867 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Wed, 18 Apr 2012 18:43:42 -0700 Subject: [PATCH] rt: Don't log in the stack switching failure path The runtime is in an uncertain state here and, instead of thinking about how to make the logger work correctly, let's just avoid it. Currently, it ends up hitting an assert saying that we can't log on the rust stack. --- src/rt/rust_upcall.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/rt/rust_upcall.cpp b/src/rt/rust_upcall.cpp index f43d819891aa..6210b2717b60 100644 --- a/src/rt/rust_upcall.cpp +++ b/src/rt/rust_upcall.cpp @@ -71,8 +71,8 @@ upcall_call_shim_on_c_stack(void *args, void *fn_ptr) { try { task->call_on_c_stack(args, fn_ptr); } catch (...) { - LOG_ERR(task, task, "Native code threw an exception"); - abort(); + // Logging here is not reliable + assert(false && "Native code threw an exception"); } task->record_stack_limit(); @@ -96,9 +96,8 @@ upcall_call_shim_on_rust_stack(void *args, void *fn_ptr) { } catch (...) { // We can't count on being able to unwind through arbitrary // code. Our best option is to just fail hard. - LOG_ERR(task, task, - "Rust task failed after reentering the Rust stack"); - abort(); + // Logging here is not reliable + assert(false && "Rust task failed after reentering the Rust stack"); } // FIXME: As above