[Date Prev][Date Next] [Chronological] [Thread] [Top]

ITS#6262 regression

While running valgrind --tool=helgrind on test008 I saw some data races that
were quite unexpected, in ldap_pvt_gettime(). These functions are supposed to
detect duplicate timestamps being returned, as noted in git rev
6cbf65642a9d094feddf820b206c1a3af70d5fd9 .

This detection relies on static variables, and as such their invocations must
be mutex-protected, as noted in the function comments (added immediately
after, in ee2001ea4b26b0957040ca0753a94f26f78e6147).

Unfortunately in f3cdcadf89474e7267d9f8f17d2bac46551b2131 the necessary mutex
was removed. This means on multi-processor machines it's possible for us to
generate non-unique CSNs.

  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/