-
Notifications
You must be signed in to change notification settings - Fork 250
Open
Description
Hi,
we are using synapse for service discovery and wanted to use it with a read only Zookeeper.
But during tests we got the following error:
/usr/lib/ruby/vendor_ruby/zk/client/base.rb:1083:in `check_rc': inputs: {:path=>"/level_1/level_2/level_3", :data=>"", :ephemeral=>false, :sequence=>false, :ignore=>:node_exists} (ZK::Exceptions::NoAuth)
from /usr/lib/ruby/vendor_ruby/zk/client/base.rb:1072:in `call_and_check_rc'
from /usr/lib/ruby/vendor_ruby/zk/client/threaded.rb:584:in `call_and_check_rc'
from /usr/lib/ruby/vendor_ruby/zk/client/base.rb:352:in `create'
from /usr/lib/ruby/vendor_ruby/zk/client/threaded.rb:434:in `create'
from /usr/lib/ruby/vendor_ruby/synapse/service_watcher/zookeeper.rb:121:in `create'
from /usr/lib/ruby/vendor_ruby/synapse/service_watcher/zookeeper.rb:245:in `zk_connect'
from /usr/lib/ruby/vendor_ruby/synapse/service_watcher/zookeeper.rb:39:in `start'
from /usr/lib/ruby/vendor_ruby/synapse.rb:48:in `block in run'
from /usr/lib/ruby/vendor_ruby/synapse.rb:48:in `map'
from /usr/lib/ruby/vendor_ruby/synapse.rb:48:in `run'
from /usr/bin/synapse:60:in `<main>'
While checking the code we saw that synapse uses zk exists to create nodes if they do not exist (e.g. /level_1 exists it will create level_2/level_3).This fails even if the nodes do exist as synapse does not have create permissions in zookeeper.
It would be great if as long a subtree does not exist only the existing root is watched and on a new node creation the watches are registered on the new subtree instead of creating the subtree.
Thank you.
Metadata
Metadata
Assignees
Labels
No labels