|
|
Subscribe / Log in / New account

Getting your problems fixed

March 1, 2017

This article was contributed by Tom Yates


FOSDEM

Foreman is a specialized project for data centers. If you happen to have a bunch of servers, it helps you deploy, provision, upgrade, and manage them; it works with virtual servers in the cloud as well. Tomer Brisker is one of the developers, but his talk was not specifically about Foreman. Instead he spoke on the general issues of how to deal with the problems you're having with a piece of free software, whatever that software might be.

[Panic
slide]

So, Brisker said, you're a user; you've hit a bug, or maybe you have a feature request. What should you do now? Step 1 is not to panic, which was accompanied by a highly-entertaining slide (seen at left; full slides [11MB ODP]) of someone panicking. This slide cropped up quite a few times during the talk.

Maybe it's not a bug, it's just a misconfiguration issue. Maybe it's a known bug, with a known workaround. The best place to start here is the manual. Many projects don't have great manuals, but plenty do, and if your project has one and you don't read it, you may be setting yourself up for failure.

[Tomer Brisker]

If that hasn't helped, get on IRC. Nearly all projects have a channel, and it's the fastest way to get in touch with the developers, who probably want to hear from you. Brisker explained how a user once came on IRC and complained about Foreman pages being slow to load. He couldn't reproduce the problem, but he was managing a small set of virtual assets on his development box, while the user was managing several thousand servers in a big data center. Over the next two hours, Brisker produced a series of patches that the user deployed, tested, and reported back on, after which time they had reduced the user's page load time from twelve minutes to seven seconds. User, developer, and the wider community all gained from that interaction.

If IRC doesn't work out, try mailing lists; most projects do still have them. They can be slow (or at least high latency), but they reach more people, and they're archived. Moreover, they don't suffer from the problem that all the developers are in distant time zones and so not on IRC when you're having your problem. Finally, they allow for a fuller and more measured statement of a problem.

Brisker begged that, if you post to a mailing list, and you later find a fix (whether via the manual, IRC support, personal experimentation, or any other way) you post again to summarize the fix. Few things are more annoying than searching list archives for a problem to discover that, apparently, lots of other people have had the same problem, and then they all died.

If you've still got the problem, it might be time to panic, though it won't help. Instead, you should fire up the project's issue tracker; nearly all projects have one, be it Bugzilla, GitHub issues, Redmine, or something else. Search before posting; not only is it polite not to waste other people's time, you'll get a faster resolution if your problem has already been found and fixed.

If you find you have to create a new issue, try to be as precise as you can and give as much detail as you reasonably can; don't be vague, don't rant, don't write a letter, and don't suggest rewriting the whole project from scratch unless you're prepared and qualified to do it. Do write in English unless the project's main language is clearly something else. Don't forget to include version numbers and platform details. If at all appropriate to the error, give a stack trace. If you're asking for new features, give context: about what are you trying to do; how will the proposed feature help you to accomplish this?

If none of this gets you a fix, remember that it's free software and that you can fix it yourself. If you do, don't be afraid to submit your changes to the project. If you do that, follow the coding standards; there is no right answer to spaces-or-tabs, but whatever the project already does, you should copy.

If you're submitting code directly to a project's repository, commit messages should be substantive; helpful ones are even better. Don't forget that you can add a screen shot to a commit on GitHub; sometimes a picture is worth a thousand words. Tests are very important; code that includes tests is monitoring itself for correct operation. That helps both future-proof it against changes elsewhere and gives code reviewers warm fuzzies, which helps acceptance of your changes. If you can't code, but you find a workaround, contribute it to the project documentation.

Finally, at all times, be polite and patient. Many maintainers are volunteers, and even the paid ones have a lot on their plate. Finding bugs is crucial to fixing them, so the user-developer interaction is vital to improving free software. With these few simple ground rules, it can even be fun.

[Thanks to the Linux Foundation, LWN's travel sponsor, for making this article possible.]

Index entries for this article
GuestArticlesYates, Tom
ConferenceFOSDEM/2017


to post comments

Seems to miss step 0

Posted Mar 2, 2017 12:36 UTC (Thu) by NAR (subscriber, #1313) [Link]

I always start to search for the error message (or some description) on google. Nowadays usually it returns a question and answer on stackexchange, so I don't even get to the manual...

obligatory XKCD

Posted Mar 2, 2017 14:33 UTC (Thu) by petur (guest, #73362) [Link] (1 responses)

obligatory XKCD

Posted Mar 2, 2017 21:15 UTC (Thu) by madhatter (subscriber, #4665) [Link]

Tomer put that up as one of his slides, too.

Keep the style!

Posted Mar 6, 2017 11:11 UTC (Mon) by rvfh (guest, #31018) [Link]

> follow the coding standards; there is no right answer to spaces-or-tabs, but whatever the project already does, you should copy.

This is something I learned from The Practice Of Programming and keep teaching around me now; whether you like it or not, when changing a file, keep the same style.

So not just spaces or tabs, but also variables/functions/methods/classes case style, bracket (all types) placement, number of columns and so on. The last thing you want when debugging a piece of code is finding out that some variables look like functions and conversely. I love Linux' checkpatch for that! (although many parts of the kernel clearly never ran it...)

Getting your problems fixed

Posted Mar 9, 2017 23:05 UTC (Thu) by davmac (guest, #114522) [Link] (3 responses)

Sadly, filing bugs on open source projects often gets no-where fast. I once attached a patch to a bug on Abiword which was ignored until well over a year later, when another developer fixed the problem independently (using what was essentially the same solution). Particularly galling was that the bug took many hours of work for me to track down and correct. I've also filed a large number of other bugs on other projects that for whatever reason have been left to languish. Granted a lot of them are probably not considered high-priority, but that doesn't mean they shouldn't be fixed.

Examples:
https://bugs.llvm.org//show_bug.cgi?id=24875 (over a year old; no response from developers)
https://bugzilla.mozilla.org/show_bug.cgi?id=1125599 (2 years old, no meaningful response)
https://github.com/rails/rails/issues/16291 (closed by a developer because they didn't understand how to fix it immediately; re-opened at my request; closed by a bot because I refused to confirm the bug still existed when no effort had been made to resolve it).

My hit-rate with eventually getting a solution is at about 50%, which doesn't sound too bad until you take into account that the other 50% of the times there was basically no response (and also that many of the other times, I supplied a patch or at least pinpointed the problem in the code). I understand that I'm not paying for anyone's time but I do feel like if you open a public bug database then you're putting an obligation on yourself to at least respond briefly when people take the effort to submit a bug; it's disappointing that many projects don't seem to take their bug tracker seriously.

Getting your problems fixed

Posted Mar 10, 2017 5:36 UTC (Fri) by madscientist (subscriber, #16861) [Link] (2 responses)

Well, that doesn't sound too different from proprietary/closed source products to me. I've filed many, many bugs with companies regarding software we actually pay good money for. Even some bugs which are a source of ongoing, constant pain. Just today I was once again bit hard by a bug I originally filed in 2013.

It's true that for my money I get the assurance that they won't simply close the bug, but every other aspect is exactly as you describe with open source projects (for example, they ask me to re-confirm the bug still exists in newer versions even though they've made no effort to resolve it). At least you have the option of trying to find and fix the bug yourself: it's work, yes, but then you have a fix even if upstream doesn't incorporate it.

Getting your problems fixed

Posted Mar 10, 2017 9:30 UTC (Fri) by davmac (guest, #114522) [Link] (1 responses)

That may well be true - and I don't really use enough proprietary software to confirm or not. I guess I came across as if I was "attacking open source", but that wasn't my intention; I just wanted to point out that filing bugs is, in general, not a good way to get a bug fixed (although I think this is a shame). The other options - IRC channels and mailing lists - would be my first port of call these days; it is too easy for a bug filed in a bug database to be silently ignored.

Getting your problems fixed

Posted Mar 10, 2017 18:37 UTC (Fri) by whydoubt (guest, #53523) [Link]

Agreed. Once I've decided a bug needs to be reported, I usually try IRC (or mailing list in some cases) to figure out the best place to report. Based on the response, I then report the bug/submit a patch via bug tracker or mailing list. If there is no movement on it for a while, I go back to IRC to figure out if there is any way to push it along.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds