Bug 287531

Summary: PolicyKit1-KDE crashes when deleting network connections
Product: policykit-kde-agent-1 Reporter: markuss <kamikazow>
Component: generalAssignee: Dario Freddi <drf>
Status: RESOLVED NOT A BUG    
Severity: crash CC: kamikazow, lamarque, opensuse.lietuviu.kalba
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description markuss 2011-11-25 12:51:09 UTC
Version:           unspecified (using KDE 4.7.2) 
OS:                Linux

I added a connection and later wanted to remove it. PolicyKit1-KDE crashed as a
result.

No idea whether this is a general problem or specific to openSUSE 12.1. Here's the SUSE bug report: https://bugzilla.novell.com/show_bug.cgi?id=732780

Reproducible: Always

Steps to Reproduce:
Network Management -> Manage Connections -> Select one -> Delete


Expected Results:  
No crash

Application: PolicyKit1-KDE (polkit-kde-authentication-agent-1), signal: Segmentation fault
[Current thread is 1 (Thread 0xb5640a40 (LWP 1748))]

Thread 3 (Thread 0xb3da3b70 (LWP 1751)):
#0  0xb5bff134 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0xb5bfac9f in _L_lock_708 () from /lib/libpthread.so.0
#2  0xb5bfaae3 in pthread_mutex_lock () from /lib/libpthread.so.0
#3  0xb6187624 in pthread_mutex_lock () from /lib/libc.so.6
#4  0xb5a6973a in g_signal_handlers_destroy (instance=0x81f4000) at gsignal.c:2449
#5  0xb5a51c95 in g_object_real_dispose (object=0x81f4000) at gobject.c:894
#6  0xb5a51f28 in g_object_unref (_object=0x81f4000) at gobject.c:2709
#7  0xb59be893 in message_to_write_data_free (data=0x83c3d18) at gdbusprivate.c:858
#8  0xb59c0147 in write_message_cb (source_object=0x0, res=0x81d42c0, user_data=0x83c3d18) at gdbusprivate.c:1287
#9  0xb595dea5 in g_simple_async_result_complete (simple=0x81d42c0) at gsimpleasyncresult.c:749
#10 0xb59bf883 in write_message_continue_writing (data=<optimized out>) at gdbusprivate.c:1051
#11 0xb59bfded in maybe_write_next_message (worker=0x81ec400) at gdbusprivate.c:1452
#12 0xb59bfea3 in write_message_in_idle_cb (user_data=0x81ec400) at gdbusprivate.c:1473
#13 0xb5ad4d10 in ?? () from /usr/lib/libglib-2.0.so.0
#14 0xb5ad8e2f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#15 0xb5ad9560 in ?? () from /usr/lib/libglib-2.0.so.0
#16 0xb5ad9b6b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#17 0xb59be25a in gdbus_shared_thread_func (user_data=0x81ec990) at gdbusprivate.c:276
#18 0xb5b002e4 in ?? () from /usr/lib/libglib-2.0.so.0
#19 0xb5bf8a7d in start_thread () from /lib/libpthread.so.0
#20 0xb61798fe in clone () from /lib/libc.so.6

Thread 2 (Thread 0xb34c9b70 (LWP 2063)):
#0  0xb614057c in nanosleep () from /lib/libc.so.6
#1  0xb5b0373e in g_usleep () from /usr/lib/libglib-2.0.so.0
#2  0xb5ad538e in ?? () from /usr/lib/libglib-2.0.so.0
#3  0xb5b002e4 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb5bf8a7d in start_thread () from /lib/libpthread.so.0
#5  0xb61798fe in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5640a40 (LWP 1748)):
[KCrash Handler]
#6  0xb5a72b05 in g_type_interfaces (type=136211968, n_interfaces=0xbfa518e8) at gtype.c:3567
#7  0xb5a694c8 in signal_id_lookup (itype=136211968, quark=<optimized out>) at gsignal.c:337
#8  signal_parse_name (detail_p=<synthetic pointer>, itype=136211968, name=0xb739f841 "cancelled", force_quark=<optimized out>) at gsignal.c:983
#9  signal_parse_name (force_quark=1, detail_p=<synthetic pointer>, itype=136211968, name=0xb739f841 "cancelled") at gsignal.c:2250
#10 g_signal_connect_data (instance=0x81e6d80, detailed_signal=0xb739f841 "cancelled", c_handler=0xb739e620 <cancelled_cb(GCancellable*, gpointer)>, data=0x8081b50, destroy_data=0, connect_flags=0) at gsignal.c:2272
#11 0xb739ee81 in polkit_qt_listener_initiate_authentication (agent_listener=0x8081b50, action_id=0x1 <Address 0x1 out of bounds>, message=0x1 <Address 0x1 out of bounds>, icon_name=0x1 <Address 0x1 out of bounds>, details=0x1, cookie=0x1 <Address 0x1 out of bounds>, identities=0x1, cancellable=0x81e6d80, callback=0x1, user_data=0x1) at /usr/src/debug/polkit-qt-1-0.99.1/agent/polkitqtlistener.cpp:136
#12 0xb58f2f40 in polkit_agent_listener_initiate_authentication (listener=0x8081b50, action_id=0x83c0b70 "org.freedesktop.NetworkManager.settings.modify.own", message=0x83c0ba3 "Die Systemrichtlinien verhindern das Bearbeiten von eigenen Netzwerkeinstellungen", icon_name=0x83c0bf5 "nm-icon", details=0x83aeb80, cookie=0x83c0c2f "cookie4", identities=0x83aeb20, cancellable=0x81e6d80, callback=0xb58f3410 <auth_cb>, user_data=0x83b5538) at polkitagentlistener.c:748
#13 0xb58f3206 in auth_agent_handle_begin_authentication (invocation=0x81f04f0, parameters=0x83c5238, server=0x81f0b38) at polkitagentlistener.c:635
#14 auth_agent_handle_method_call (connection=0x81d2000, sender=0x83aee10 ":1.5", object_path=0x8360618 "/org/kde/PolicyKit1/AuthenticationAgent", interface_name=0x8389498 "org.freedesktop.PolicyKit1.AuthenticationAgent", method_name=0x830aeb8 "BeginAuthentication", parameters=0x83c5238, invocation=0x81f04f0, user_data=0x81f0b38) at polkitagentlistener.c:288
#15 0xb59acca9 in call_in_idle_cb (user_data=0x81f04f0) at gdbusconnection.c:4474
#16 0xb5ad4d10 in ?? () from /usr/lib/libglib-2.0.so.0
#17 0xb5ad8e2f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0xb5ad9560 in ?? () from /usr/lib/libglib-2.0.so.0
#19 0xb5ad97fa in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0xb6f3a837 in QEventDispatcherGlib::processEvents (this=0x807c750, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#21 0xb64f7aaa in QGuiEventDispatcherGlib::processEvents (this=0x807c750, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#22 0xb6f0b44d in QEventLoop::processEvents (this=0xbfa51d74, flags=...) at kernel/qeventloop.cpp:149
#23 0xb6f0b691 in QEventLoop::exec (this=0xbfa51d74, flags=...) at kernel/qeventloop.cpp:201
#24 0xb6f0fdea in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#25 0xb6441d64 in QApplication::exec () at kernel/qapplication.cpp:3755
#26 0x0804f055 in ?? ()
#27 0xb60be003 in __libc_start_main () from /lib/libc.so.6
#28 0x0804f0b1 in _start ()
Comment 1 Lamarque V. Souza 2011-11-25 15:01:41 UTC
*** Bug 287533 has been marked as a duplicate of this bug. ***
Comment 2 Lamarque V. Souza 2011-11-25 15:46:29 UTC
Git commit c5beec96d986d5bc3eb40766594cbc1ec5bd68e5 by Lamarque V. Souza.
Committed on 25/11/2011 at 16:42.
Pushed by lvsouza into branch 'master'.

Add some checks to prevent crash when PolicyKit denied connection
editing.

CCBUG: 287531

M  +9    -3    settings/config/manageconnectionwidget.cpp

http://commits.kde.org/networkmanagement/c5beec96d986d5bc3eb40766594cbc1ec5bd68e5
Comment 3 Lamarque V. Souza 2011-11-25 15:47:16 UTC
Git commit 34bf07e271f4ebb941ae24898b3deb420f0ee277 by Lamarque V. Souza.
Committed on 25/11/2011 at 16:42.
Pushed by lvsouza into branch 'nm09'.

Add some checks to prevent crash when PolicyKit denied connection
editing.

CCBUG: 287531
(cherry picked from commit c5beec96d986d5bc3eb40766594cbc1ec5bd68e5)

M  +9    -3    settings/config/manageconnectionwidget.cpp

http://commits.kde.org/networkmanagement/34bf07e271f4ebb941ae24898b3deb420f0ee277
Comment 4 Lamarque V. Souza 2011-11-25 15:50:10 UTC
By what I saw in the crashlog in bug #287533 you probably clicked on the edit connetion button instead of the delete. Can you still reproduce this problem? Are you sure it was the delete button?

Anway, the commit above should prevent the crash since for some reason mEditConnection (the connection being edited) was null when ManageConnectionWidget::editGotSecrets was called.
Comment 5 markuss 2011-11-25 16:51:19 UTC
(In reply to comment #4)
> By what I saw in the crashlog in bug #287533 you probably clicked on the edit
> connetion button instead of the delete. Can you still reproduce this problem?
> Are you sure it was the delete button?

After I filed the bug report, I realized that I used a git checkout from openSUSE's KDE Playground repo (enabled because Calligra is in there) which may have problems to let me correct a wrongly entered WPA Enterprise password.
So yes, I clicked Edit first but the actual crash happened when I hit Delete because I wanted to re-enter the connection details from scratch.

Now that I have downgraded to the Network Management version provided by openSUSE 12.1 I can't reproduce the problem any more.

I can wait for the Playground repo to pick the newer version up and to try to reproduce the crash.
I don't have enough disk space to compile NM myself.
Comment 6 Lamarque V. Souza 2012-01-04 12:17:20 UTC
*** Bug 290312 has been marked as a duplicate of this bug. ***