Bug 458215 - gpk-update-icon crashes when PackageKit crashes
Summary: gpk-update-icon crashes when PackageKit crashes
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-packagekit
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Richard Hughes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 457848 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-08-07 01:42 UTC by sangu
Modified: 2008-09-10 07:18 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-09-10 07:18:00 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
patch that fixes the problem (1.54 KB, patch)
2008-08-27 09:57 UTC, Richard Hughes
no flags Details | Diff

Description sangu 2008-08-07 01:42:55 UTC
Description of problem:
$ gdb gpk-update-icon
[skip]
TI:10:41:20	TH:0x806fcb8	FI:pk-connection.c	FN:pk_connection_connection_changed_cb,129
 - emit connection-changed: 0
TI:10:41:20	TH:0x806fcb8	FI:gpk-check-update.c	FN:pk_connection_changed_cb,384
 - connected=0
TI:10:41:20	TH:0x806fcb8	FI:pk-task-list.c	FN:pk_task_list_connection_changed_cb,332
 - connected=0
TI:10:41:20	TH:0x806fcb8	FI:pk-task-list.c	FN:pk_task_list_connection_changed_cb,332
 - connected=0
TI:10:41:20	TH:0x806fcb8	FI:gpk-watch.c	FN:pk_connection_changed_cb,849
 - connected=0
TI:10:41:20	TH:0x806fcb8	FI:gpk-smart-icon.c	FN:gpk_smart_icon_set_icon_name,223
 - setting icon name (null)

Program received signal SIGSEGV, Segmentation fault.
0x002e5e5f in pk_connection_changed_cb (pconnection=0x8070e68, connected=0, 
    client=0x80cd890) at pk-client.c:3529
3529		if (!connected && client->priv->tid != NULL && !client->priv->is_finished) {

(gdb) bt
#0  0x002e5e5f in pk_connection_changed_cb (pconnection=0x8070e68, 
    connected=0, client=0x80cd890) at pk-client.c:3529
#1  0x00b19fca in IA__g_cclosure_marshal_VOID__BOOLEAN (closure=0x80cb050, 
    return_value=0x0, n_param_values=2, param_values=0x8218b90, 
    invocation_hint=0xbfffe6cc, marshal_data=0x2e5e40) at gmarshal.c:111
#2  0x00b0b1f3 in IA__g_closure_invoke (closure=0x80cb050, return_value=0x0, 
    n_param_values=2, param_values=0x8218b90, invocation_hint=0xbfffe6cc)
    at gclosure.c:767
#3  0x00b22a45 in signal_emit_unlocked_R (node=0x80ca290, detail=0, 
    instance=0x8070e68, emission_return=0x0, instance_and_params=0x8218b90)
    at gsignal.c:3244
#4  0x00b24166 in IA__g_signal_emit_valist (instance=0x8070e68, signal_id=154, 
    detail=0, var_args=0xbfffe870 "") at gsignal.c:2977
#5  0x00b24616 in IA__g_signal_emit (instance=0x8070e68, signal_id=154, 
    detail=0) at gsignal.c:3034
#6  0x002e26b9 in pk_connection_connection_changed_cb (connected=0, 
    connection=0x8070e68) at pk-connection.c:130
#7  0x00b19fca in IA__g_cclosure_marshal_VOID__BOOLEAN (closure=0x80c82a8, 
    return_value=0x0, n_param_values=2, param_values=0x8218e50, 
    invocation_hint=0xbfffea2c, marshal_data=0x2e2650) at gmarshal.c:111
#8  0x00b0b1f3 in IA__g_closure_invoke (closure=0x80c82a8, return_value=0x0, 
    n_param_values=2, param_values=0x8218e50, invocation_hint=0xbfffea2c)
    at gclosure.c:767
---Type <return> to continue, or q <return> to quit---
#9  0x00b22a45 in signal_emit_unlocked_R (node=0x80ca418, detail=0, 
    instance=0x80c1028, emission_return=0x0, instance_and_params=0x8218e50)
    at gsignal.c:3244
#10 0x00b24166 in IA__g_signal_emit_valist (instance=0x80c1028, signal_id=155, 
    detail=0, var_args=0xbfffebd0 "��5\b\001") at gsignal.c:2977
#11 0x00b24616 in IA__g_signal_emit (instance=0x80c1028, signal_id=155, 
    detail=0) at gsignal.c:3034
#12 0x002f1989 in name_owner_changed_cb (proxy=0x80be870, 
    name=0x8116e10 "org.freedesktop.PackageKit", prev=0x80efbf0 ":1.58", 
    new=0x80c82c0 "") at libgbus.c:94
#13 0x002e021a in pk_marshal_VOID__STRING_STRING_STRING (closure=0x80cac68, 
    return_value=0x0, n_param_values=4, param_values=0x835feb0, 
    invocation_hint=0xbfffeddc, marshal_data=0x2f18b0) at pk-marshal.c:512
#14 0x0034643f in marshal_dbus_message_to_g_marshaller (closure=0x80cac68, 
    return_value=0x0, n_param_values=3, param_values=0x82bdd60, 
    invocation_hint=0xbfffeddc, marshal_data=0x0) at dbus-gproxy.c:1665
#15 0x00b0b1f3 in IA__g_closure_invoke (closure=0x80cac68, return_value=0x0, 
    n_param_values=3, param_values=0x82bdd60, invocation_hint=0xbfffeddc)
    at gclosure.c:767
#16 0x00b22a45 in signal_emit_unlocked_R (node=0x80796e8, detail=718, 
    instance=0x80be870, emission_return=0x0, instance_and_params=0x82bdd60)
    at gsignal.c:3244
#17 0x00b24166 in IA__g_signal_emit_valist (instance=0x80be870, signal_id=3, 
---Type <return> to continue, or q <return> to quit---
    detail=718, var_args=0xbfffef84 "\024���s") at gsignal.c:2977
#18 0x00b24616 in IA__g_signal_emit (instance=0x80be870, signal_id=3, 
    detail=718) at gsignal.c:3034
#19 0x00347697 in dbus_g_proxy_emit_remote_signal () at dbus-gproxy.c:1718
#20 dbus_g_proxy_manager_filter (connection=0x80c87c0, message=0x80f1e00, 
    user_data=0x80ca930) at dbus-gproxy.c:1286
#21 0x00362f55 in dbus_connection_dispatch (connection=0x80c87c0)
    at dbus-connection.c:4393
#22 0x0033e08d in message_queue_dispatch (source=0x80c9d08, callback=0, 
    user_data=0x0) at dbus-gmain.c:101
#23 0x00b80381 in g_main_dispatch () at gmain.c:2072
#24 IA__g_main_context_dispatch (context=0x80784d0) at gmain.c:2624
#25 0x00b83a23 in g_main_context_iterate (context=0x80784d0, block=1, 
    dispatch=1, self=0x806fcb8) at gmain.c:2705
#26 0x00b83f42 in IA__g_main_loop_run (loop=0x81eca98) at gmain.c:2928
#27 0x0050be55 in IA__gtk_main () at gtkmain.c:1172
#28 0x080563cf in gpk_client_main_wait (gclient=0x8099b10) at gpk-client.c:190
#29 0x08057669 in gpk_client_get_updates (gclient=0x8099b10, error=0xbffff2b8)
    at gpk-client.c:1918
#30 0x0804e5d0 in gpk_check_update_query_updates (cupdate=0x8096cc0)
    at gpk-check-update.c:674
#31 0x0804f01e in gpk_check_update_query_updates_idle_cb (cupdate=0x8096cc0)
    at gpk-check-update.c:805
---Type <return> to continue, or q <return> to quit---
#32 0x00b7e421 in g_idle_dispatch (source=0x8107660, callback=0xaaaaaaaa, 
    user_data=0x8096cc0) at gmain.c:4177
#33 0x00b80381 in g_main_dispatch () at gmain.c:2072
#34 IA__g_main_context_dispatch (context=0x80784d0) at gmain.c:2624
#35 0x00b83a23 in g_main_context_iterate (context=0x80784d0, block=1, 
    dispatch=1, self=0x806fcb8) at gmain.c:2705
#36 0x00b83f42 in IA__g_main_loop_run (loop=0x8107900) at gmain.c:2928
#37 0x0050be55 in IA__gtk_main () at gtkmain.c:1172
#38 0x0804d767 in main (argc=1, argv=0xbffff5b4) at gpk-update-icon.c:199

$ dmesg | grep pkg-update-icon
gpk-update-icon[4393]: segfault at aaaaaac2 ip 002e5e5f sp bfb69d50 error 4 in libpackagekit.so.4.0.0[2d8000+22000]

Version-Release number of selected component (if applicable):
0.2.4-2.fc10.i386

How reproducible:
always

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
PackageKit-0.2.4-1.fc10.i386

Comment 1 Richard Hughes 2008-08-07 07:37:18 UTC
The next line after the crash was:

"daemon disconnected mid-transaction!" -- which suggested the daemon quit in the middle of something and the client didn't deal with it very well. :-)

What's the output of "pkcon --verbose get-updates"? Can you reproduce this reliably?

Comment 2 Tom London 2008-08-10 20:24:32 UTC
I'm getting essentially the same crash every boot: gpk-update-icon runs for about 5 minutes and then SIGSEGVs every time.

Here is the stack trace I obtain when I connect to the running process and "wait for the crash". I can see no pattern to activity to indicate why this would be occuring.

[New Thread 0xb2ec2b90 (LWP 4241)]

Program received signal SIGSEGV, Segmentation fault.
0x001a3e5f in pk_connection_changed_cb (pconnection=Could not find the frame base for "pk_connection_changed_cb".
) at pk-client.c:3529
3529		if (!connected && client->priv->tid != NULL && !client->priv->is_finished) {
Missing separate debuginfos, use: debuginfo-install gamin.i386 gdbm.i386
(gdb) where
#0  0x001a3e5f in pk_connection_changed_cb (pconnection=Could not find the frame base for "pk_connection_changed_cb".
) at pk-client.c:3529
#1  0x007fafca in IA__g_cclosure_marshal_VOID__BOOLEAN (
    closure=<value optimized out>, return_value=Could not find the frame base for "IA__g_cclosure_marshal_VOID__BOOLEAN".
) at gmarshal.c:111
#2  0x007ec1f3 in IA__g_closure_invoke (closure=<value optimized out>, 
    return_value=<value optimized out>, n_param_values=<value optimized out>, 
    param_values=<value optimized out>, invocation_hint=<value optimized out>)
    at gclosure.c:767
#3  0x00803a45 in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3244
#4  0x00805166 in IA__g_signal_emit_valist (instance=<value optimized out>, 
    signal_id=<value optimized out>, detail=<value optimized out>, 
    var_args=<value optimized out>) at gsignal.c:2977
#5  0x00805616 in IA__g_signal_emit (instance=Could not find the frame base for "IA__g_signal_emit".
) at gsignal.c:3034
#6  0x001a06b9 in pk_connection_connection_changed_cb (connected=Could not find the frame base for "pk_connection_connection_changed_cb".
)
    at pk-connection.c:130
#7  0x007fafca in IA__g_cclosure_marshal_VOID__BOOLEAN (
    closure=<value optimized out>, return_value=Could not find the frame base for "IA__g_cclosure_marshal_VOID__BOOLEAN".
) at gmarshal.c:111
#8  0x007ec1f3 in IA__g_closure_invoke (closure=<value optimized out>, 
    return_value=<value optimized out>, n_param_values=<value optimized out>, 
    param_values=<value optimized out>, invocation_hint=<value optimized out>)
    at gclosure.c:767
---Type <return> to continue, or q <return> to quit---
#9  0x00803a45 in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3244
#10 0x00805166 in IA__g_signal_emit_valist (instance=<value optimized out>, 
    signal_id=<value optimized out>, detail=<value optimized out>, 
    var_args=<value optimized out>) at gsignal.c:2977
#11 0x00805616 in IA__g_signal_emit (instance=Could not find the frame base for "IA__g_signal_emit".
) at gsignal.c:3034
#12 0x001af989 in name_owner_changed_cb (proxy=Could not find the frame base for "name_owner_changed_cb".
) at libgbus.c:94
#13 0x0019e21a in pk_marshal_VOID__STRING_STRING_STRING (
    closure=<value optimized out>, return_value=Could not find the frame base for "pk_marshal_VOID__STRING_STRING_STRING".
) at pk-marshal.c:512
#14 0x00bb143f in marshal_dbus_message_to_g_marshaller (closure=Could not find the frame base for "marshal_dbus_message_to_g_marshaller".
)
    at dbus-gproxy.c:1665
#15 0x007ec1f3 in IA__g_closure_invoke (closure=<value optimized out>, 
    return_value=<value optimized out>, n_param_values=<value optimized out>, 
    param_values=<value optimized out>, invocation_hint=<value optimized out>)
    at gclosure.c:767
#16 0x00803a45 in signal_emit_unlocked_R (node=<value optimized out>, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3244
#17 0x00805166 in IA__g_signal_emit_valist (instance=<value optimized out>, 
    signal_id=<value optimized out>, detail=<value optimized out>, 
---Type <return> to continue, or q <return> to quit---
    var_args=<value optimized out>) at gsignal.c:2977
#18 0x00805616 in IA__g_signal_emit (instance=Could not find the frame base for "IA__g_signal_emit".
) at gsignal.c:3034
#19 0x00bb2697 in dbus_g_proxy_emit_remote_signal () at dbus-gproxy.c:1718
#20 dbus_g_proxy_manager_filter (connection=Could not find the frame base for "dbus_g_proxy_manager_filter".
) at dbus-gproxy.c:1286
#21 0x07e5e145 in dbus_connection_dispatch (connection=<value optimized out>)
    at dbus-connection.c:4406
#22 0x00ba908d in message_queue_dispatch (source=Could not find the frame base for "message_queue_dispatch".
) at dbus-gmain.c:101
#23 0x00735381 in g_main_dispatch () at gmain.c:2072
#24 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2624
#25 0x00738a23 in g_main_context_iterate (context=<value optimized out>, 
    block=<value optimized out>, dispatch=<value optimized out>, self=Could not find the frame base for "g_main_context_iterate".
)
    at gmain.c:2705
#26 0x00738f42 in IA__g_main_loop_run (loop=<value optimized out>)
    at gmain.c:2928
#27 0x00d74e55 in IA__gtk_main () at gtkmain.c:1172
#28 0x0804d767 in main (argc=1, argv=0xbfc1cdf4) at gpk-update-icon.c:199
(gdb) 


Here is the output of "pkcon --verbose get-updates" per above, run immediately after gpk-update-icon crashed and I closed gdb.

[root@localhost ~]# pkcon --verbose get-updates
TI:13:23:02	TH:0x8c19458	FI:pk-debug.c	FN:pk_debug_init,255
 - Verbose debugging 1 (on console 1)
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_connect,3519
 - connect
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_connect,3519
 - connect
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_connect,3519
 - connect
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_connect,3519
 - connect
TI:13:23:02	TH:0x8c19458	FI:pk-console.c	FN:main,1397
 - filter=(null), filters=0
TI:13:23:02	TH:0x8c19458	FI:pk-control.c	FN:pk_control_allocate_transaction_id,488
 - Got tid: '/2_cccbdaed_data'
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_set_tid,3157
 - set tid /2_cccbdaed_data on 0x8c28010
TI:13:23:02	TH:0x8c19458	FI:pk-client.c	FN:pk_client_change_status,525
 - emit status-changed wait
TI:13:23:02	TH:0x8c19458	FI:pk-connection.c	FN:pk_connection_connection_changed_cb,129
 - emit connection-changed: 1
TI:13:23:02	TH:0x8c19458	FI:pk-control.c	FN:pk_control_transaction_list_changed_cb,577
 - emit transaction-list-changed
TI:13:23:02	TH:0x8c19458	FI:pk-control.c	FN:pk_control_network_state_changed_cb,641
 - emitting network-state-changed: online
TI:13:23:03	TH:0x8c19458	FI:pk-client.c	FN:pk_client_allow_cancel_cb,719
 - emit allow-cancel 1
TI:13:23:03	TH:0x8c19458	FI:pk-client.c	FN:pk_client_progress_changed_cb,514
 - emit progress-changed 101, 101, 612, 0
TI:13:23:03	TH:0x8c19458	FI:pk-client.c	FN:pk_client_change_status,525
 - emit status-changed running
TI:13:23:03	TH:0x8c19458	FI:pk-client.c	FN:pk_client_change_status,525
 - emit status-changed info
TI:13:23:07	TH:0x8c19458	FI:pk-control.c	FN:pk_control_locked_cb,651
 - emit locked 1
TI:13:23:07	TH:0x8c19458	FI:pk-client.c	FN:pk_client_allow_cancel_cb,719
 - emit allow-cancel 0
TI:13:23:07	TH:0x8c19458	FI:pk-client.c	FN:pk_client_change_status,525
 - emit status-changed finished
TI:13:23:07	TH:0x8c19458	FI:pk-control.c	FN:pk_control_locked_cb,651
 - emit locked 0
TI:13:23:07	TH:0x8c19458	FI:pk-client.c	FN:pk_client_finished_cb,489
 - emit finished success, 4583
TI:13:23:07	TH:0x8c19458	FI:pk-console.c	FN:pk_console_finished_cb,419
 - get-updates runtime was 4.6 seconds
[root@localhost ~]#

Comment 3 Richard Hughes 2008-08-27 09:54:18 UTC
*** Bug 457848 has been marked as a duplicate of this bug. ***

Comment 4 Richard Hughes 2008-08-27 09:57:20 UTC
Created attachment 315078 [details]
patch that fixes the problem

The attached patch fixes it for me. I was only able to reproduce on 64 bit, not 32 bit.

Comment 5 Fedora Update System 2008-08-27 10:16:22 UTC
PackageKit-0.2.4-6.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/PackageKit-0.2.4-6.fc9

Comment 6 Richard Hughes 2008-08-27 10:18:02 UTC
Please can you comment on the above link if the update works for you. Thanks.

Comment 7 Clyde E. Kunkel 2008-09-04 20:07:21 UTC
I am getting a segfault on an i386 system, maybe different from this one, but, maybe related:

$ gpk-update-viewer

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed

** (gpk-update-viewer:28608): CRITICAL **: gpk_client_package_cb: assertion `GPK_IS_CLIENT (gclient)' failed
Segmentation fault

Comment 8 Fedora Update System 2008-09-10 07:17:56 UTC
PackageKit-0.2.4-6.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.