A list of puns related to "Heisenbug"
I have been working on an idea that's been in my head for years: taking existing schematics of old 7400-series based circuits, and more or less automatically converting them to Verilog. After a few iterations and improving the models of some of the 7400-series components, namely the 7474, I have a design that simulates beautifully in Verilator.
When I synthesized it for a Zynq, I had a few issues initially, like circular logic, which I fixed and verified again in Verilator. However, the design was still not running correctly on the hardware. Most of it was working, though.
When I tracked down the problem to the UART transmitter, I brought out all of the flip-flop states to my front panel for debugging, and...it works fine now.
What might be a good approach to solving a problem that seems to go away when attempting to examine its state from the outside? To me, this sounds like the synthesizer is optimizing something away when I don't have the extra outputs for debugging.
No doubt Verilator has saved me a lot of time, but obviously there are still major differences between what Verilator creates and what Vivado synthesizes and implements!
Hello I've found a javascript bug in mobile safari that I cannot narrow down any further. Basically safari thinks that a variable holds a different value when accessed inside one function vs inside another function. Any help would be appreciated.
I have spent weeks trying to narrow down this bug. My senior software dev co-workers have tried and failed so I'm posting it here. Why do they call it the Heisenbug?
When you connect your device to a mac and open Safari Developer Tools, the bug instantly goes away. You cannot inspect!
The bug doesn't happen every time you run it, and the more code that you remove from this file (even code that is never run), the less likely the bug is to happen. You cannot narrow it down!
Steps to reproduce:
Open this url in mobile safari: https://towerswap.app/bug42d.html
Kill safari.
Open safari.
Tap Refresh.
Tap the screen sometime after loop 30. The loop number is printed on the screen.
See the bug. The line says "Immediately after is 99" The value of a global variable is different based on which function you are in. The bug should show up around loop 250 on an older iPad. On a newer device you might have to wait longer or keep repeating these steps exactly the same until the bug happens.
More Information about this bug:
It does not happen in desktop Safari or any other device that isn't a mobile iOS device.
It does also happen in mobile Chrome on iOS (because iOS chrome uses safari)
It also happens in native apps that use WKWebView, and on simulators.
It's most easily reproduced on older iPads.
I reproduced it consistently in iPhone SE iOS 12 but I can no longer reproduce it on the same device after upgrading iOS.
On the latest iOS it still happens on iPad, according to the App Store reviewer who just rejected my app because of this bug. If anyone has a iOS13 iPad and can confirm this, that would help as I don't want to upgrade mine, and I cannot reproduce it in my only iOS13 device.
On my iPhone XS the bug happens but it is less likely to occur. Leave it on for a while then repeat these steps a few times and the bug should occur by loop 300 on iPhone XS iOS 12.
Information about this file:
I have heavily gutted this code from a much larger file that is a javascript game.
Most of the javascript was generated but is readable.
This app is running a loop function gloop() is run every 17ms via setInterval.
The important variable that holds a different value base
Some interesting words -
These words are taken from vocabulary app - Vocab Assistant
Hello,
A colleague of mine sent me some code and claimed that printing a variable changes the results. I was skeptical at first, but incredibly interested in trying to figure out the issue. After hours of trying to debug this, I am stumped and am hoping someone in the community could help shed some light on what is happening.
The code in question computes a weighted wavelet z-transform on the input data. With the print statement at line 142, a plot with the correct bounds is produced. If the print statement is commented out, a plot with the incorrect bounds is produced.
Here is the working code: https://gist.github.com/anthonyjchriste/7daaa688423b1d87fcedec1b45ff0b6d
Here is an example of the working figure (note the scale on the right):
https://i.imgur.com/Nu333OT.png
Here is the non-working code where the only change is commenting out the print statement at line #142: https://gist.github.com/anthonyjchriste/f4309406f769d915b66326eebff31863
Here is an example of a non-working figure (note the scale on the right):
https://i.imgur.com/3URkpxY.png
Can anyone help me explain why a print statement would cause the results of my figures to change? Thank you for your time and I look forward to discussing the issue.
Edit: Thank you all for your well thought out responses and help! It appears the issue has been found thanks to /u/***dbramucci***. Mystery solved!
Words that readers of this subreddit may like -
These words are taken from vocabulary app - Vocab Assistant
Words that readers of this subreddit may like -
These words are taken from vocabulary app - Vocab Assistant
Hi, r/csharp ! I have recently discovered a unit test in a library I am making that enters into an infinite loop when run in Debug build config, but functions as expected in Release mode. I'm not sure how long its been present as I usually run this particular unit test in release mode as I'm benchmarking it at the same time. I do know that it's not always been there however! I will need to go on a journey through source control commit history to discover when it was introduced to try and narrow it down.
The project can be found at http://obscur.me , if curious, and the unit tests in question are UM1FabricPackage and SymmetricFabricPackage (I expect any 'fabric'-type package with large enough items to necessitate several stripes in the payload will trigger it - sorry about the project-specific-jargon). I expect the bug to be found in PayloadMux and/or FabricPayloadMux classes.
This is what a test using SMALL items looks like (so it is successful) : http://pastebin.com/JwCzsSq8 And this is one with larger items (which triggers it) : http://pastebin.com/XrQcZG1A Note that the one with larger items, when run in Release mode, completes as expected. However, it does not produce any console output to compare (not that its that comparable anyway due to the non-deterministic behaviour, because PRNG seeded with RNG output controls some behaviour).
Any tips on how to find out how and why this arises? I have tried stepping through but each test run is different by design (because crypto) and it would be very difficult to make it be consistent.
At the moment I am thinking it is a data race where a variable is assigned and then read back but it [the assigned value] has not made it to memory yet, but this is mostly intuition and some weirdness in some debug attempts.
Also, feel free to tell any tales of your own about bug weirdness and inconsistency!
Hi there, Inspired by the recent Webpack Monday bug, I've compiled a list of Heisenbugs (before discover this sub) and I think this is a right place to share it. If you have other interesting bug or stories like these, please share it with a PR.
I cant use the gnome-software app because it just loads but doesn't show any content(pictures or text) only boxes and categories. Additionally, when I go to the "Updates" tab, there is an error message: Failed to load repo updates: error propagated from libsolv
I tried googling it, but I didn't find any solutions. Maybe you can help me? yum update is fine, but I do want to use the software app...
Words you might not have heard of -
These interesting words are taken from Vocab Assistant which is a vocabulary building chatbot.
If the following is too technical, let me know and I will explain.
Definitions:
http://www.catb.org/jargon/html/M/mandelbug.html
http://www.catb.org/jargon/html/H/heisenbug.html
A hardware heisenbug I once fixed: a unit only failed when the metal cover was closed. Any attempt to open it up and hook up an oscilloscope resulted in it working the instant you started to lift the lid. So I drilled a tiny hole in the lid to run a wire inside. It started working perfectly. Put on another cover, fail. Anyone care to guess what it was? Hint: not electrical interference.
A hardware mandelbug I once fixed: a CMOS hex inverter had no connection on the power pin. As long as any of the six inputs had a 1 on it, the chip got power through the internal protection diodes and the chip worked fine. If all six inputs were 0, the outputs were all 0s instead of the expected 1s. And all six inverters were used in entirely different asynchronous parts of the design. Difficulty: there was a bypass capacitor on the unconnected power pin, so the "all six inputs 0" condition didn't cause a failure until a couple of milliseconds had gone by.
I popped open a new Chrome window to search what it is, it seems that you are seeing this? So for the last two hours, it was glorious. > $C1 - MrMonday, it's not working and i need to log in! It pulled up the store in back in 15 minutes and I need your computer!
Please note that this site uses cookies to personalise content and adverts, to provide social media features, and to analyse web traffic. Click here for more information.