You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@storm.apache.org by "Stig Rohde Døssing (JIRA)" <ji...@apache.org> on 2018/02/26 23:13:00 UTC

[jira] [Created] (STORM-2978) 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

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)