From 66fcb0a84fcd55ad8e1444cdd0bc0ad6592f7329 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 1 Jul 2024 14:26:05 +0200 Subject: pkg/fuzzer: try to triage on different VMs Distribute triage requests to different VMs. --- pkg/flatrpc/flatrpc.h | 50 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) (limited to 'pkg/flatrpc/flatrpc.h') diff --git a/pkg/flatrpc/flatrpc.h b/pkg/flatrpc/flatrpc.h index 88defed83..bc22ee63b 100644 --- a/pkg/flatrpc/flatrpc.h +++ b/pkg/flatrpc/flatrpc.h @@ -1769,6 +1769,7 @@ flatbuffers::Offset CreateExecutorMessageRaw(flatbuffers::Fl struct ExecRequestRawT : public flatbuffers::NativeTable { typedef ExecRequestRaw TableType; int64_t id = 0; + uint64_t avoid = 0; std::vector prog_data{}; std::unique_ptr exec_opts{}; rpc::RequestFlag flags = static_cast(0); @@ -1784,14 +1785,18 @@ struct ExecRequestRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef ExecRequestRawBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_ID = 4, - VT_PROG_DATA = 6, - VT_EXEC_OPTS = 8, - VT_FLAGS = 10, - VT_ALL_SIGNAL = 12 + VT_AVOID = 6, + VT_PROG_DATA = 8, + VT_EXEC_OPTS = 10, + VT_FLAGS = 12, + VT_ALL_SIGNAL = 14 }; int64_t id() const { return GetField(VT_ID, 0); } + uint64_t avoid() const { + return GetField(VT_AVOID, 0); + } const flatbuffers::Vector *prog_data() const { return GetPointer *>(VT_PROG_DATA); } @@ -1807,6 +1812,7 @@ struct ExecRequestRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && + VerifyField(verifier, VT_AVOID, 8) && VerifyOffset(verifier, VT_PROG_DATA) && verifier.VerifyVector(prog_data()) && VerifyField(verifier, VT_EXEC_OPTS, 8) && @@ -1827,6 +1833,9 @@ struct ExecRequestRawBuilder { void add_id(int64_t id) { fbb_.AddElement(ExecRequestRaw::VT_ID, id, 0); } + void add_avoid(uint64_t avoid) { + fbb_.AddElement(ExecRequestRaw::VT_AVOID, avoid, 0); + } void add_prog_data(flatbuffers::Offset> prog_data) { fbb_.AddOffset(ExecRequestRaw::VT_PROG_DATA, prog_data); } @@ -1853,12 +1862,14 @@ struct ExecRequestRawBuilder { inline flatbuffers::Offset CreateExecRequestRaw( flatbuffers::FlatBufferBuilder &_fbb, int64_t id = 0, + uint64_t avoid = 0, flatbuffers::Offset> prog_data = 0, const rpc::ExecOptsRaw *exec_opts = nullptr, rpc::RequestFlag flags = static_cast(0), flatbuffers::Offset> all_signal = 0) { ExecRequestRawBuilder builder_(_fbb); builder_.add_flags(flags); + builder_.add_avoid(avoid); builder_.add_id(id); builder_.add_all_signal(all_signal); builder_.add_exec_opts(exec_opts); @@ -1869,6 +1880,7 @@ inline flatbuffers::Offset CreateExecRequestRaw( inline flatbuffers::Offset CreateExecRequestRawDirect( flatbuffers::FlatBufferBuilder &_fbb, int64_t id = 0, + uint64_t avoid = 0, const std::vector *prog_data = nullptr, const rpc::ExecOptsRaw *exec_opts = nullptr, rpc::RequestFlag flags = static_cast(0), @@ -1878,6 +1890,7 @@ inline flatbuffers::Offset CreateExecRequestRawDirect( return rpc::CreateExecRequestRaw( _fbb, id, + avoid, prog_data__, exec_opts, flags, @@ -2355,6 +2368,7 @@ flatbuffers::Offset CreateProgInfoRaw(flatbuffers::FlatBufferBuilde struct ExecResultRawT : public flatbuffers::NativeTable { typedef ExecResultRaw TableType; int64_t id = 0; + int32_t proc = 0; std::vector output{}; std::string error{}; std::unique_ptr info{}; @@ -2369,13 +2383,17 @@ struct ExecResultRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef ExecResultRawBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_ID = 4, - VT_OUTPUT = 6, - VT_ERROR = 8, - VT_INFO = 10 + VT_PROC = 6, + VT_OUTPUT = 8, + VT_ERROR = 10, + VT_INFO = 12 }; int64_t id() const { return GetField(VT_ID, 0); } + int32_t proc() const { + return GetField(VT_PROC, 0); + } const flatbuffers::Vector *output() const { return GetPointer *>(VT_OUTPUT); } @@ -2388,6 +2406,7 @@ struct ExecResultRaw FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && + VerifyField(verifier, VT_PROC, 4) && VerifyOffset(verifier, VT_OUTPUT) && verifier.VerifyVector(output()) && VerifyOffset(verifier, VT_ERROR) && @@ -2408,6 +2427,9 @@ struct ExecResultRawBuilder { void add_id(int64_t id) { fbb_.AddElement(ExecResultRaw::VT_ID, id, 0); } + void add_proc(int32_t proc) { + fbb_.AddElement(ExecResultRaw::VT_PROC, proc, 0); + } void add_output(flatbuffers::Offset> output) { fbb_.AddOffset(ExecResultRaw::VT_OUTPUT, output); } @@ -2431,6 +2453,7 @@ struct ExecResultRawBuilder { inline flatbuffers::Offset CreateExecResultRaw( flatbuffers::FlatBufferBuilder &_fbb, int64_t id = 0, + int32_t proc = 0, flatbuffers::Offset> output = 0, flatbuffers::Offset error = 0, flatbuffers::Offset info = 0) { @@ -2439,12 +2462,14 @@ inline flatbuffers::Offset CreateExecResultRaw( builder_.add_info(info); builder_.add_error(error); builder_.add_output(output); + builder_.add_proc(proc); return builder_.Finish(); } inline flatbuffers::Offset CreateExecResultRawDirect( flatbuffers::FlatBufferBuilder &_fbb, int64_t id = 0, + int32_t proc = 0, const std::vector *output = nullptr, const char *error = nullptr, flatbuffers::Offset info = 0) { @@ -2453,6 +2478,7 @@ inline flatbuffers::Offset CreateExecResultRawDirect( return rpc::CreateExecResultRaw( _fbb, id, + proc, output__, error__, info); @@ -3171,6 +3197,7 @@ inline flatbuffers::Offset CreateExecutorMessageRaw(flatbuff inline ExecRequestRawT::ExecRequestRawT(const ExecRequestRawT &o) : id(o.id), + avoid(o.avoid), prog_data(o.prog_data), exec_opts((o.exec_opts) ? new rpc::ExecOptsRaw(*o.exec_opts) : nullptr), flags(o.flags), @@ -3179,6 +3206,7 @@ inline ExecRequestRawT::ExecRequestRawT(const ExecRequestRawT &o) inline ExecRequestRawT &ExecRequestRawT::operator=(ExecRequestRawT o) FLATBUFFERS_NOEXCEPT { std::swap(id, o.id); + std::swap(avoid, o.avoid); std::swap(prog_data, o.prog_data); std::swap(exec_opts, o.exec_opts); std::swap(flags, o.flags); @@ -3196,6 +3224,7 @@ inline void ExecRequestRaw::UnPackTo(ExecRequestRawT *_o, const flatbuffers::res (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } + { auto _e = avoid(); _o->avoid = _e; } { auto _e = prog_data(); if (_e) { _o->prog_data.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->prog_data.begin()); } } { auto _e = exec_opts(); if (_e) _o->exec_opts = std::unique_ptr(new rpc::ExecOptsRaw(*_e)); } { auto _e = flags(); _o->flags = _e; } @@ -3211,6 +3240,7 @@ inline flatbuffers::Offset CreateExecRequestRaw(flatbuffers::Fla (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecRequestRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; + auto _avoid = _o->avoid; auto _prog_data = _o->prog_data.size() ? _fbb.CreateVector(_o->prog_data) : 0; auto _exec_opts = _o->exec_opts ? _o->exec_opts.get() : nullptr; auto _flags = _o->flags; @@ -3218,6 +3248,7 @@ inline flatbuffers::Offset CreateExecRequestRaw(flatbuffers::Fla return rpc::CreateExecRequestRaw( _fbb, _id, + _avoid, _prog_data, _exec_opts, _flags, @@ -3428,6 +3459,7 @@ inline flatbuffers::Offset CreateProgInfoRaw(flatbuffers::FlatBuffe inline ExecResultRawT::ExecResultRawT(const ExecResultRawT &o) : id(o.id), + proc(o.proc), output(o.output), error(o.error), info((o.info) ? new rpc::ProgInfoRawT(*o.info) : nullptr) { @@ -3435,6 +3467,7 @@ inline ExecResultRawT::ExecResultRawT(const ExecResultRawT &o) inline ExecResultRawT &ExecResultRawT::operator=(ExecResultRawT o) FLATBUFFERS_NOEXCEPT { std::swap(id, o.id); + std::swap(proc, o.proc); std::swap(output, o.output); std::swap(error, o.error); std::swap(info, o.info); @@ -3451,6 +3484,7 @@ inline void ExecResultRaw::UnPackTo(ExecResultRawT *_o, const flatbuffers::resol (void)_o; (void)_resolver; { auto _e = id(); _o->id = _e; } + { auto _e = proc(); _o->proc = _e; } { auto _e = output(); if (_e) { _o->output.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->output.begin()); } } { auto _e = error(); if (_e) _o->error = _e->str(); } { auto _e = info(); if (_e) _o->info = std::unique_ptr(_e->UnPack(_resolver)); } @@ -3465,12 +3499,14 @@ inline flatbuffers::Offset CreateExecResultRaw(flatbuffers::FlatB (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ExecResultRawT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _id = _o->id; + auto _proc = _o->proc; auto _output = _o->output.size() ? _fbb.CreateVector(_o->output) : 0; auto _error = _o->error.empty() ? 0 : _fbb.CreateString(_o->error); auto _info = _o->info ? CreateProgInfoRaw(_fbb, _o->info.get(), _rehasher) : 0; return rpc::CreateExecResultRaw( _fbb, _id, + _proc, _output, _error, _info); -- cgit mrf-deployment