All is well!
-
Well, we have a SW that tunes a parameter set stored in a file. It is called "FoTune" and is called with a simple command-line parameter. The executable exists for both Linux (since recently) and Windows (for ages). I was tasked with rewriting the service-program that called this program and evaluated the output it writes. This is done once every few minutes. Since the service-program needs to run on both OSes as well, I (lazily) chose "system()" for command invocation. Actually, I lazily copied it from the old implementation. Under Windows, all went well. Under Linux, neither the parameter set nor the output were changed or generated. But, out of nowhere, there was a statement on the console: "All is well!". I stared at that line for quite some time and was about to go insane (neither source-code contained anything like that) when I found the solution. The software is run on a server. Recompilation requires a platform-specific "service handler" to be updated with the service-program executable, requiring a restart, and noone wanted to do that. And here goes: In the service-program source-code (the old one, which had only run under windows), the program name was written in all lower-case and had a significant typo: it read "fortune" instead of "fotune". And since the original coder did not want to go through the process of updating the main handler, he just renamed the executable on the Windows-Machine to "fortune.exe". Now, I neither caught the "all-lower-case"-spelling, nor the typo, nor the missing extension. Which meant that under Linux, "fortune" - a "fortune cookie tool" - was called. And someone had removed all entries but one from its default input-file. The one line remaining? "All is well!". And I was VERY tempted to rename "fortune" to "fotune" to fix the bug.
-
Well, we have a SW that tunes a parameter set stored in a file. It is called "FoTune" and is called with a simple command-line parameter. The executable exists for both Linux (since recently) and Windows (for ages). I was tasked with rewriting the service-program that called this program and evaluated the output it writes. This is done once every few minutes. Since the service-program needs to run on both OSes as well, I (lazily) chose "system()" for command invocation. Actually, I lazily copied it from the old implementation. Under Windows, all went well. Under Linux, neither the parameter set nor the output were changed or generated. But, out of nowhere, there was a statement on the console: "All is well!". I stared at that line for quite some time and was about to go insane (neither source-code contained anything like that) when I found the solution. The software is run on a server. Recompilation requires a platform-specific "service handler" to be updated with the service-program executable, requiring a restart, and noone wanted to do that. And here goes: In the service-program source-code (the old one, which had only run under windows), the program name was written in all lower-case and had a significant typo: it read "fortune" instead of "fotune". And since the original coder did not want to go through the process of updating the main handler, he just renamed the executable on the Windows-Machine to "fortune.exe". Now, I neither caught the "all-lower-case"-spelling, nor the typo, nor the missing extension. Which meant that under Linux, "fortune" - a "fortune cookie tool" - was called. And someone had removed all entries but one from its default input-file. The one line remaining? "All is well!". And I was VERY tempted to rename "fortune" to "fotune" to fix the bug.
-
Well, we have a SW that tunes a parameter set stored in a file. It is called "FoTune" and is called with a simple command-line parameter. The executable exists for both Linux (since recently) and Windows (for ages). I was tasked with rewriting the service-program that called this program and evaluated the output it writes. This is done once every few minutes. Since the service-program needs to run on both OSes as well, I (lazily) chose "system()" for command invocation. Actually, I lazily copied it from the old implementation. Under Windows, all went well. Under Linux, neither the parameter set nor the output were changed or generated. But, out of nowhere, there was a statement on the console: "All is well!". I stared at that line for quite some time and was about to go insane (neither source-code contained anything like that) when I found the solution. The software is run on a server. Recompilation requires a platform-specific "service handler" to be updated with the service-program executable, requiring a restart, and noone wanted to do that. And here goes: In the service-program source-code (the old one, which had only run under windows), the program name was written in all lower-case and had a significant typo: it read "fortune" instead of "fotune". And since the original coder did not want to go through the process of updating the main handler, he just renamed the executable on the Windows-Machine to "fortune.exe". Now, I neither caught the "all-lower-case"-spelling, nor the typo, nor the missing extension. Which meant that under Linux, "fortune" - a "fortune cookie tool" - was called. And someone had removed all entries but one from its default input-file. The one line remaining? "All is well!". And I was VERY tempted to rename "fortune" to "fotune" to fix the bug.
-
Well, we have a SW that tunes a parameter set stored in a file. It is called "FoTune" and is called with a simple command-line parameter. The executable exists for both Linux (since recently) and Windows (for ages). I was tasked with rewriting the service-program that called this program and evaluated the output it writes. This is done once every few minutes. Since the service-program needs to run on both OSes as well, I (lazily) chose "system()" for command invocation. Actually, I lazily copied it from the old implementation. Under Windows, all went well. Under Linux, neither the parameter set nor the output were changed or generated. But, out of nowhere, there was a statement on the console: "All is well!". I stared at that line for quite some time and was about to go insane (neither source-code contained anything like that) when I found the solution. The software is run on a server. Recompilation requires a platform-specific "service handler" to be updated with the service-program executable, requiring a restart, and noone wanted to do that. And here goes: In the service-program source-code (the old one, which had only run under windows), the program name was written in all lower-case and had a significant typo: it read "fortune" instead of "fotune". And since the original coder did not want to go through the process of updating the main handler, he just renamed the executable on the Windows-Machine to "fortune.exe". Now, I neither caught the "all-lower-case"-spelling, nor the typo, nor the missing extension. Which meant that under Linux, "fortune" - a "fortune cookie tool" - was called. And someone had removed all entries but one from its default input-file. The one line remaining? "All is well!". And I was VERY tempted to rename "fortune" to "fotune" to fix the bug.