alibaba / GraphScope

🔨 🍇 💻 🚀 GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba | 一站式图计算系统
https://graphscope.io
Apache License 2.0
3.19k stars 427 forks source link

Unify log and error report for easier trouble shooting #3190

Open yecol opened 10 months ago

yecol commented 10 months ago

Motivations and proposal

Current status

Proposal update:

deprecated!!!

Example:

Corner cases

acezen commented 10 months ago

Status codes of each engine

Vineyard

Code Number Description
OK 0 Not an error; returned on success.
Invalid 1 Invalid data, for example a string that fails parsing.
KeyError 2 Failed key lookups (e.g. column name in a table).
TypeError 3 Type errors (such as mismatching data types).
IOError 4 IO errors (e.g. Failed to open or read from a file).
EndOfFile 5 Reader reaches at the end of file.
NotImplemented 6 An operation or a combination of operation and data types is unimplemented.
AssertionFailed 7 The condition assertion is false.
UserInputError 8 Invalid user input.
ObjectExists 11 The object exists if the user are still trying to creating such object.
ObjectNotExists 12 The object exists if the user are still trying to creating such object.
ObjectSealed 13 The object has already been sealed.
ObjectNotSealed 14 The object hasn't been sealed yet.
ObjectIsBlob 15 Unsupported operations on blob objects.
ObjectTypeError 16 Cast object to mismatched types.
ObjectSpilled 17 The object has already been spilled.
ObjectNotSpilled 18 The object is not spilled yet.
MetaTreeInvalid 21 Metatree related error occurs.
MetaTreeTypeInvalid 22 The "typename" field in metatree is invalid.
MetaTreeTypeNotExists 23 The "typename" field not exists in metatree.
MetaTreeNameInvalid 24 The "id" field in metatree is invalid.
MetaTreeNameNotExists 25 The "id" field not exists in metatree.
MetaTreeLinkInvalid 26 A field in metatree is expected to be a link but it isn't.
MetaTreeSubtreeNotExists 27 Expected subtree doesn't exist in metatree.
VineyardServerNotReady 31 The requested vineyard server is not ready yet.
ArrowError 32 Arrow related error occurs.
ConnectionFailed 33 Client failed to connect to vineyard server.
ConnectionError 34 Client losts connection to vineyard server.
EtcdError 35 The vineyard server meets an etcd related error.
AlreadyStopped 36 The object has already been stopped.
RedisError 37 The vineyard server meets an redis related error.
NotEnoughMemory 41 The vineyard server cannot allocate more memory blocks.
StreamDrained 42 There's no more chunks in the stream.
StreamFailed 43 The stream has failed.
InvalidStreamState 44 Internal invalid state found for stream.
StreamOpened 45 The stream has been opened.
GlobalObjectInvalid 51 Invalid global object structure.
UnknownError 255 Unknown errors.
acezen commented 10 months ago

GraphAr

Code Number Description
OK 0 Not an error; returned on success.
KeyError 1 error status for failed key lookups
TypeError 2 error status for type errors
Invalid 3 error status for invalid data
IndexError 4 error status when an index is out of bounds
OutOfMemory 5 error status for out-of-memory conditions
IOError 6 error status when some IO-related operation failed
YamlError 7 error status some yaml parse related operation failed, use to catch mini-yaml raised error
ArrowError 8 error status when some arrow-related operation failed
UnknownError 9 error status for unknown errors
acezen commented 10 months ago

Interactive engine

Currently, GIE defines Error in each layer:

Compiler: Code Number Description
OK 0 Not an error; returned on success.
AntlrParseException - antlr parse error
GraphLabelNotFoundException - cannot find given label from the schema
GraphPropertyNotFountException - cannot find given property from the schema
GraphMisMatchTypeException - cannot apply operations on specific type, i.e. get properties from non-node/edge types.
GraphMisMatchOperandsException - cannot apply operands to operator
IR : Code Number Description
OK 0 Not an error; returned on success
ParseExprError 1 Parse an expression error
MissingDataError 2 Missing necessary data
CStringError 3 The error while transforming from C-like string, aka char*
UnknownTypeError 4 The provided data type is unknown
InvalidRangeError 5 The provided range is invalid
NegativeIndexError 6 The given index is negative
BuildJobError 7 Build Physical Plan Error
ParsePbError 8 Parse protobuf error
ParentNotFoundError 9 The parent of an operator cannot be found
ColumnNotExistError 10 A column (property) does not exist in the store
TableNotExistError 11 A table (label) does not exist in the store
TagNotExistError 12 A queried tag has not been specified
UnSupported 13 An unsupported error
Others 14 other errors.
Runtime (no number defined yet): Code Number Description
OK 0 Not an error; returned on success
FnGenDecodeOpError - Decode pb structure error
FnGenParseError - Parse pb structure error
FnGenUnsupportedError - An unsupported error in udf gen
FnExecNullGraphError - The graph is not registered in engine
FnExecGetTagError - A tagged column does not exist in the data
FnExecStoreError - An error occurs when query the storage
FnExecExprEvalError - A expression evaluation error
FnExecUnExpectedData - The data type is unexpected
FnExecAccumError - An error in accumulation
FnExecUnSupported - An unsupported error in execution
StoreQueryError - An error when querying storage
StoreWriteError - An error when write a graph
ExprEvalCastError - The error while casting from different data types to a general data type Object
ExprEvalMissingContext - Missing context for the certain variable
ExprEvalMissingOperands - The error of missing required operands in an arithmetic or logical expression
ExprEvalEmptyExpression - An error where an empty expression is to be evaluated
ExprEvalUnexpectedDataType - Meant to evaluate a variable, but the data type is unexpected (e.g., not a graph-element)
ExprEvalGetNoneFromContext - Get None from Context
ClusterInfoMissing - An error that cluster info is missing
acezen commented 10 months ago

GART

Code Number Description
OK 0 Not an error; returned on success.
KeyError 1 error status for failed key lookups
TypeError 2 error status for type errors
Invalid 3 error status for invalid data
IndexError 4 error status when an index is out of bounds
OutOfMemory 5 error status for out-of-memory conditions
KafkaConnectError 6 error status for failed Kafka connection
CapturerError 7 error status caused by the log capturer
MsgError 8 error status for failed message handling
ParseFileError 9 error status for parsing files
ParseLogeError 10 error status for parsing logs
OperationError 11 error status for operation-related errors
ConfigError 12 error status for incorrect configurations
PremisionError 13 error status caused incorrect premision of database users
VineyardError 14 error status caused by Vineyard
GrinError 15 error status caused by GRIN
UnknownError 16 error status for unknown errors
acezen commented 10 months ago

Groot

Groot use exception to handle errors

acezen commented 10 months ago

Learning engine

Code Number Description
OK 0 Not an error; returned on success.
acezen commented 10 months ago

Analytical Engine

Code Number Description
Ok 0 Not an error; returned on success.
IOError 1 error code for IO operation failed
ArrowError 2 arrow related error occur
VineyardError 3 vineyard related error occur
UnspecificError 4 unknown error
DistributedError 5 error for distributed job failed, error messages will be gathered
NetworkError 6 network related error
CommandError 7 op command receive failed
DataTypeError 8 Type errors (such as mismatching data types).
IllegalStateError 9 IllegalState error(such as query return a null context wrapper without error message)
InvalidValueError 10 Invalid value, for example a string that fails parsing.
InvalidOperationError 11 Invalid operation error, for example some operation is only available in certain fragment but called by other fragment
UnsupportedOperationError 12 Unsupported operation error
UnimplementedMethod 13 method unimplemented
GraphArError 14 GraphAr related error
yecol commented 10 months ago