Recently we were struggling with what looked to be a bug with the Sun Portal psadmin tool. Seems that the psadmin deploy-portlet command was failing when deploying a portlet to a multi-server portal instance (in our case we had an App Server cluster with 4 nodes).
Like a good Tier One Sun Partner we opened a support ticket. Typically, the support process is a long arduous process of describing the problem, sending logs and hoping you can get the ticket escalated. To be fair to the first level support teams, 9 times out 10, due to the complexity of the problem, we need to talk to a product engineering support person to describe the context of the problem.
As with most customer situations, just opening a ticket with support isn’t enough. Our client is usually in a critical support state. The clock is ticking. We need a solution…But this time…Guess what! We found the fix ourselves!
How did we do this? One of our talented engineers (Vince) went to OpenPortal and looked over the source for the psadmin “deploy” command. To our pleasant surprise, Vince identified this tricky little bug. The code read such that deploying to 2 nodes within the Portal instance would work fine but more than 2 nodes would not.
So, Vince modified the code, recompiled and tested our fix. It worked!! Real Nice!
We contacted Sun support with the fix and boy they were exhilarated. What a win/win situation. We delivered a critical bug fix to our customer’s project and the change rolls back into OpenPortal as a supported fix.
Not only did we collaborate with the Open Portal project to diagnose and build a fix, but we supplied the source changes with the ticket. It was quick work from that point for Sun to close the ticket and work on a hot fix (to be rolled into the next formal release). More importantly, the fix is supported!
This all made me think back to a conversation I had with Jonathan Schwartz a couple years back. Specifically I was commenting upon the Sun support model and the challenges we faced in the field with extending and fixing the products. I said something to the effect “I don’t want to own source to your products John, I just need to be able to fix something that will help the customer, but more importantly make it’s way back into the product”. Well our wish has come true.
Open Source changes the escalation process. If you have folks that are talented enough to navigate the product code base, interpret the functionally and recompile the code, you have a tactical advantage. Typically you’d work the forums and support process for a couple of weeks with mixed results. Now, in most situations you can by pass layers of support and shorten the patch process. Win / Win in my book.
After all, what good is Open Source if it’s not supported?