Jonathan Nieder <jrnieder@gmail.com> (21/07/2010):
> Trying to remove iceweasel causes update-alternatives to segfault
> for me. iceweasel prerm does
>
> update-alternatives --remove x-www-browser /usr/bin/iceweasel
> update-alternatives --remove gnome-www-browser /usr/bin/iceweasel
Reproduced with dpkg -P iceweasel.
,----
| kibi@bowmore:~/hack/dpkg.git$ cat /var/lib/dpkg/alternatives/gnome-www-browser
| auto
| /usr/bin/gnome-www-browser
| gnome-www-browser.1.gz
| /usr/share/man/man1/gnome-www-browser.1.gz
|
| /usr/bin/chromium-browser
| 40
|
| /usr/bin/iceweasel
| 70
| /usr/share/man/man1/iceweasel.1.gz
`----
> This is with dpkg (and u-a) built from commit f86ff414.
With current master (1.15.7.2-174-gc249251) built with noopt &
nostrip:
,----
| (gdb) run
| The program being debugged has been started already.
| Start it from the beginning? (y or n) y
|
| Starting program: /usr/sbin/update-alternatives --remove gnome-www-browser /usr/bin/iceweasel
| update-alternatives: utilisation de « /usr/bin/chromium-browser » pour fournir « /usr/bin/gnome-www-browser » (gnome-www-browser) en mode automatique.
|
| Program received signal SIGSEGV, Segmentation fault.
| 0x0000000000404629 in alternative_save (a=0x60e030,
| file=0x7063c0 "/var/lib/dpkg/alternatives/gnome-www-browser.dpkg-tmp")
| at ../../utils/update-alternatives.c:1217
| 1217 for (sl = a->slaves; sl; sl_prev = sl, sl = sl->next) {
| (gdb) bt
| #0 0x0000000000404629 in alternative_save (a=0x60e030,
| file=0x7063c0 "/var/lib/dpkg/alternatives/gnome-www-browser.dpkg-tmp")
| at ../../utils/update-alternatives.c:1217
| #1 0x00000000004089f5 in main (argc=4, argv=0x7fffffffe6d8)
| at ../../utils/update-alternatives.c:2431
| (gdb) bt full
| #0 0x0000000000404629 in alternative_save (a=0x60e030,
| file=0x7063c0 "/var/lib/dpkg/alternatives/gnome-www-browser.dpkg-tmp")
| at ../../utils/update-alternatives.c:1217
| ctx = {fh = 0x7ffff7af4900,
| filename = 0x7ffff7af4820 "H\213\005\071G.",
| bad_format = 0x7ffff7e635cc, on_error = {{__jmpbuf = {
| 140737488348160, 7355904, 6348912, 0, 4202506, 4233233,
| 140737488348344, 206158430240}, __mask_was_saved = -7152,
| __saved_mask = {__val = {140737488347984, 4236888, 7356944,
| 6348912, 18446744073709551504, 8243121649779630637,
| 7809575350067815471, 8532478930843755892, 6348912, 0, 0,
| 140737348847756, 6348912, 4216810, 7339520, 6348848}}}}}
| sl = 0x0
| sl_prev = 0x0
| fs = 0x0
| #1 0x00000000004089f5 in main (argc=4, argv=0x7fffffffe6d8)
| at ../../utils/update-alternatives.c:2431
| fntmp = 0x7063c0 "/var/lib/dpkg/alternatives/gnome-www-browser.dpkg-tmp"
| fn = 0x706480 "/var/lib/dpkg/alternatives/gnome-www-browser"
| a = 0x60e030
| inst_alt = 0x0
| fileset = 0x0
| ---Type <return> to continue, or q <return> to quit---
| path = 0x60e090 "/usr/bin/iceweasel"
| current_choice = 0x706460 "/usr/bin/iceweasel"
| alt_map_obj = 0x60e0b0
| alt_map_links = 0x60e0d0
| alt_map_parent = 0x60e0f0
| table = 0x6171a0
| new_choice = 0x6ffe00 "/usr/bin/chromium-browser"
| i = 104
| count = 104
`----
Enjoy. :)
Mraw,
KiBi.
Attachment:
signature.asc
Description: Digital signature