Details
Description
When using ICompute.WithTimeout, the following scenario is possible:
- Timeout is reached, and Ignite interrupts compute job thread
- InterruptedException is thrown from the job code
- Ignite.NET tries to serialize the job result (exception) in BinaryUtils.WriteInvocationResult
- BinaryProcessor.PutBinaryTypes is called during the serialization
- Thread is interrupted, so metadata update fails with InterruptedException
As a result, instead of a simple timeout exception, there is a lot of cryptic errors in the log (see attachments).
Possible fixes:
- Handle InterruptedException as a special case in WriteInvocationResult so we don't need to send meta updates
- Do not interrupt binary meta updates