I thought of this after a recent bug I found. I use Vivaldi browser and recently it updated. After the update my mouse cursor was not visible when within the browser window. Other programs worked fine. I tried visual studio and steam and epic game store all had my mouse, Vivaldi didn’t.

I closed all instances of Vivaldi via task nanager(was unable to click the x) and restarted it. That fixed the bug and I haven’t been able to replicate so I don’t have anything to submit for a bug report. Just a really strange thing.

What have been your weirdest bugs?

  • Inucune@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    23 days ago

    Load 2TB of data into ram during startup. Prompt user credentials to continue. Whoops, we need to do cryptography on those credentials… Free the heap. Invalid creds force exits. Valid creds goes gray until those 2TB are loaded back into memory… From storage halfway across the country over the 3mbps link, the best available in BFE.

    • bleistift2@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 days ago

      Why 2TB? Why during startup? Why does cryptography free the heap? Why is the data stored off-site?

      So many questions!

      • Inucune@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        8 days ago

        Loads the entire db table into memory. The login step is configurable but the app loads the table before checking for it. Site is in BFE and other sites need access to the database so it is in corp.

  • azdle@news.idlestate.org
    link
    fedilink
    arrow-up
    1
    ·
    23 days ago

    I worked at an IoT platform startup. All of our embedded device demos stopped working August 1st. I was told the same thing happened last year, but it was fine, things would start working in September. I decided to go fix it anyway. Eventually I figured out the culprit was a custom HTTP library. Instead of doing anything sensible, the way it found the Content-Length header was to loop over the bytes of the response until it found the first ‘g’ add 5 to that pointer and then assume that whatever was there was the number of bytes it should read. Unfortunately, HTTP responses have a Date header which includes the month and August has a ‘g’ in it.

    There were a bunch of these demo devices already flashed and shipped out. The ‘fix’ to get them to work, even in August, was to downgrade requests to HTTP 0.9 which didn’t require a Date header in the response.

  • ZoteTheMighty@lemmy.zip
    link
    fedilink
    arrow-up
    1
    ·
    23 days ago

    I use a 3D CAD software that once you switch to 3D mode, it makes things partially transparent, but it does so by scaling the opacity of the entire window. The end result is that transparent parts look correct when you have a black desktop background, but otherwise you’ll see what’s on the window behind it or the desktop background. Same issue when you get gaps between two sides or curves. I think no one noticed because they would usually launch it from a terminal, so they always had black backgrounds.

  • lad@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    22 days ago

    I recently tried Pop!OS liveUSB without a mouse connected to PC, there were some accessibility issues but one was unrelated to mouse and pretty cursed:

    I chose system language to be something non-latin-based, and ended up with a keyboard layout that can’t input English text. There was no way to change the layout and adding the US layout didn’t work, because system showed that the US layout is already the one and only available. So I couldn’t input commands to set things up but also couldn’t click in the UI to set things up

    • bleistift2@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      9 days ago

      It’s way too easy to not see the assumptions you make when writing code. Having a mouse, usining a QWERTY layout, screen size over a certain width, … and it’s so fucking annoying to be on the receiving end of these assumptions. I feel you.

  • mushroommunk@lemmy.today
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    23 days ago

    I joined a team and was assigned a bug that had been bugging them for two years. Randomly files they saved would be corrupted.

    Eventually isolated it to the third party library they used to serialize the data. For some reason this library corrupted file names that were an odd length. So “cat” would get corrupted while “cats” would save and load just fine. It was a black box library we didn’t control so was told to just program a workaround to check filename length and append a character if it was odd and move on.

    I still want to know what that library was doing.

    • ReducedArc@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      23 days ago

      Notepad on windows, I think around the XP and earlier versions, had a similar bug. If you typed this app can break and saved it, the file would be corrupted. Something to do with the number and placement of characters.

      • clean_anion@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        23 days ago

        ASCII was interpreted as UTF because the function that checked whether the given text was Unicode checked the difference between bytes at even and odd positions. Many of the common phrases used to trigger this were in the 4-3-3-5 format (by letters), e.g., Bush hid the facts However, there was never any reason that this format of character placement was necessary for the bug (though even length was necessary)

    • vrek@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      23 days ago

      Hmm yeah that’s really weird… I can’t think of a purpose for a check like that, plus even it was a valid reason throw an exception or return a result indicating failure, don’t just corrupt the file

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    23 days ago

    OPAM (OCaml’s package manager) had a bug where it couldn’t find curl or wget to download stuff with (don’t ask me why it shelled out to those in the first place) if you were in more than 32 Unix groups. Have fun thinking of a reasonable explanation for that!

  • aev_software@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    23 days ago

    Once upon a time I worked with a CMS that allowed an admin to delete the CMS itself and also any web server that ran it. Poof: gone. Fun times.

    • vrek@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      23 days ago

      to be real evil, create a test to confirm what that button does cause you know…100% code coverage

  • prettybunnys@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    22 days ago

    It’s not a bug per se, and we’re gonna see a lot of this moving forward.

    Did a code review, hefty code review, and as I got to the end of it where “the magic happened” I discovered that the logic was actually a case statement for every permutation.

    Because they’d asked the AI to write logic to go through each type, the AI wrote a case statement for EACH TYPE.

    … it was so fucking fast though. So wrong but so so fast compared to the actual running code.

    • vrek@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      22 days ago

      Fast to run or fast to make?

      I’m a big fan of if it’s stupid but works it’s not stupid, especially if you get a runtime speed improvement.

      Yeah it might be theoretically difficult to make an update but if by “each type” you mean like the primitive data types (string, int, char etc) I doubt the language is going to change how, for example, an int works. If you they do so many programs will break.

        • vrek@programming.devOP
          link
          fedilink
          English
          arrow-up
          0
          ·
          22 days ago

          Ah ok, i was thinking you meant the previous solution was so complicated so the basic switch sped it up

          • prettybunnys@piefed.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            22 days ago

            The LLM basically just did the work once for the sample data set, so all the computation happened up front.

            If that was the only data set we’d ever need, and the data set didn’t change realtime based on sensors then … hell yeah that gross switch woulda worked 😂

            • vrek@programming.devOP
              link
              fedilink
              English
              arrow-up
              0
              ·
              22 days ago

              Ah ok… That makes sense. I was thinking like generate a stream of data, data comes in some format like (string dataType, float dataValue) and a switch like case int{do this} case string {do that} then get new data and repeat while(true).

              If it only was calculating based on the test case yeah that’s bad.

              I told this before but I had a project which had an xml configuration of many sections each targeting something different. I wanted each section as an object. This was a system of many combined systems like one dmm, one custom automated shield box, one bluetooth tester, etc. Each needed specific data to connect to it and configure it for the tests we wanted to run. This was all I needed in the xml file.

              So I coded 1 function to read 1 section of the xml file and map it to an class object. I then copied that into Ai, copied configuration file into Ai, and told it to replicate it for each section. That worked. I think Ai can be used in specific circumstances where you are doing like repeated operations but it gets grossly overused. You also have to know the domain and the language to understand what it’s doing.

              Another example is I was asked to make a sql query which was basically a join(serial number and test guid in one table, test guid and test results in another table and only given serial number). My boss sent me a list of like 150 serial numbers separated by spaces over teams. I wrote the query for the first one and told the Ai to replicate it on the other serial numbers. Yes I could of gone through the list, backspace the space, add common, press enter and repeat. I knew how the query worked. I know the domain I was working in. The Ai output was basically the same as my original just with more serial numbers in the where clause.

              • bleistift2@sopuli.xyz
                link
                fedilink
                English
                arrow-up
                1
                ·
                9 days ago

                For 150 basically random strings I wouldn’t trust AI to not drop one or invent one or slightly change one. In this case multiline editing would be my go-to solution, hands down.