Wednesday, May 05, 2021

Why design matters

So today I was handed  a bug report from a client on our newest software release.  It was a strange one involving permissions when running batch jobs.  It was not duplicatable in-house and we had the client demo it for us.  They were able to do so, and after reviewing their system I found that one of our standing server programs was running in test mode out of the test install, but as the wrong user (owner).  Digging down through the code, reviewing interactions with the client, after 4 hours I understood how this happened.  The client had installed the software for testing using the standard procedure but had hit an issue with running a sub-system of the software.  They contacted support and support restarted several servers on the test install.  This was done correctly by them.  However, when they restarted the servers using the tool they were supposed to, the servers were restarted with the wrong owner.  This occurred because one of my co-workers loves to duplicate or triplicate things either directly in code or indirectly in parallel processes.  This is one of those cases.

Turns out there are two paths to run these server programs this developer implemented, one is used when bringing the software up from cold and one when restarting them individually.  A project was implemented in the current release to change the ownership these servers run under, and the same developer who implemented the system originally including the parallel paths was given the job.  Turns out, he only changed one of the paths to run with the new user.

Design matters.  We have had a long standing (20+ year) design for the start and stop of these types of servers that ensures there is only one code path required that supports starting and stopping them for both an entire system and individual installs of the code.  But no, he knew better how to do it better than we did (he said so back in the day) and now we have a sub-system that we can install but cannot restart.  Tomorrow I fully expect him to go to his boss because he is over loaded with bugs and ask to have me do it and it will probably end up being my responsibility to fix it.

0 Comments:

Post a Comment

<< Home