Updating Confluence and Jira is a nightmare and keeps you hunting for solutions
First off, I really like Jira and Confluence and we have been using them successfully for all our open source applications. We also use HipChat for our IM communication and use SourceTree for managing code on Github. Just realised that Atlassian has become a company to depend on…
This post goes into the “upgrade nightmare” that occurs every time I upgrade Jira or Confluence. According to Atlassian’s forums and people blog posts I’m not the only one. I do get that these are “enterprise” tools and that upgrading has to take into consideration the customisation that some do, but why aren’t those customisations kept in one place together with all relevant config files?
Upgrading Jira/Confluence involves moving/copying/editing a bunch of files every time. Additionally, one needs to copy over database drivers, change the character set of the database and install certificates. Furthermore, you have to make sure that your license is up-to-date or Jira/Confluence will throw tones of cryptic text at you. Moreover, some of the plugins become incompatible with each update. In short, updating Jira/Confluence takes up a considerable amount of time, is error prone, let alone the frustration experienced. No wonder, I see people comment that; “This upgrade path is a joke and the reason why I stay with version x.”.
Let me describe what happened this time during the upgrades (with solutions).
Updating Confluence from 4.x to 5.3.1
The biggest grief, that I have with this update (despite the obvious moving, editing, etc. chores) is that they are now checking that your character set is “utf8” and the collation is “utf8_bin”. While this is definitely a good idea (who doesn’t use utf8 nowadays?!), forcing it in your update is definitely not one of them. Not only do you get a huge stack trace on your screen, but also no indication at all what you are supposed to do! You only get to know that you are running an issue with your database character set, after copying some of the stack trace into your favourite search engine where you obliviously look for a straw to grasp to…
According to this Knowledge Base article the cause is: “Confluence 5.2.4 added a check for tables with character encoding or collation setting that differs from the database default settings. Using non-default setting in a table can cause upgrade process to fail and leave the database in an inconsistent state.”.
Point is, that even when you have done all of the steps outlined in the article, you still get errors! What gives? What they fail to include in their article is that you have to set the connection in your database string to include utf8 as in: “jdbc:mysql://localhost/confluencedatabase?autoReconnect=true&useUnicode=true&characterEncoding=utf8” (this is in confluence.cfg.xml).
What is now obvious in writing took me many hours to figure out and hunt the web for a solution. Even the Atlassian documentation (albeit very good and informational) is now a web of interlinked content making you go jump trough hops before finding any relevant content.
While I’ve had enough after 8 hours of configuring, I’ve had another frustrating eperience once I tried to hit the Atlassian Marketplace within Jira/Confluence.
The Atlassian Marketplace server is not reachable
Somehow, someone at Atlassian decided that the most informative description to a service that is not reachable is to write”To avoid problems… …you can disable the connection…”. How else would you interpret this error message below:
Clicking on “Click here for more information…” takes you to another KnowledgeBase Article which explain how to disable the connection (duh? the connection is down and I would like to re-establish it). In their “solution” section you can read that you need to allow outbound proxy connection. (Come again, what? Why should I all of the sudden create an outbound rule for the proxy connection?).
Mind you, the connection to the Atlassian Marketplace was working before the update. The server is online, reachable and can ping any other server on the net. So, it isn’t a firewall or other configuration issue. This error only occurs now after upgrading Jira/Confluence and is only an issue within Jira/Confluence.
I found the solution to this (again after hours searching) when I finally found a KnowledgeBase Article in the “Stash” documentation (Stash documentation???) pointing out that one needs to install certificates in the keystore to connect to the Marketplace! Duh! Seriously?! No word of installing certificates in the aforementioned “Click here for more information…” link. No word in the error message itself either! Common Atlassian, you can do better then that!
In summary, Atlassian just showed bad practices in software development or better said in upgrading their product. For one, they’ve made Confluence unavailable to any connection by insisting on the proper character set and the proper collation per column in the database. Furthermore, all plugins and connections to Atlassian (license verification) was blocked because someone decided that the connection needs a certificate.
Both issues wouldn’t have been such a big concern and headache if someone (again this someone…) would have come up with an informative and descriptive message letting the user know what is at fault and pointing to the proper location for a solution.