DebuggingNetworkManager

Differences between revisions 46 and 48 (spanning 2 versions)
Revision 46 as of 2012-05-18 13:35:40
Size: 7888
Editor: dynamic-adsl-78-14-229-79
Comment:
Revision 48 as of 2014-07-05 22:07:32
Size: 4386
Editor: 50-1-89-34
Comment:
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
 * There is a lot of debugging information available on the GNOME Live wiki: [[http://live.gnome.org/NetworkManager/Debugging|NetworkManager/Debugging]].  * There is a lot of debugging information available on the GNOME Live wiki: [[https://wiki.gnome.org/Projects/NetworkManager/Debugging|NetworkManager/Debugging]].
Line 114: Line 114:
== Debugging Crashes ==


To install debug symbols, add the following line to your {{{/etc/apt/sources.list}}}

{{{
deb http://ddebs.ubuntu.com/ percise main universe
}}}

or

{{{
deb http://ddebs.ubuntu.com/ oneiric main universe
}}}


Then install the appropriate dbgsym packages:

{{{
  sudo apt-get update
  sudo apt-get install network-manager-dbgsym libnm-util2-dbgsym libnm-glib4-dbgsym libglib2.0-0-dbgsym
}}}

Then stop NetworkManager:
{{{
sudo stop network-manager
}}}

Run NetworkManager in a debugger
{{{
sudo gdb /usr/sbin/NetworkManager
...
(gdb) run --no-daemon
}}}

Once it crashes get a backtrace
{{{
(gdb) bt
...
(gdb) bt full
...
(gdb) thread apply all bt full
...
}}}

and attach the backtrace above together with your {{{/var/log/syslog}}} to the bug.


== Bug Tags ==

These tags allow isolation of bugs into smaller groups, providing an easier and faster way to work on specific issues.

||<rowbgcolor="#FFEBBB"> '''Tag''' || '''Use case''' ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=driver-madwifi|`driver-madwifi`]] || Bugs in which the madwifi driver is in use ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=driver-ndiswrapper|`driver-ndiswrapper`]] || Bugs in which the ndiswrapper driver is in use ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=vpn|`vpn`]] || Bugs related to either openvpn, vpnc or pptp network-manager vpn modules ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wep|`encryption-wep`]] || Bugs in which WEP encryption is used ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wpa|`encryption-wpa`]] || Bugs in which WPA encryption is used ||
|| [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wpa2|`encryption-wpa2`]] || Bugs in which WPA2 encryption is used ||

The previously described tags are specific to the [[NetworkManager]] application, if you need more general tags please visit [[Bugs/Tags]] page.


== Testing a patch ==

It's often a good idea to check in the [[https://edge.launchpad.net/~network-manager/+archive/trunk|NM trunk PPA]] to see if an updated version of NetworkManager fixes the bugs you see. Be careful though, as those are daily builds that may break other things, and are to be considered unstable.

Sometimes a developer might ask you to test a quick patch he came up with. Below an example how to do that for network-manager. If your bug is for network-manager-applet or some other package, just replace the package name

See [[DebuggingModemmanager]] for the same instructions for ModemManager.

{{{
# get build dependencies
sudo apt-get install build-essential fakeroot devscripts
sudo apt-get build-dep network-manager

# get sources
sudo apt-get source network-manager

# cd into the source directory
cd network-manager-*/

# apply the patch (note that -p1 could also be -p0 if the patch was created without an extra prefix in the diff path)
patch -p1 < /tmp/yourdownloadedpatch.diff

# build binaries only without signing
debuild -b -uc

# packages are produced in parent directory
cd ../


# install all nm packages
sudo dpkg -i network-manager*.deb libnm-*.deb
}}}

Note that you didnt change the version of the package. so to get back to the "official" current version you need to do something like:
{{{
  sudo apt-get install --reinstall network-manager libnm-util2 libnm-glib4
}}}

if you installed other packages from the build, do the same for them.

----
CategoryBugSquad
== Debugging Cr

Available languages: Italiano,

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Bug Summary

If a network-manager bug report is about not being able to connect the title or summary should be in the format:

"[CHIPSET] cannot connect to (ENCRYPT_METHOD)"

where the CHIPSET is the wireless driver used and ENCRYPT_METHOD is the encryption method used by your wireless network.

Understanding your bug and getting more information

Getting debug logs

First, make sure you have the debug helper script: http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py.

Download it with the following command:

wget http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py

You can then follow developers' intructions on a bug report for the exact command line to use; or run it directly as such:

Getting NetworkManager debug logs

sudo python debug-helper.py --nm debug

Then get the logs which will be written to /var/log/syslog. To disable it, pass info instead of debug in the above command, or reboot.

Getting ModemManager debug logs

sudo python debug-helper.py --mm debug

Then get the logs which will be written to /var/log/syslog. To disable it, pass info instead of debug in the above command, or reboot.

See also DebuggingModemmanager.

Getting wpasupplicant debug logs

sudo python debug-helper.py --wpa msgdump

Then get the logs which will be written to /var/log/syslog. To disable it, pass info instead of debug in the above command, or reboot.

Getting a capture of syslog

Mixing and mashing the above is perfectly acceptable as well if you want to see how NetworkManager and other parts of the stack interact together.

In order to understand whats going on and track down issues, its good to have a full log. To do so, capture the complete test case and submit the whole file (don't cut out what you think is important). Please add markers in the log file so the bug triager can easily see what actions the user takes at what point of time (this isn't essential, but helps a lot).

To capture the syslog, do:

 tail -n0 -f /var/log/syslog > /tmp/syslog

and to stop capturing do Ctrl-C (you will have to type your other commands in an other window or tab)

Adding markers is just like adding new lines with an editor that show the triager what happened at what point of time. You can also do this on the fly as you test with the command logger "[ clicked on wireless network 'ubuntu']" .

Example marker:

Sep  6 08:12:30 ...

[ clicked on wireless network 'ubuntu']

Sep  6 08:12:31 ...
...

Handling 3G / modem issues

An few extra things that are very helpful to add in case of issues with 3G:

The output of udevadm for tty devices, and output of lsusb:

$ udevadm info --query=all --path=/sys/class/tty/... --attribute-walk

$ lsusb

A Testcase

A good testcase is a step by step instruction to reproduce your bug starting with driver unloaded and NetworkManager stopped.

Stop NetworkManager

  sudo stop network-manager

To unload your driver  sudo modprobe -r DRIVER .

Then load the driver  sudo modprobe DRIVER  and start NetworkManager:

  sudo start network-manager

== Debugging Cr

DebuggingNetworkManager (last edited 2023-06-27 20:21:45 by hellsworth)