Skip to content

Submitting useful bug reports

2-4601 edited this page Mar 25, 2016 · 29 revisions

First, thank you many times over for taking the time to file a bug. For the report to be most effective, we've noticed the following characteristics help us get to a solution the fastest.

TL;DR example issue

Title: Signal messages jiggle in conversation list

I have:


Bug description

Everytime there's a food commercial my messages start jiggling.

Steps to reproduce

  • Open Signal
  • Go to the main conversation list
  • A commercial about food comes on the television in the other room

Actual result: Signal messages start to jiggle in the conversation list for a couple seconds

Expected result: Nothing should happen. Messages should just stay as they are.

Screenshots

signal jiggle

Device info

Device: LG Nexus 4

Android version: stock Android 5.1.1

Signal version: 3.15.0

App state

Signal messages and calls registered, SMS disabled, passphrase enabled

Link to debug log

https://gist.github.com/anonymous/j166l3m3554635

Characteristics

Search, search, search

Before submitting a new issue please search if someone has already opened an issue about the same topic. Don't forget to search for both open and closed issues as GitHub only searches for open issues by default. (You may also wish to check out GitHub's help article about search to get more accurate results.)

Come up with a concise and descriptive title

A good title sums the issue in a few words and makes it easily searchable. There's no need to use tags such as "[Feature]" in the titles. Speaking of search: did you try searching duplicate issues by using your title as search keywords?

Try to reproduce the bug

To fix an issue the developers need to see the bug themselves. Try to find the exact conditions and steps that make the bug happen and then write them down on your issue report. Following your steps the developers can hopefully recreate the bug on their own device and fix it.

Capture a debug log

Debug log is like a history which tells what Signal was doing while it was running. If you capture a debug log immediately after the bug has happened the developers can use the log to see exactly what was going on in your installation of Signal. Even in the case where you know the exact steps that cause the bug it doesn't guarantee that the same steps cause the bug on the developer's device. Thus it is always helpful to add a debug log to your issue report.

How to capture debug log

  1. Immediately after the bug has happened go to Signal's Settings -> Advanced -> Submit debug log
  2. Tap Submit to send the debug log to GitHub as an anonymous public log
  3. You will see a pop-up dialog with the link to your debug log
  4. Copy the link and paste it to your issue report

Note: If you are using a passphrase and the bug appears before you can successfully unlock the app you can capture a debug log directly via the menu in the passphrase screen. If you cannot access any of Signal's debug log menus please see how to capture debug logs with adb below.

Debug log privacy

Debug logs captured within Signal are stripped from personal information. However please note that the last two digits of your and your contacts phone numbers may be visible in the logs. E.g. +1 555 3455 will show as +******55 in the log. This is to help differentiate the contacts when analysing a log.

Add a screenshot

Sometimes a picture is worth a thousand lines of debug logs (this doesn't mean that you shouldn't add a debug log too :). If the problem is visual and difficult to describe a screenshot can come a long way. Different Android vendors have different ways of taking screenshots. Please check how to do it on your specific device. Usually it's a combination of pressing the volume buttons and power button at the same time.

Please note that by default Signal disables taking screenshots. To enable them go to Settings -> Privacy and disable Screen security.

Device and app information

  • What's your device?
  • What Android version is it running?
  • What version of Signal do you have?

App state

  • What are the relevant preferences that you have set that may be related to the issue? Some examples:
  • Signal messages and calls registered
  • MMS settings
  • Passphrase
  • Theme
  • Message trimming
  • If this is a bug involving a second party, what's their device/app info and app state?

Finished!

Congratulations! You are done. You have achieved the badge: Creator of Glorious Bug Reports!

Now you can submit your report. Thanks for your help!


Advanced capturing

Here are some advanced ways to get more information from your device.

Debug logs with adb
adb logcat

Please note that capturing raw log data with adb may expose private information such as your contacts' phone numbers.

Screeshots with adb
adb shell /system/bin/screencap -p /sdcard/screencap.png && adb pull /sdcard/screencap.png
Video (only for Android 4.4 and up)

A small video or gif can be helpful if the problem is visual and difficult to describe.

adb shell screenrecord /sdcard/screenrecord.mp4

Then pull it from the device.

adb pull /sdcard/screenrecord.mp4
Animated gifs

If you have ffmpeg and imagemagick, you can quickly convert to gif with:

ffmpeg -i screenrecord.mp4 -r 10 screenrecord%05d.png
convert screenrecord*.png screenrecord.gif
rm screenrecord*.png
Manually making an Animated gif
mkdir tmpScreens
cd tmpScreens
# perform as many screenshots as you need to string together the animated gif:
adb shell screencap -p | perl -pe "s/\x0D\x0A/\x0A/g" > adb-screenshot-`date +%s`.png
convert -delay 70 -loop 0 adb-screenshot-*.png anim.gif