[389-devel] 389 DS nightly 2020-06-23 - 95% PASS

2020-06-22 Thread vashirov
https://fedorapeople.org/groups/389ds/ci/nightly/2020/06/23/report-389-ds-base-1.4.4.3-20200622gitfe48b60.fc32.x86_64.html
___
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-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-devel@lists.fedoraproject.org


[389-devel] please revie: PR 51173 - Log warning if nsslapd-threadnumber is too low or too high

2020-06-22 Thread Mark Reynolds

https://pagure.io/389-ds-base/pull-request/51173

--

389 Directory Server Development Team
___
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-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-devel@lists.fedoraproject.org


[389-devel] Re: Roadmap for rust as a requirement in the project

2020-06-22 Thread William Brown


> On 16 Jun 2020, at 09:37, Mark Reynolds  wrote:
> 
> 
> On 6/11/20 8:15 PM, William Brown wrote:
>> Hi all,
>> 
>> Background: https://pagure.io/389-ds-base/issue/51140
>> 
>> 
>> Ludwig and Mark both raised some good points here. First is that features 
>> today (EntryUUID, LDAPSsoToken) are both locked behind another language. 
>> Rightly so, they shouldn't be hidden here forever. As well, Mark wants to 
>> ask what it would take to enable by default.
>> 
>> ** Why did I use the fedse.c to load a plugin entry?
>> 
>> Because we don't (fully) support startup migrations yet. Mark has privately 
>> reminded me that he has reviewed 
>> https://pagure.io/389-ds-base/pull-request/49579 and that I should revive 
>> it. This v4 plugin adds a stateful assertion of entries allowing better 
>> migrations beyond what fedse.c's bootstrap can achieve. IE we can create an 
>> entry if it does not exist, and modify it partially if an admin has changed 
>> it (ie we can tweak defaults but without affecing say pluginEnabled). There 
>> was an issue viktor raised about pbkdf2 where it could not be disabled, and 
>> this would resolve it. Most likely, I will break the on startup migrations 
>> out from the v4 plugin patch set, and make it it's own change, and move some 
>> of the content from fedse.c and friends into this.
>> 
>> ** TODO list to get rust enabled by default.
>> 
>> I think there is still a bit of work to do to enable by default, but I think 
>> we are pretty close. Roughly ordered, this is the list of things that has to 
>> happen to let us enable rust by default.
>> 
>> - everyone -> test that you can build and run tests with --enable-rust 
>> --disable-asan in your development environment so that we can work out and 
>> issues that may exist for us as developers.
> I meant to try this again to confirm, but it worked for me a few weeks ago on 
> Fedora.  The build took a lot longer :-( but it worked ;-)

It'll get quicker with some of the cleanups I want to do, but release builds 
with rust will be a lot slower due to the fact they can perform more aggressive 
optimisation because of the stronger type rules AND they can also do stuff like 
LTO where we don't in 389 atm. 

https://gcc.gnu.org/wiki/LinkTimeOptimization

>> - william -> fix the intentional name leak in the rust slapi plugin 
>> interface to use lazy_static. Today this triggers LSAN which breaks basic 
>> test suites.
>> - william -> clean up libsds linking and some of the related elements
>> - william -> revive and make on upgrade configs better (see above), 
>> potentially break it out from the v4 plugin patch.
>> - william + mark -> check that our respective major distros/releases can 
>> build with --enable-rust in release rpms
> As long as "make -f rpm.mk dist-bz2" does all the cargo building it should 
> work fine on Fedora and RHEL.

Sure, we'll need to test that at some point to be sure. I know it already works 
in SUSE :) 

>> - william + viktor -> check that we can pass with --enable-rust and 
>> --enable-asan, especially in CI
>> - anyone interested -> update wiki contributing guide to include rust as a 
>> requirement
>> - (optional) anyone interested (but not william) -> add a section to the 
>> wiki on using rust in development
>> - team -> agree we are happy, and make configure.ac have --enable-rust by 
>> default
>> - team -> after a few weeks / months, remove the ifdefs, duplicate C 
>> versions of Rust features, and enable/disable features from configure.ac
>> 
>> 
>> Does this seem reasonable to everyone? I really want to make sure we do this 
>> right as a team, and we are all happy with it (I don't want a repeat of 
>> nunc-stans ;) ). If we agree on this, I will open some tickets up, add the 
>> relevant blocks/ordering and assign out the work.
> 
> Thanks for getting this discussion started!   I think we already have most of 
> this in place to use rust by default today, but we need to do some more 
> testing, etc.

For sure! 

Also worth noting that don't have to be the one to do all the "william" items, 
if other people want to step up they can. I need to tidy up this syncrepl stuff 
and finish up openldap migration stuff, but I think the rust tools will be a 
valuable part of that openldap migration so I will do it sooner than later :) 



> 
> Thanks,
> 
> Mark
> 
>> 
>> Thank you all!
>> 
>> —
>> Sincerely,
>> 
>> William Brown
>> 
>> Senior Software Engineer, 389 Directory Server
>> SUSE Labs
>> ___
>> 389-devel mailing list -- 389-devel@lists.fedoraproject.org
>> To unsubscribe send an email to 389-devel-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-devel@lists.fedoraproject.org
> 
> -- 
> 
> 389 Directory Server Development Team
> 

—
Sincerely,


[389-devel] Advice on a problem (syncrepl + entryuuid)

2020-06-22 Thread William Brown
Hi all,

I've been a bit stuck on this problem, and I was hoping for some advice or 
thoughts. 

So, part of the migration from openldap, and in general, is that we support 
entryuuid. That's all fine. I made a decision to allow entryuuid to diverge 
from nsuniqueid, as entryuuid is often a primary key in many databases. So we 
should be able to bring in entryuuids' that already exist.

This creates a dilema in syncrepl though. Syncrepl currently uses the 
nsuniqueid in place of the entryuuid for sync. It does not appear to be 
straight forward to change this to use entryuuid if it exists - when we send a 
delete, that comes from the retro changelog, and it stores a delete as a delete 
with the nsuniqueid. That also means the entry that held the nsunique in 
question may no longer exist so we cant reference what the entryuuid was.

So this leads me to a problem of "how to solve it".

I still think allowing entryuuid to diverge from nsuniqueid is the right call. 
It opens more scenarioes up to us for migration.

So some options:

* EntryUUID has to be consistent to nsuniqueid, and when we see a create with 
an entryUuid, we assign the nsunique from the entryuuid we have rather than 
generating it. If there is no entryuuid, we generate it from the nsuniqueid.
* Extend the retrochangelog to store the entryuuid as well as the nsunique for 
deletes/mods/adds.
* Have syncrepl "strip" entryuuid, so that the inconsistent attribute is never 
sent to clients (but this means that entryuuid between 389 -> syncrepl client 
diverges, which could have other consequences).
* Rather than send the set of deletes, we can send a list of 'what uuids are 
still present' that implies all others are removed. It's less efficient on the 
wire, but it works around the problem. (More risk of breaking IPA parts though).
* Disallow entryuuid and syncrepl plugins at the same time - you have one or 
the other (probably good for IPA tbh).
* Other thoughts?

I'm honestly not sure whats the best choice - they are all tradeoffs in some 
way or another, with their own risks. So I'd appreciate your advice here. 

—
Sincerely,

William Brown

Senior Software Engineer, 389 Directory Server
SUSE Labs
___
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-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-devel@lists.fedoraproject.org