<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/ipcpd/normal/dht.c, branch 0.9.2</title>
<subtitle>Ouroboros main repository</subtitle>
<id>http://www.ouroboros.rocks/cgit/ouroboros/atom?h=0.9.2</id>
<link rel='self' href='http://www.ouroboros.rocks/cgit/ouroboros/atom?h=0.9.2'/>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/'/>
<updated>2018-01-09T08:53:56+00:00</updated>
<entry>
<title>include, src: Update copyright to 2018</title>
<updated>2018-01-09T08:53:56+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2018-01-09T07:18:02+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=0160f2df8335aaa516d13334042e429a0bbfd0ad'/>
<id>urn:sha1:0160f2df8335aaa516d13334042e429a0bbfd0ad</id>
<content type='text'>
Happy New Year, Ouroboros.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>ipcpd: Wait for DHT running state before access</title>
<updated>2017-12-06T16:05:13+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-12-06T16:01:48+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=0d8946ad80c5adb9a0ce76d848712af78f5910da'/>
<id>urn:sha1:0d8946ad80c5adb9a0ce76d848712af78f5910da</id>
<content type='text'>
The DHT will now wait for the DHT_RUNNING state before handling
request messages, ensuring that the parameters are set correctly
before they are read and sent at JOIN. Also fixes a re-introduced
assertion failure when a JOIN fails.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>ipcpd: Fix missing bracket in DHT</title>
<updated>2017-12-05T20:38:18+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-12-05T20:37:31+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=0cbb0f3ac64a8818fdc4f4de1a7521f435f7bcaf'/>
<id>urn:sha1:0cbb0f3ac64a8818fdc4f4de1a7521f435f7bcaf</id>
<content type='text'>
ca2f47d had a missing bracket after a last-minute update to simplify
the logic.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>ipcpd: Update DHT buckets in JOINING state</title>
<updated>2017-12-05T20:27:38+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-12-05T20:24:37+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=ca2f47d8b1d2061b0fc63ebefe53424e28ef18bb'/>
<id>urn:sha1:ca2f47d8b1d2061b0fc63ebefe53424e28ef18bb</id>
<content type='text'>
The DHT buckets were not updated in JOINING state, which sometimes
caused the DHT to miss its first peer update when joining and become
isolated. This also checks if a name is already registered to avoid
adding it multiple times.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>ipcpd: Only update DHT buckets in running state</title>
<updated>2017-11-28T20:38:02+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-11-28T17:34:39+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=4be8eb2ef77648e71ce22b465a49991b532d1ace'/>
<id>urn:sha1:4be8eb2ef77648e71ce22b465a49991b532d1ace</id>
<content type='text'>
This fixes accessing buckets when a DHT join fails.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>ipcpd: Create new SDUs for DHT join retries</title>
<updated>2017-11-07T10:25:21+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-11-07T06:35:44+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=ec67efa3059f1fb879e4b6def0b947b9288144a7'/>
<id>urn:sha1:ec67efa3059f1fb879e4b6def0b947b9288144a7</id>
<content type='text'>
The DHT join operation left an SDU in the rdrbuff for a couple of
seconds during retries, which may cause the system to block if there
is heavy traffic. This patch releases the sdb when the write fails and
creates a new packet for every retry.

Signed-off-by: Dimitri Staessens &lt;dimitri.staessens@ugent.be&gt;
Signed-off-by: Sander Vrijders &lt;sander.vrijders@ugent.be&gt;
</content>
</entry>
<entry>
<title>lib: Deprecate ouroboros_init and ourboros_fini</title>
<updated>2017-10-14T11:19:10+00:00</updated>
<author>
<name>dimitri staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-10-12T00:15:39+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=bedd1d4eadde9ab64f924c69eba716b015599e67'/>
<id>urn:sha1:bedd1d4eadde9ab64f924c69eba716b015599e67</id>
<content type='text'>
This commit deprecates ouroboros_init and ouroboros_fini and adds them
as a constructor or destructor, causing these function to be run
automatically when a program that links to the library calls and exits
main(). For this to fully work, the library had to be split so that we
can avoid the irmd calling these functions (the IRMd has to create the
shm structures on which these calls depend).

The library is split in 3 parts: libouroboros-dev, libouroboros-irm
and libouroboros-common. The latter is linked to the other two so that
including libouroboros-dev or libouroboros-irm will also link
libouroboros-common.
</content>
</entry>
<entry>
<title>lib: Cancel tpm threads instead of marking exit</title>
<updated>2017-09-30T15:58:18+00:00</updated>
<author>
<name>dimitri staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-09-30T15:58:18+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=9405ad97e20686f74c06bcbac9523a8b4f10272e'/>
<id>urn:sha1:9405ad97e20686f74c06bcbac9523a8b4f10272e</id>
<content type='text'>
This makes the threadpool use pthread_cancel instead of setting an
exit flag that threadpool managed threads check periodically. This
drastically reduces CPU consumption in the irmd when running a lot of
applications. It requires cancellation handlers in the ipcp and irmd
to be implemented to ensure safe cancellation during operation and
shutdown.
</content>
</entry>
<entry>
<title>ipcpd: normal: Set clock to realtime clock</title>
<updated>2017-09-26T09:02:03+00:00</updated>
<author>
<name>Sander Vrijders</name>
<email>sander.vrijders@ugent.be</email>
</author>
<published>2017-09-26T09:02:03+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=90900d36b7a380fee19b2171f4e49eed1eb35e8d'/>
<id>urn:sha1:90900d36b7a380fee19b2171f4e49eed1eb35e8d</id>
<content type='text'>
A pthread_cond_wait was using the pthread_cond_clock and thereby
timing out constantly, consuming 100% CPU. This changes it to use the
realtime clock.
</content>
</entry>
<entry>
<title>ipcpd: Fix deadlock in DHT</title>
<updated>2017-09-24T20:00:20+00:00</updated>
<author>
<name>dimitri staessens</name>
<email>dimitri.staessens@ugent.be</email>
</author>
<published>2017-09-24T19:43:05+00:00</published>
<link rel='alternate' type='text/html' href='http://www.ouroboros.rocks/cgit/ouroboros/commit/?id=a8ec5017e0a4452f520c90f68dc049d28a922690'/>
<id>urn:sha1:a8ec5017e0a4452f520c90f68dc049d28a922690</id>
<content type='text'>
The lookup_update was waiting for the LU_INIT state to resolve under
dht-&gt;lock which prevented that update.

This PR fixes this bug, but leaves a (very rare) bug when the
lookup_destroy is called while the lookup_update is waiting for the
LU_INIT state to resolve. The solution also is a (harmless) lock
inversion, but this is also not the best.

Fixes #51
Fixes #52
</content>
</entry>
</feed>
