vert-x3 / vertx-zookeeper

Zookeeper based cluster manager implementation
Other
73 stars 67 forks source link

Using map names with forward slashes (`/` character) returns empty childData #100

Open doctorpangloss opened 4 years ago

doctorpangloss commented 4 years ago

Version

vertx-hazelcast:3.9.1

Context

https://github.com/vert-x3/vertx-zookeeper/blob/fdd14dcc2855091df15fbb11bc265fbd425fd71d/src/main/java/io/vertx/spi/cluster/zookeeper/impl/ZKAsyncMultiMap.java#L259

Observe that if the user supplies a map key that contains forward slashes, empty data will be returned from Zookeeper due to this split.

Do you have a reproducer?

Simply create a map named Test/map.

stream-iori commented 4 years ago

Emm..

We can replace forward slash which in input with empty string from vertx-zookeeper, but can not replace it from other input, such as zkCli.sh I will make PR to fix it.

On Jul 7, 2020, at 10:30 AM, Benjamin Berman notifications@github.com wrote:

Version

vertx-hazelcast:3.9.1

Context

https://github.com/vert-x3/vertx-zookeeper/blob/fdd14dcc2855091df15fbb11bc265fbd425fd71d/src/main/java/io/vertx/spi/cluster/zookeeper/impl/ZKAsyncMultiMap.java#L259 https://github.com/vert-x3/vertx-zookeeper/blob/fdd14dcc2855091df15fbb11bc265fbd425fd71d/src/main/java/io/vertx/spi/cluster/zookeeper/impl/ZKAsyncMultiMap.java#L259 Observe that if the user supplies a map key that contains forward slashes, empty data will be returned from Zookeeper due to this split.

Do you have a reproducer?

Simply create a map named Test/map.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/vert-x3/vertx-zookeeper/issues/100, or unsubscribe https://github.com/notifications/unsubscribe-auth/AACCWE4ZNB35VFR65B5FK6TR2KCC3ANCNFSM4OSLDPKQ.

doctorpangloss commented 4 years ago

One possibility is to throw an IllegalArgumentException that is implementation specific, so that at least people don't get an extremely cryptic crash (it right now fails to deserialize an empty object)