Posts

Finally, dangerous Oracle bug fixed after several years in the wild

Almost three years ago a serious bug was found in Oracle 19c by one of my colleagues, who is a brilliant COBOL programmer. Due to this bug, it happens that bytes not representing numeric values are stored in number columns. In some cases these bytes are converted to bytes representing another valid number .  Let me give you an example: Your COBOL code intends to store the digit nine in a number columm. By accident (bug in your code / unexpected data pattern) a non numeric value is sent to the database and digit three gets stored.  Now you might think COBOL? What do I have to do with COBOL? Before you quit reading : COBOL RUNS THE WORLD!  Many people are not aware of that fact that billions of code lines are still in productive use every day. Here is a link to an interesting article about that topic:  COBOL in 2023 As soon as we discovered the bug, we reported it to Oracle. Finally this month patches were announced.  Before we delve into the

a shut mouth catches no flies ...

Image
... but can make a business process go bust. Just like in human communication, it is rather harmful in server communication when one partner stops communicating entirely and doesn't respond to any messages at all. I was asked to troubleshoot a problem with a batch job. This job was running fine in the past years but all of a sudden it crashed every night.  Everyone involved in the business process, which is mapped by this job, claimed that nothing had changed. The devs hadn't changed the code, the DBAs said the Database ran fine, the sysadmins said there were no error reports besides sporadic application timeouts. The network guys said: everything runs within normal parameters. What is even more interesting is the fact that the job crashed when it was started at its normal time before 01 am but ran through when it was repeated at 06 am.  Why was it repeated? Because the data it produces are urgently needed in the morning. If the job can&#

Santa's little (index) helper

Santa's little (index) helper  Getting a little unexpected help is always nice.  This was the case for me when I was tasked with troubleshooting a slow web application that had already received user complaints. Moreover there will be a significant increase in data in the future. As I started working on this issue, I quickly discovered that a significant amount of the application's response time was spent in an Oracle Database.  This was revealed when analyzing  a Java Flight Recording of the app (Socket Reads ) I used dashtop by Tanel Poder to investigate which Statements where slow in the past 14 days: @D:\tpt-oracle-scripts\ash\dashtop sql_id,sql_plan_operation,sql_plan_options username='MYSCHEMA' sysdate-14 sysdate Total