Skip to content

Strip the trace from error messages

A solution to reduce excessive egress bandwidth from scheduling when rounds fail. By stripping verbose Go stack traces from error messages, there is an estimated 90% bandwidth reduction for failed round communications while preserving debugging information.

Before (with stack traces):

Round Error from node: Received error polling for permissioning: Cannot move to precomputing state: Timed out connecting to nodes: [node123]  gitlab.com/elixxir/server/io.VerifyServersOnline /builds/elixxir/server/io/transmitAskOnline.go:76 
[... 20+ more lines]

Size: ~1,800 bytes

After (sanitized):

Round Error from node: Received error polling for permissioning: Cannot move to precomputing state: Timed out connecting to nodes: [node123]

Size: ~150 bytes

Additional Benefits:

  • Reduces database storage for error logs
  • Faster query performance on error tables
  • Maintains debugging context (error type, affected nodes, root cause)
  • 500 character limit prevents unbounded error growth
  • No server/gateway changes required
  • Forward and backward compatible (See attached files)

testDatabase.ods TestProcedureAndResults.txt

Merge request reports

Loading