On 13-07-2022 13:39, Kees Bakker wrote:
> On 13-07-2022 13:01, Kees Bakker wrote:
>> Hi,
>>
>> [...]
>> In other words, with 1.4.3.28 I don't get to see the message with
>> first_time and cur_time. I'm
>> quite puzzled how that can happen. The code is like this (stripped a
>> bit):
>>
>> if (!ts.ts_s_trimming) {
>> int must_trim = 0;
>> /* See if we need to trim */
>> /* Has enough time elapsed since our last check? */
>> if (cur_time - ts.ts_s_last_trim >= (ts.ts_c_max_age)) {
>> /* Is the first entry too old? */
>> time_t first_time;
>> ...
>> slapi_log_err(SLAPI_LOG_PLUGIN, RETROCL_PLUGIN_NAME,
>> "cltrim: ldrc=%d, first_time=%ld,
>> cur_time=%ld\n",
>> ldrc, first_time, cur_time);
>> if (LDAP_SUCCESS == ldrc && first_time > (time_t)0L
&&
>> first_time + ts.ts_c_max_age < now_maxage)
>> {
>> must_trim = 1;
>> }
>> }
>> if (must_trim) {
>> ...
>> } else {
>> slapi_log_err(SLAPI_LOG_PLUGIN, RETROCL_PLUGIN_NAME,
>> "retrocl_housekeeping - changelog does
>> not need to be trimmed\n");
>> }
>> }
>>
>> Puzzled, because I don't understand why "cur_time -
>> ts.ts_s_last_trim >= (ts.ts_c_max_age)"
>> is FALSE.
>
> Unless, ...
> cur_time is the relative time since start of the server (not sure if
> this is true,
> but the code in eq_call_all_rel() seems to suggest it)
> ts.ts_s_last_trim is 0 at startup
>
> Shouldn't we compare "first_time" with the current (non-relative)
time?
First an answer to Pierre's question
I had nsslapd-changelogmaxage set to 480d. (The reason for that is
that I just want to trim
the small subset.)
I changed maxage back to the default 2d. Now I see the this message,
quickly after restart.
Jul 13 14:33:13
iparep4.example.com ns-slapd[141407]:
[13/Jul/2022:14:33:13.806790126 +0200] - DEBUG - DSRetroclPlugin -
cltrim: ldrc=0, first_time=1615990532, cur_time=12006600
I'm now convinced that the logic is (still) flawed. There is still a
mix of UTC time and relative time.
int must_trim = 0;
/* See if we need to trim */
/* Has enough time elapsed since our last check? */
if (cur_time - ts.ts_s_last_trim >= (ts.ts_c_max_age))
{ <<<< wrong condition
/* Is the first entry too old? */
time_t first_time;
time_t now_maxage = slapi_current_utc_time(); /* real
time for trimming candidates */
) that was fixed in you
version 1.4.3.28-6.
I think 'first_time' is coming from the first registered record in the
retroCL. I wonder if it could be because of an old retroCL DB
containing an old value, not matching current monotonic time. Could you
dump the first record of the retroCL (dbscan) ?
regards
thierry
--
Kees
_______________________________________________
389-users mailing list -- 389-users(a)lists.fedoraproject.org
To unsubscribe send an email to 389-users-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/389-users@lists.fedoraproje...
Do not reply to spam on the list, report it:
https://pagure.io/fedora-infrastructure