-
Notifications
You must be signed in to change notification settings - Fork 308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAOS-16876 vos: skip DTX record when load partial committed DTX - b26 #15882
Conversation
Ticket title is 'LRZ: m02r01s07dao engine coredumps with vos EMRG src/vos/ilog.c:411 ilog_open() Assertion' |
0ecf0aa
to
26c4ca1
Compare
@@ -2866,6 +2866,9 @@ vos_dtx_act_reindex(struct vos_container *cont) | |||
dae->dae_need_release = 1; | |||
D_INIT_LIST_HEAD(&dae->dae_link); | |||
|
|||
if (DAE_FLAGS(dae) & DTE_PARTIAL_COMMITTED) | |||
DAE_REC_CNT(dae) = 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The DAE_REC_CNT is supposed to be zero when the partial commit flag is set, so It's better to throw an error message when we hit non-zero record count for partial commit entry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At that time, no data corruption happened yet, so such error or warning may misguide the user.
It is used to handle existing partial committed DTX records that were generated when ran as DAOS-2.6.3-rc{1,2} to avoid repeated DTX commit after engine restarted. To be safe, it is required for the user/admin to explicitly set server side environment variable "DAOS_SKIP_OLD_PARTIAL_DTX" when restart the engine that has ever run as DAOS-2.6.3-rc{1,2}. If the user has never used such version, such as directly upgrading from 2.6.1 to 2.6.3-rc3 or newer, then please do NOT set this environment variable. Signed-off-by: Fan Yong <[email protected]>
26c4ca1
to
9346675
Compare
It is used to handle existing partial committed DTX records that were
generated when ran as DAOS-2.6.3-rc{1,2} to avoid repeated DTX commit
after engine restarted.
To be safe, it is required for the user/admin to explicitly set server
side environment variable "DAOS_SKIP_OLD_PARTIAL_DTX" when restart the
engine that has ever run as DAOS-2.6.3-rc{1,2}. If the user has never
used such version, such as directly upgrading from 2.6.1 to 2.6.3-rc3
or newer, then please do NOT set this environment variable.
Before requesting gatekeeper:
Features:
(orTest-tag*
) commit pragma was used or there is a reason documented that there are no appropriate tags for this PR.Gatekeeper: