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 */


--
Kees
_______________________________________________
389-users mailing list -- 389-users@lists.fedoraproject.org
To unsubscribe send an email to 389-users-le...@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.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to