]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
msg: reset ProtocolV2's frame assembler in appropriate thread 47301/head
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 27 Jul 2022 12:10:05 +0000 (12:10 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 19 Aug 2022 12:15:41 +0000 (12:15 +0000)
commitc04256bab85ebf97daa8805daacdea17013381b7
tree18c083440cfe36bf592444041a03f10aa07595bf
parentbccd2dbb2002e0bcc38b266f887bf5b9880cf737
msg: reset ProtocolV2's frame assembler in appropriate thread

`set_is_rev1()` actually resets the internal state of `FrameAssembler`,
so -- to avoid racing -- it should be performed by the same thread that
takes care about executing `ProtocolV2::write_message()`.

```cppp
void set_is_rev1(bool is_rev1) {
  m_descs.clear();
  m_flags = 0;
  m_is_rev1 = is_rev1;
}
```

See comments in the tracker for analysis.

Fixes: https://tracker.ceph.com/issues/55851
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/msg/async/ProtocolV2.cc