ctubbsii commented on a change in pull request #1818:
URL: https://github.com/apache/accumulo/pull/1818#discussion_r532927323



##########
File path: assemble/conf/accumulo-env.sh
##########
@@ -95,7 +95,7 @@ JAVA_OPTS=("${JAVA_OPTS[@]}"
 
 case "$cmd" in
   monitor|gc|master|tserver|tracer)
-    JAVA_OPTS=("${JAVA_OPTS[@]}" 
"-Dlog4j.configurationFile=log4j2-service.properties")
+    JAVA_OPTS=("${JAVA_OPTS[@]}" 
"-Dlog4j.configurationFile=log4j2-service.properties" 
"-DHaltVMOnThreadError=true")

Review comment:
       I think LoggingRunnable avoided the question of which would win by 
trying to wrap the Runnable and catching the Throwables in the run method 
instead of relying on the uncaught handler. However, the fatal flaw with 
LoggingRunnable is that it wouldn't re-throw things. Your solution to put an 
uncaught handler on everything makes it so we can (should) delete 
LoggingRunnable, as it's not needed any more, but it raises questions about 
what wins. I know that it wouldn't necessarily make sense to re-throw from the 
handler... because the docs say stuff thrown from the handler are ignored... 
but not sure if that applies to Error types as well as Exceptions.
   
   I'm finding myself with more questions than answers about how Java actually 
behaves, so it's hard to have an opinion about how things should go. I think I 
might want to simulate a few scenarios to test the various JVM behaviors, and 
use that to inform what to do.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to