[Bug 1945555] Re: [SRU] accept undecodable multi-block bluefs transactions on log
gerald.yang
1945555 at bugs.launchpad.net
Wed Dec 8 10:05:49 UTC 2021
** Description changed:
[Impact]
Multi-block transaction could fail during unexpected power down
in this case, it should be stop replaying this log instead of throwing unrecoverable error
[Test Case]
It's too difficult to simulate power outage during multi-block transaction on disk, so the way I test this patch is to simulate a multi-block transaction and trigger a decode error in
try {
- auto p = bl.cbegin();
- decode(t, p);
- seen_recs = true;
- }
+ auto p = bl.cbegin();
+ decode(t, p);
+ seen_recs = true;
+ }
Add the following line right after decode(t, p) to throw an error
throw buffer::malformed_input("error test");
According to the patch description https://github.com/ceph/ceph/pull/42830
this error will be considered as a normal bluefs log reply stop condition and will *not* prevent OSD from starting
After the error test is triggered, OSD can still be started normally
[Where problems could occur]
- This upstream PR was created 2 months ago and Luminous was EOL upstream for a while
- so Luminous Bluefs code is outdated, in order to backport this commit
- it might also need to backport some dependencies
+ This upstream PR was created 2 months ago and Luminous was EOL upstream for a while, so no backport and test by upstream
+ In order to backport this commit, it also needs to backport some dependencies
[Other Info]
upstream tracker: https://tracker.ceph.com/issues/52079
PR: https://github.com/ceph/ceph/pull/42830
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ceph in Ubuntu.
https://bugs.launchpad.net/bugs/1945555
Title:
[SRU] accept undecodable multi-block bluefs transactions on log
Status in ceph package in Ubuntu:
In Progress
Status in ceph source package in Bionic:
In Progress
Bug description:
[Impact]
Multi-block transaction could fail during unexpected power down
in this case, it should be stop replaying this log instead of throwing unrecoverable error
[Test Case]
It's too difficult to simulate power outage during multi-block transaction on disk, so the way I test this patch is to simulate a multi-block transaction and trigger a decode error in
try {
auto p = bl.cbegin();
decode(t, p);
seen_recs = true;
}
Add the following line right after decode(t, p) to throw an error
throw buffer::malformed_input("error test");
According to the patch description https://github.com/ceph/ceph/pull/42830
this error will be considered as a normal bluefs log reply stop condition and will *not* prevent OSD from starting
After the error test is triggered, OSD can still be started normally
[Where problems could occur]
This upstream PR was created 2 months ago and Luminous was EOL upstream for a while, so no backport and test by upstream
In order to backport this commit, it also needs to backport some dependencies
[Other Info]
upstream tracker: https://tracker.ceph.com/issues/52079
PR: https://github.com/ceph/ceph/pull/42830
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1945555/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list