Posted on October 29, 2008 at 6:45 PM in Rants, Fusebox, ColdFusion
Third-party software can be a great addition to your toolbox. A few great examples of that would be ColdBox, Transfer, and ColdSpring. The aforementioned are my personal favorites, since I use them together to quickly build very rich applications that would take me an eternity to build without them.
It took me years to be willing to even use third-party software because I was not the one in control. (There's also the point of wanting to build things myself for the sake of learning, but that's an entirely different topic.) Over the course of the last two-ish years, I have actually enjoyed the benefits of someone else's labor, and I am most appreciative of those who have authored and/or contributed to great projects like ColdBox, Transfer, ColdSpring and others. However, this week I ran into a perfect example of why (on occasion) third-party software really pisses me off.
I have a new project on the table for which a CMS would arguably be best suited. Since this is a pro bono project, I cannot justify the expense of a CMS like Savvy, so off I went in search of an open source CMS. Several months ago I read an article about a relative newcomer to the arena, Sava CMS. At the time I made a mental note to give it a test run when I had the opportunity, so early this week I decided that it was a good time to do so.
I downloaded the project and read through the installation instructions. They seemed pretty straight forward, so I got started. Within a matter of minutes I had all of the prerequisite stuff taken care of, and was ready to launch the admin panel.
Ooooops! An error occurred. Seems that Sava runs on Fusebox. I still haven't found a single word on the site nor in the docs that indicate Fusebox is a requirement. Oh well, no biggie, I'll just add my Fusebox mapping and we'll be up and running.
Ooooops! An error occurred, but no information was delivered to the screen. Off to the logs I went, and quickly found that the settings.ini file was missing a property (version). No problem, I added the property to the file, set to an empty string.
After doing this the admin panel loaded without any issues. Great! The lack of mention regarding Fusebox and the missing property in the ini file are really trivial things that were little more than an annoyance.
I spent a few minutes playing around with various things, and had a really good feeling about what was going on. Sava seems to have a lot of features packed into it, and it also seems to be easily customized and/or extended. But it was getting late, so I headed off to bed.
The next morning when I went to my computer, all of my ColdFusion applications were shut down - each request resulting in a 503 timeout error. "Hmmm, that's strange," I thought, "I haven't seen that before." A restart of the CF service, and I was back in business.
About 2 or 3 hours later, I again started receiving 503 timeout errors on all of my CF requests. "WTF is going on here?" I questioned, a bit more agitated. Another restart of the CF service, and things were back running again, but this was twice in a very short period of time that this had happened after never happening in the past. I knew at that point that this was not some fluke occurrence, so I began trying to figure out what was the cause.
I recently upgraded to CF8, so I thought that maybe there was some sort of bug in CF8 that I was unaware of, and went searching blogs and Adobe to see if that would shed any light on the situation. Bob Silverberg pointed me to a post from Mike Brunt regarding heap memory issues, so I gave that a shot. No dice. Another 2-3 hours pass, another CF service restart.
I know what you're going to say. "Hey, Quack, why didn't you check the CF logs first?" To be honest with you, I'm not really sure why I didn't do that first. I finally did, and I found that a Sava file was the culprit. That in and of itself doesn't bother me at all, but this does:
Unbeknown to me, when I originally ran the Sava admin application, a scheduled task was created to run at 15-minute intervals, indefinitely. The scheduled task ("SiteMonitor") is what was crashing CF.
That absolutely pisses me off. I have gone back over the installation instructions several times, and I have gone through the online docs several times, and nowhere have I found any indication that using the software would add scheduled tasks. In my opinion, this is completely unacceptable. My entire server gets shut down because of a behavior in a third-party software that is not even casually mentioned in the documentation. As a result of these crashes, not only have I lost money in time spent trying to track down the problem, but I have lost money because the resulting crashes affected other revenue-generating applications.
To those of you who author and release software - closed or open source, if for some reason you must alter the end user's server environment in any way, be sure to explicitly indicate - preferably in several places - that installing your software will do so, and let it be known what those changes will be. Otherwise, you just might end up pissing off your potential users who will not only refuse to give you a second chance, but they might also post rants about it on their blog. :D
- ColdBox (21) [RSS]
- ColdFusion (92) [RSS]
- Fusebox (3) [RSS]
- General (22) [RSS]
- jQuery (15) [RSS]
- Kalendar (1) [RSS]
- Linux (1) [RSS]
- Mura CMS (1) [RSS]
- Railo (1) [RSS]
- Rants (5) [RSS]
- Transfer (8) [RSS]
- Uni-Form Tag Library (36) [RSS]