Hi all,

I have not received any feedback on this proposal so far.

Does anybody have anything against it? Otherwise, I would like to proceed with 
the implementation of it.

Thanks,

Alberto
________________________________
From: Alberto Gomez <alberto.go...@est.tech>
Sent: Thursday, March 24, 2022 4:29 PM
To: dev@geode.apache.org <dev@geode.apache.org>
Subject: [PROPOSAL] Remove warning logs from FunctionException

Hi,

Regarding how to implement a Function in Apache Geode and coding the execute 
method, the following is stated in [1]:

"To propagate an error condition or exception back to the caller of the 
function, throw a FunctionException from the execute method. Geode transmits 
the exception back to the caller as if it had been thrown on the calling side. 
See the Java API documentation for 
FunctionException<https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/execute/FunctionException.html>
 for more information."

And as per [2]:
"if a GemFire client executes a Function on a server, and the function's 
execute method throws a FunctionException, the server logs the exception as a 
warning, and transmits it back to the calling client, which throws it"

So, for every FunctionException thrown by a user Server Function, the server 
logs the exception with the corresponding stack trace.

This could imply, depending on the logic implemented in the user Server 
Function, that the log of the server is packed with these messages (which 
probably are not providing extra useful information given that the exception 
will reach the client), and making it difficult to analyze the logs to find 
other relevant events.

Given that Apache Geode recommends the use of FunctionException as the means to 
propagate an error condition or exception back to the caller, we could argue if 
a FunctionException thrown by a user Function should have any reflection, at 
all, in the server logs. Besides, as said before, depending on the amount of 
the exceptions generated, this can complicate the analysis of log files, 
require much more space for logs storage and have a negative impact in 
performance.

For the above reasons, I would like to propose to change the level of these 
messages to debug level. A configuration parameter to enable this possibility 
could be provided for backward compatibility.

Please, feel free to comment on this proposal.

Thanks,

Alberto


[1] 
https://geode.apache.org/docs/guide/114/developing/function_exec/function_execution.html
[2] 
https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/execute/FunctionException.html

Reply via email to