<feed xmlns='http://www.w3.org/2005/Atom'>
<title>samba.git/lib/ntdb, branch talloc-2.0.8</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/'/>
<entry>
<title>pyntdb: Fix init function for ntdb python module.</title>
<updated>2012-09-25T20:40:39+00:00</updated>
<author>
<name>Pierre Lejeune</name>
<email>superheron@gmail.com</email>
</author>
<published>2012-09-25T18:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=809004689a5ec60066d1ae26e9599ec09895c46c'/>
<id>809004689a5ec60066d1ae26e9599ec09895c46c</id>
<content type='text'>
Signed-Off-By: Jelmer Vernooij &lt;jelmer@samba.org&gt;

Autobuild-User(master): Jelmer Vernooij &lt;jelmer@samba.org&gt;
Autobuild-Date(master): Tue Sep 25 22:40:39 CEST 2012 on sn-devel-104
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-Off-By: Jelmer Vernooij &lt;jelmer@samba.org&gt;

Autobuild-User(master): Jelmer Vernooij &lt;jelmer@samba.org&gt;
Autobuild-Date(master): Tue Sep 25 22:40:39 CEST 2012 on sn-devel-104
</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: Try to fix the build on Solaris which does not have err</title>
<updated>2012-09-23T04:31:01+00:00</updated>
<author>
<name>Andrew Bartlett</name>
<email>abartlet@samba.org</email>
</author>
<published>2012-09-23T03:20:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=08d3062fc3ece6b5d98e32bad5f1d54c088b0dd0'/>
<id>08d3062fc3ece6b5d98e32bad5f1d54c088b0dd0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lib/ntdb: Fix format string errors found by -Werror=format in ntdb tests</title>
<updated>2012-07-30T04:25:10+00:00</updated>
<author>
<name>Andrew Bartlett</name>
<email>abartlet@samba.org</email>
</author>
<published>2012-07-30T03:40:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=17bddd15de8420629b91f02869fa99880cd80bca'/>
<id>17bddd15de8420629b91f02869fa99880cd80bca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ccan: we're subsystems, not a library.</title>
<updated>2012-06-29T04:22:44+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-29T02:39:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=f3862b917168ade88a048cdee688986b0479fe37'/>
<id>f3862b917168ade88a048cdee688986b0479fe37</id>
<content type='text'>
Don't expose a libccan.so; it would produce clashes if someone else
does the same thing.  Unfortunately, if we just change it from a
SAMBA_LIBRARY to a SAMBA_SUBSYSTEM, it doesn't create a static library
as we'd like, but links all the object files in.  This means we get
many duplicates (eg. everyone gets a copy of tally, even though only
ntdb wants it).

So, the solution is twofold:
1) Make the ccan modules separate.
2) Make the ccan modules SAMBA_SUBSYSTEMs not SAMBA_LIBRARYs so we don't
   build shared libraries which we can't share.
3) Make the places which uses ccan explicit.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

Autobuild-User(master): Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Autobuild-Date(master): Fri Jun 29 06:22:44 CEST 2012 on sn-devel-104
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't expose a libccan.so; it would produce clashes if someone else
does the same thing.  Unfortunately, if we just change it from a
SAMBA_LIBRARY to a SAMBA_SUBSYSTEM, it doesn't create a static library
as we'd like, but links all the object files in.  This means we get
many duplicates (eg. everyone gets a copy of tally, even though only
ntdb wants it).

So, the solution is twofold:
1) Make the ccan modules separate.
2) Make the ccan modules SAMBA_SUBSYSTEMs not SAMBA_LIBRARYs so we don't
   build shared libraries which we can't share.
3) Make the places which uses ccan explicit.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

Autobuild-User(master): Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Autobuild-Date(master): Fri Jun 29 06:22:44 CEST 2012 on sn-devel-104
</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: take advantage of direct access across expand.</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=7c1d9fb3c12d20779afe8293b6a867bd2061077f'/>
<id>7c1d9fb3c12d20779afe8293b6a867bd2061077f</id>
<content type='text'>
This means we no longer have to unmap if we want to compare a record.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This means we no longer have to unmap if we want to compare a record.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: test arbitrary operations during ntdb_parse_record().</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=4c51ee1116c983ceef3804d79954aafad1b935ad'/>
<id>4c51ee1116c983ceef3804d79954aafad1b935ad</id>
<content type='text'>
In particular, this tests that we can store enough records to make the
database expand while we map the given record.  We use a global lock for
this, but it could happen in theory with another process.

It also tests the that we can recurse inside ntdb_parse_record().

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In particular, this tests that we can store enough records to make the
database expand while we map the given record.  We use a global lock for
this, but it could happen in theory with another process.

It also tests the that we can recurse inside ntdb_parse_record().

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: make database read-only during ntdb_parse() callback.</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=01ec4a72de56ade54bbbc92e0a408771390c5c12'/>
<id>01ec4a72de56ade54bbbc92e0a408771390c5c12</id>
<content type='text'>
Since we have a readlock, any write will grab a write lock: if it happens
to be on the same bucket, we'll fail.

For that reason, enforce read-only so every write operation fails
(even for NTDB_NOLOCK or NTDB_INTERNAL dbs), and document it!

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we have a readlock, any write will grab a write lock: if it happens
to be on the same bucket, we'll fail.

For that reason, enforce read-only so every write operation fails
(even for NTDB_NOLOCK or NTDB_INTERNAL dbs), and document it!

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: allow direct access for NTDB_INTERNAL dbs during expansion.</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=bd5c061932d9aaf2e66cd56a39743c9ff34c3a88'/>
<id>bd5c061932d9aaf2e66cd56a39743c9ff34c3a88</id>
<content type='text'>
NTDB_INTERNAL databases need to malloc and copy to keep old versions
around if we expand, in a similar way to the manner in which keep old
mmaps around.

Of course, it only works for read-only accesses, since the two copies
are not synced.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NTDB_INTERNAL databases need to malloc and copy to keep old versions
around if we expand, in a similar way to the manner in which keep old
mmaps around.

Of course, it only works for read-only accesses, since the two copies
are not synced.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: enhancement to allow direct access to the ntdb map during expansion.</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=0a34f342c3facace0767ff08f05532c9f161e305'/>
<id>0a34f342c3facace0767ff08f05532c9f161e305</id>
<content type='text'>
This means keeping the old mmap around when we expand the database.
We could revert to read/write, except for platforms with incoherent
mmap (ie. OpenBSD), where we need to use mmap for all accesses.

Thus we keep a linked list of old maps, and unmap them when the last access
finally goes away.

This is required if we want ntdb_parse_record() callbacks to be able
to expand the database.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This means keeping the old mmap around when we expand the database.
We could revert to read/write, except for platforms with incoherent
mmap (ie. OpenBSD), where we need to use mmap for all accesses.

Thus we keep a linked list of old maps, and unmap them when the last access
finally goes away.

This is required if we want ntdb_parse_record() callbacks to be able
to expand the database.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>ntdb: don't munmap the database on every close.</title>
<updated>2012-06-22T05:35:17+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2012-06-22T00:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/samba.git/commit/?id=66d151d6893657b31c419d422bffeefc506e2319'/>
<id>66d151d6893657b31c419d422bffeefc506e2319</id>
<content type='text'>
Since we can have multiple openers, we should leave the mmap in place
for the other openers to use.  Enhance the test to check the bug (it
still works, because without mmap we fall back to read/write, but
performance would be terrible!).

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we can have multiple openers, we should leave the mmap in place
for the other openers to use.  Enhance the test to check the bug (it
still works, because without mmap we fall back to read/write, but
performance would be terrible!).

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;

</pre>
</div>
</content>
</entry>
</feed>
