Page MenuHomePhabricator

[services] Rust Integration - Catch std::exception in base bidi reactor
ClosedPublic

Authored by karol on Sep 1 2022, 11:52 PM.
Tags
None
Referenced Files
F3280031: D5024.id16217.diff
Sat, Nov 16, 8:59 AM
Unknown Object (File)
Sun, Nov 10, 6:57 AM
Unknown Object (File)
Sun, Oct 27, 8:12 PM
Unknown Object (File)
Sun, Oct 27, 8:12 PM
Unknown Object (File)
Sun, Oct 27, 8:12 PM
Unknown Object (File)
Sun, Oct 27, 8:09 PM
Unknown Object (File)
Wed, Oct 23, 7:31 AM
Unknown Object (File)
Mon, Oct 21, 2:22 AM

Details

Summary

Depends on D5020

Linear task: https://linear.app/comm/issue/ENG-1727/catch-stdexception-in-base-reactors

We started using rust, and we use functions that return Result. That Result is then converted into a std::exception in c++ when it returns Err. All over the place in the reactors we handle std::runtime_errors but we should go higher in the hierarchy and catch std::exceptions.

Test Plan
cd services
yarn run-integration-tests backup

Works as before (of course, you have to start backup and blob services first).

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

This revision is now accepted and ready to land.Sep 5 2022, 7:23 AM
services/lib/src/server-base-reactors/ServerBidiReactorBase.h
101 ↗(On Diff #16217)

I'm not really sure. Maybe we can keep the current implementation and additionally catch just rust::Error, so that the rest of the logic isn't affected?

services/lib/src/server-base-reactors/ServerBidiReactorBase.h
101 ↗(On Diff #16217)

The problem is that rust::Error is not visible. In the generated files, it is defined only in the source file, not in the header.

This revision was landed with ongoing or failed builds.Sep 8 2022, 4:10 AM
This revision was automatically updated to reflect the committed changes.