Pierangelo Masarati wrote:
Howard Chu wrote:
The manpage also says "This allows one to set initial values without overwriting/destroying a DB_CONFIG file that was already customized through other means." If the dbconfig settings had any other effect they would (a) no longer be *initial* values and (b) overwrite/destroy an existing DB_CONFIG file. Clearly that's not the intended behavior.
Indeed, I found the man page clear about the fact that Debian's behavior was incorrect (actually, useless). But a second point arose: what if dbconfig statements not present in the original DB_CONFIG were subsequently added as dbconfig? This is what would need to disambiguate.
Once again - does the DB_CONFIG file exist already? That's the only condition that matters. If you edit the slapd.conf and then delete the existing DB_CONFIG file, then of course the change will take effect on the next restart. Otherwise not. Don't make this more complicated than it is.
Another point is that slapd-bdb(5) man page insists on the fact that the DB_CONFIG is not overwritten, but it seems to leave room to speculation that changes to the dbconfig could **temporarily** take effect, which is not true.
Look again. "Specify a configuration directive to be placed in the DB_CONFIG file of the database directory." It does not say that it specifies settings to be used by the database, through any temporary magical means. Nowhere does it imply that the settings will have any effect at all. It simply says that if no DB_CONFIG file was present, then one will be created. Whether the BDB library will ever see these settings is completely unstated.
I believe it should clearly state that if DB_CONFIG is present, any dbconfig directives are simply ignored.
I think such a statement is redundant, but I've added it.