You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We've implemented a function similar to the example functions from docs. If this functions fails, it returns a exit code greater than 0 and prints the error message in STDOUT.
[..] "error": "cannot run Composition Function pipeline: cannot run function \"service-versioning\": cannot run container: rpc error: code = Unknown desc = exit status 1: xfn: error: spark.Command.Run(): OCI runtime error: exit status 1"
Currenty, I cannot debug a composition function that fails to execute. When the function in the OCI container fails, I see the exit code but no additional information printed in STDOUT.
How could Crossplane help solve your problem?
Provide a way to see the STDOUT of functions that failed. That may be behind a flag/option like verbosity level/debug mode, etc.
Perhaps, also STDERR could be used, as it would be the more appropriate place for error messages.
The text was updated successfully, but these errors were encountered:
The xfn runner has moved out-of-tree, so I'm moving this issue. In v1.14 (due end of the month) we'll have a new architecture for Functions that won't be prone to this issue. We haven't started on docs yet for the new architecture, but you can learn about it here:
If others stumble upon this thing, we worked around it by sending the uncatched exceptions to a HTTP endpoint (jmalloc/echo-server) that runs in the same cluster. It's absolutely not pretty, but get's the job done.
importhttp.clientimportsysimporttracebackdefmain():
try:
# your actual function codeexceptExceptionase:
try:
trace=traceback.format_exc()
host="echo.default.svc.cluster.local"conn=http.client.HTTPConnection(host, 80)
conn.request("POST", "/", headers={"Host": host}, body=str(trace))
response=conn.getresponse()
ifresponse.status>=400orresponse.status<200:
raiseException("webtrace failed")
sys.exit(90)
except:
sys.exit(99)
raisee
What problem are you facing?
We've implemented a function similar to the example functions from docs. If this functions fails, it returns a exit code greater than 0 and prints the error message in STDOUT.
Currenty, I cannot debug a composition function that fails to execute. When the function in the OCI container fails, I see the exit code but no additional information printed in STDOUT.
How could Crossplane help solve your problem?
Provide a way to see the STDOUT of functions that failed. That may be behind a flag/option like verbosity level/debug mode, etc.
Perhaps, also STDERR could be used, as it would be the more appropriate place for error messages.
The text was updated successfully, but these errors were encountered: