In the bin/storm script there is logic that attempts to determine the fullpath of the bin directory, and it relies on using cd and pwd like so:
This is problematic if your environment has an exported CDPATH variable which contains a matching entry, because bash's built-in cd command prints out the directory upon successfully matching a CDPATH entry. And then the pwd command prints the same directory again. So the behavior results in the STORM_BASE_DIR variable containing duplicate paths with a newline in between. This results in a broken classpath in the Storm processes, which looks something like this:
Or with the : chars replaced with newlines for ease of readability:
Note that the classpath entry with /conf as a suffix is munged, with a ^J character in between duplicate copies of the base path.
The solution is easy: at the beginning of the bin/storm script we should unset CDPATH.
FYI, this "CDPATH + bash script" problem is covered in this blog entry: