News for hackers. Stuff that matters.
Re:Stop Filing Bugs, File a Container by Me1000 on Wednesday February 01, 2017 @04:37PM (#13545515)
Hi there, I'm on the RunKit team.

I think we've all been in a situation where we have a bug reproducing in front of us but when we ask for help by describe or even give code to someone else they say "hmm, it works on my machine". Since software rarely runs in a vacuum, having better system level access can sometimes be the only way to debug it.

Our hope here is that RunKit notebooks make it easier to see what's wrong, even when the problem is less obvious.

Re:Stop Filing Bugs, File a Container by monochromatic on Wednesday February 01, 2017 @04:56PM (#13545713)
Probably makes more sense to use the container as a backup for cases like that. If the bug does reproduce on other machines, then a code snippet is going to be easier to diagnose than messing around with a whole container.
Re:Stop Filing Bugs, File a Container by tolmasky on Wednesday February 01, 2017 @05:09PM (#13545862)
I think there may be a bit of a misunderstanding here. RunKit does not send you a container for you to interact with manually, in fact there is nothing in the RunKit UI to "mess around" with the container itself. RunKit is a coding notebook that is backed by containers (and automatic shrink-wrapping of dependencies) to guarantee determinism over multiple runs. In other words, it is a code snippet, but with a run button attached.

Nothing prevents you from 1) copy pasting the code to your own computer to run it exactly the same way as you would have previously done, or even better 2) hitting the "download" link on the left which downloads the code + shrink-wrap file so you are using the same dependencies as the user. On top of that, we have also made stack traces and other elements of the UI a lot friendlier.

From a reproducibility perspective, the notebook represents an undeniable instance that the bug did happen, along with all the background information you are usually asked (what version of node? what version of package? any other dependencies?). The goal is to make that all apparent in the code itself, vs extraneous other files like package.json or such. Here is an example: https://runkit.com/tolmasky/my-bug/1.0.0

If you are interested in the underlying technology, we've documented it here: http://blog.runkit.com/2015/09/10/time-traveling-in-node.js-...

Re:Stop Filing Bugs, File a Container by philipov on Wednesday February 01, 2017 @06:51PM (#13546661)
The most common situations for having a bug that works on my machine but not other people's have to do with memory access violations. But it seems like when you containerize the environment, you will change the memory layout and risk the same situation where the bug disappears because you've moved it to a different machine.
Re:Stop Filing Bugs, File a Container by coldtea on Thursday February 02, 2017 @02:54AM (#13548888)
>The most common situations for having a bug that works on my machine but not other people's have to do with memory access violations.

Not even close. Different classpaths, different versions of packages, some ENV setting like LOCALE causing havoc, a different configuration between the two installations of the programs that are debugged, a single core vs multi core cpu that masks some race conditions, there are literally MILLIONS of things that can, and in my experience, have, cause something to work in one machine and not another.

In fact memory access violations do not even register as a blip on the top-100 reasons...

Re:Stop Filing Bugs, File a Container by robzyb on Wednesday February 01, 2017 @08:01PM (#13547106)
> The most common situations for having a bug that works on my machine but not other people's have to do with memory access violations.

That has not been my experience. Especially with software written under time constraints including the constraint of "this is FOSS software that I'm writing in my free time."

Re:Stop Filing Bugs, File a Container by spc476 on Wednesday February 01, 2017 @11:44PM (#13548175)
The hardest bug I had to track down exhibited different behavior on different systems. On one system, it only took an hour or two for the program (a daemon) to crash; on another system, several days could pass before a crash.

I was able to track it down once I realized that signal handlers were, technically speaking, another thread of execution in a special context ...

Re:Stop Filing Bugs, File a Container by khedoros1 on Wednesday February 01, 2017 @07:28PM (#13546897)
If part of the idea is to find differences between the working and non-working environments, does RunKit include a way to diff two containers, or something?
Re:Stop Filing Bugs, File a Container by thinkmassive on Wednesday February 01, 2017 @11:31PM (#13548130)
It appears to be a notebook backed by containers, so you could presumably use:

  docker container diff
Re:Stop Filing Bugs, File a Container by khedoros1 on Thursday February 02, 2017 @03:46AM (#13549065)
But doesn't that just give you the diff between the image that the container was built from and the current state? If part of the premise is that environmental differences might be the cause of the bug, wouldn't you want to compare two potentially-dissimilar containers?
Re:Stop Filing Bugs, File a Container by feld on Wednesday February 01, 2017 @06:31PM (#13546520)
Thanks for the info!