Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Craziest fix that actually worked

Craziest fix that actually worked

Scheduled Pinned Locked Moved The Lounge
helpcomdatabasesysadminquestion
46 Posts 38 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Dan Neely

    I'm just curious what the most surreal fix to a problem you've ever ran into has been? Trying to get some integration tests for an application that uses COM Interop to manipulate MS Excel on a new CI server a coworker and I ran into a problem where the tests would pass if ran manually; but when Cruise Control tried to run them we got an access denied type error when trying to write a file. The solution[^], courtesy of MSDN was to create a folder named Desktop in C:\Windows\SysWOW64\config\systemprofile. I don't even....

    Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

    P Offline
    P Offline
    patbob
    wrote on last edited by
    #37

    HW: video/audio recorder app running on a dual core laptop. Had to use windows boot options to set NUMCPUS to 1 so the video viewfinder display update wouldn't stop when the user stopped recording the audio. SW: Same app, video arrived as a series of undelineated JPEGs in a byte stream, 90 per second. 700 MHz computer couldn't run a loop to find the jpegs fast enough (it had to look for the first four bytes of a jpeg). Had to add an if at the top of the loop to check if the next couple of bytes in the byte stream were the first two bytes of a jpeg and continue if they were not.

    We can program with only 1's, but if all you've got are zeros, you've got nothing.

    1 Reply Last reply
    0
    • G G Tek

      That is hilarious. I actually a lol moment when I read that. So all these years that I've made fun of people that continuously "exercised" their mouse while waiting for results (I've been guilty myself) and you're telling me that it's a legitimate solution? Too bad they don't give the explanation behind why the method works.

      E Offline
      E Offline
      erzengel des lichtes
      wrote on last edited by
      #38

      I'm actually guilty of writing a program where, in one version, "move the mouse" was required to keep it from getting stuck while processing in certain conditions. In my case, I neglected to close a file that was reopened later. It got stuck because it was waiting for someone to release the file, but it was holding the file itself. Moving the mouse produced enough garbage to trigger the garbage collector, which then closed the file that was no longer in use. Once the finalizer had closed the file, the app was able to open the file and continue. It wasn't caught in QA because usually enough work was done in QA's tests that the garbage collector would be triggered at least once... Technicians only had to move the mouse for a few days while the patch went through QA...

      1 Reply Last reply
      0
      • D Dan Neely

        I'm just curious what the most surreal fix to a problem you've ever ran into has been? Trying to get some integration tests for an application that uses COM Interop to manipulate MS Excel on a new CI server a coworker and I ran into a problem where the tests would pass if ran manually; but when Cruise Control tried to run them we got an access denied type error when trying to write a file. The solution[^], courtesy of MSDN was to create a folder named Desktop in C:\Windows\SysWOW64\config\systemprofile. I don't even....

        Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

        M Offline
        M Offline
        Mike Riley QUSA
        wrote on last edited by
        #39

        I worked for a company where a small group of us had created a multi-user OS that ran on x86 CPUs. I had created the filesystem design and all of a sudden we ran into an issue where directory blocks where somehow being written to the wrong place in the directory. This wiped out the entries that had been in that block and created duplicate directories entries for the files in the block that had been copied. We couldn't figure out the root cause, because it happened so rarely and only some customers saw it more than once. I used a spare dword in the header block, which stored the allocation block numbers for the file data as well as file attribute info, and stored the block number for the directory entry it should be using. There were then checks made in utilities for directory listings and file searches that checked that the correct directory entry was being used and reported an error if it saw a mismatch. So now duplicate directory entries showed as bad entries when doing a directory listing, but it didn't do that until well after it had occurred. So I added a check in the write directory block routine to also do the check. It would generate an error if it had ever been told to write a directory block to a sector that did not match what was in the file header. This would only happen during a create, close, or delete operation. Once the code with that check went out the error never happened again. No fix was done. I had only created a check to report an error to catch it happening before it wrote to the wrong directory sector. I called it the Schrodinger's Cat bug. Just looking in the box prevented it from ever happening. Mike

        1 Reply Last reply
        0
        • D DerekT P

          My very first paid job involved some Fortran development on an IBM360. I'd go home at 5pm each day, having logged out and powered down my terminal. (I don't recall what system we used, but this was 1977). Each morning I'd find the other staff scratching their heads about the mysterious crash of the '360 the evening before. This happened each day for a week until I overheard one of them saying "the only thing I can think causing it is someone's powering down their terminal". I left my terminal on after that and the daily crashing problem "went away". I never did own up.

          M Offline
          M Offline
          Member 3257606
          wrote on last edited by
          #40

          I read about a ground fault circuit trap tripped an old computer way back - but only after hours. The guy who tried to find it could watch it run for hours, and every time he came back after taking the elevator to get a cup of coffee, the computer would be down... My favorite fix came around February 2000 - a customer using an imaging system (third party software we provided running on SQL Server 6.5) was suddenly experiencing major performance issues and consistently timing out against the database. We couldn't change the app or the query it issued. The database seemed to be working fine, except for the one query, which had been working great until it suddenly started timing out. No amount of basic database repair or index tweaking seemed to help. We finally decided that the selectivity of one of the main indexes for the application caused the wrong plan to be chosen. Solution: Insert 40 thousand dummy records with the only purpose to change the selectivity of the index. Worked like a charm. I should mention that a subsequent service pack update to SQL Server allowed us to remove the dummy records.

          1 Reply Last reply
          0
          • K kalberts

            In the late 1970s when 64 kbit RAM chips (yes, 8 kbyte) were appearing, they were plauged by bit errors said to be caused by alpha radiation from outer space. People were worried that no denser memory chips could be made. (I have no idea how they got around that problem, but that is irrelevant to this story.) Norsk Data, a Norwegian manufacturer of 16-bit minimachines, increased the number of ECC bits from five to six per 16-bit memory word (from 21 to 22 bits/word) to cope with the high bit error rate. Every time an error was corrected, a red LED on the memory card would flash up. If the LED was more or less constantly flashing, that card should be replaced. (Usually, it was sufficient to replace one or more unreliable RAM chips on the board - the chips varied in their sensitivity to this alpha radiation.) One of my colleauges was working at a satellite ground station - actually, the one used for the very first transatlantic Internet connection. It just had to be operational 24/7; computers couldn't be turned off to replace a memory card. So for this project, my colleague set up one of these minicomputers with 22 memory cards (!) which he had rewired to store one bit per card, rather than full words + ECC on one card. Now, if the warning LED was too busy on one of the cards, he could snap it out and insert a new one while the computer was running at full speed. Of course there would be a lot of bit errors while one of the 22 cards were missing, but the ECC could handle all 1-bit and most 2-bit errors (all? That math has left my brain...) until the new card was in place. This setup was used for actual production work for months (maybe years, I wasn't invoved myself). They kept a supply of tested spare memory cards, gradually weeding out those populated with less reliable chips, so the replacement rate was gradually falling. If anyone can point me to info on how the REAL problem was fixed - the alpha radiation sensitivity of the RAM chips - I would be curious to know!

            M Offline
            M Offline
            Member 3257606
            wrote on last edited by
            #41

            ND was a great place to work!

            1 Reply Last reply
            0
            • D Dan Neely

              I'm just curious what the most surreal fix to a problem you've ever ran into has been? Trying to get some integration tests for an application that uses COM Interop to manipulate MS Excel on a new CI server a coworker and I ran into a problem where the tests would pass if ran manually; but when Cruise Control tried to run them we got an access denied type error when trying to write a file. The solution[^], courtesy of MSDN was to create a folder named Desktop in C:\Windows\SysWOW64\config\systemprofile. I don't even....

              Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

              M Offline
              M Offline
              Member 4608898
              wrote on last edited by
              #42

              Install the Visual C++ Redist so that I can uninstall a package. Problem was that the disk was very low on space so I just patched in a registry entry indicating that the VC++ redist had been installed and that worked. Having worked on installers before, I can see how this came about. It is just a flaw in the testing but nevertheless annoying.

              1 Reply Last reply
              0
              • P PIEBALDconsult

                A batch program (DCL on VMS (5?) circa 1990) that I had to delete and type in again because the system refused to execute it. :sigh:

                D Offline
                D Offline
                drscales
                wrote on last edited by
                #43

                Yep, I had that several times - those were the days...

                You can do anything, but not everything. Choose wisely.

                1 Reply Last reply
                0
                • E eFotografo

                  Many (many!) years ago, I hooked up (soldered!) a second tape recorder to a standard Commodore VIC20 tape recorder, so I could (ahem :-)) "backup" game cassettes. Curiously the "backed up" cassettes would only load correctly (and only from the Commodore recorder) when the second tape recorder was still attached (but not recording) and only then if the speaker was switched on and at high volume.

                  D Offline
                  D Offline
                  Dan Neely
                  wrote on last edited by
                  #44

                  eFotografo wrote:

                  Many (many!) years ago, I hooked up (soldered!) a second tape recorder to a standard Commodore VIC20 tape recorder, so I could (ahem :) ) "backup" game cassettes.

                  Those were offsite backups you were making and storing for a friend....?

                  Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

                  1 Reply Last reply
                  0
                  • D Dan Neely

                    I'm just curious what the most surreal fix to a problem you've ever ran into has been? Trying to get some integration tests for an application that uses COM Interop to manipulate MS Excel on a new CI server a coworker and I ran into a problem where the tests would pass if ran manually; but when Cruise Control tried to run them we got an access denied type error when trying to write a file. The solution[^], courtesy of MSDN was to create a folder named Desktop in C:\Windows\SysWOW64\config\systemprofile. I don't even....

                    Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt

                    P Offline
                    P Offline
                    peterchen
                    wrote on last edited by
                    #45

                    Almost similar: Running Chrome with a page that did not contain "non-ordinary" characters would disable correct Unicode rendering, if this was the first Unicode character rendered since the System was started. System wide - i.e. including IE, where it was noticed as "bug". In my case it was a utility using Chrome to render itself that was in autorun. Solution: Have a Folder with Unicode characters on the Desktop. Explorer renders the desktop before autorun programs are run, and initializes the Unicode APIs correctly, making everyone else - including Chrome - use the already-initialized API. The amazing thing is that this Problem was solved with a few Google searches, mostly thanks to a Chrome bug tracker item.

                    ORDER BY what user wants

                    1 Reply Last reply
                    0
                    • Sander RosselS Sander Rossel

                      A coworker had a SQL query in MS SQL Server that didn't run at all. All it did was process the query for a looooong time. My coworker entered a random line break somewhere and the query ran instantly. Weirdest performance fix I've ever seen... I've been searching for a problem in C#. I was using some library from a different solution which I had built myself. I encountered a bug, fixed the library and everything worked... For a few runs at least. Out of nowhere the bug came back. I spent the whole afternoon trying to fix it, but I got MessageBoxes that weren't there anymore, errors that could not be explained etc. Restarting VS2010 finally did the trick... Another great hack I've used: in a live production we print some files and save these files to disk and call them something like 'File+date+time+milliseconds'. Then our client got a new server and the files weren't saved to disk anymore because the filename was already used! Obviously the new server was so fast it could print and save two files in the same millisecond... A Thread.Sleep(500) fixed the problem! We've actually used that solution more than once... Although it's not something I'm particulary proud of, it does the job.

                      It's an OO world.

                      public class Naerling : Lazy<Person>{
                      public void DoWork(){ throw new NotImplementedException(); }
                      }

                      N Offline
                      N Offline
                      Nicholas Marty
                      wrote on last edited by
                      #46

                      Naerling wrote:

                      Another great hack I've used: in a live production we print some files and save these files to disk and call them something like 'File+date+time+milliseconds'. Then our client got a new server and the files weren't saved to disk anymore because the filename was already used! Obviously the new server was so fast it could print and save two files in the same millisecond... A Thread.Sleep(500) fixed the problem!
                      We've actually used that solution more than once... Although it's not something I'm particulary proud of, it does the job.

                      I seem to recall some problem with that with VB6. The value for the millisecond was only updated every 50-200ms. To prevent such cases we usually add a counter (0-999 which gets resetted to 0 if it has reached 999). Hadn't had a case yet where we would have to write >1000 in less that say 500ms :D I don't know how accurate the Millisecond value in .Net is. But as far as I recall it's not meant to be very accurate...

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups