Florian G. Pflug fgp
Tue Dec 20 14:54:53 PST 2005
Hi

I believe that I found a bug in RebuildListenEntries in slony 1.1.
I'm running 5 nodes, arranged in a tree-like structure:
<ascii-art>
1 (master) -- 10 (Provides A) -- 11 (Subscribes A)
|
+------------ 20 (Provides B) -- 21 (Subscribes B)
</ascii-art>

With stock slony 1.1, nodes 10 and 11 decide to listen
for events from 20 and 21 on each other, and on nobody
else. Events from 20 and 21 therefor never reach 10 and 11,
preventing sl_event from getting cleaned eventually.

I did a quick workaround by removing the code that decides
to use an set-subscriber as a preferred source for events.
Later, I realized that this workaround still fails in some
cases (altough it works for me) - probably it'll fail, when
there are "circular" subscriptions (Node x subscribes Y from y,
and node y subscribes X from x).

I believe that replacing RebuildListenEntries with an algorithm
that generates _all_ listen entries that correspond to a non-circular
"way" from one node the another would cure the problem - But since
I don't know why all the special cases in the current algorithm
are necessary, I can't say for sure.

The algorithm poses in the bugreport was a first shot at doing that,
but it's still buggy.

greetings, Florian Pflug


More information about the Slony1-general mailing list