Stig Rohde Døssing created STORM-2978:
-----------------------------------------
Summary: The fix for STORM-2706 is broken, and adds a transitive
dependency on Zookeeper 3.5.3-beta for projects that depend on e.g. storm-kafka
Key: STORM-2978
URL: https://issues.apache.org/jira/browse/STORM-2978
Project: Apache Storm
Issue Type: Bug
Affects Versions: 1.2.1, 1.1.2, 2.0.0
Reporter: Stig Rohde Døssing
Shinhyung Yang wrote on the mailing list:
{quote}I have been running the Yahoo streaming benchmarks on Storm 0.9.7 [...]
With the introduction of Storm 1.2.0, I decided to upgrade from 0.9.7 to 1.2.0.
Currently I'm testing Yahoo streaming benchmark's topology on the new setup and
I end up getting the following exceptions:
[...]
Caused by: org.apache.zookeeper.KeeperException$UnimplementedException:
KeeperErrorCode = Unimplemented for
/ad-events/7183b5b2-4971-41a1-b86d-0788f646bc64/partition_0
[...]
{quote}
When fixing STORM-2706, I used the Storm parent's DependencyManagement section
to force Zookeeper to version 3.4.6 everywhere in Storm. Sadly it turns out
that this mechanism doesn't extend to external projects that depend on Storm
components. While e.g. storm-kafka will use Zookeeper 3.4.6 when built as part
of Storm, it will have a transitive dependency on Zookeeper 3.5.3-beta when an
external project declares a dependency on storm-kafka.
A quick google indicates that the "proper" way to export the transitive
dependency versions to downstream projects would be with a BOM pom, i.e. we'd
create a separate BOM project for Storm that exports our DependencyManagement,
and users would then import the BOM. I'm not sure if we want to do that on
master, but since it is a breaking change I don't think we should do this on
1.x.
For 1.x (and maybe master?), we'll have to make sure that Curator dependencies
always exclude Zookeeper, and all projects depending on Curator will have to
explicitly declare the right Zookeeper dependency version.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)