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 _______________________________________________ Slony1-general mailing list [email protected] http://gborg.postgresql.org/mailman/listinfo/slony1-general
