Bug 44939 - Regression in salut/p2p mode
Summary: Regression in salut/p2p mode
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: mission-control (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL:
Whiteboard:
Keywords:
: 45118 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-01-19 07:48 UTC by Robert Staudinger
Modified: 2013-08-28 13:35 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Account: don't crash on Get('Parameters') if _dup_parameters fails (2.49 KB, patch)
2012-02-21 03:04 UTC, Will Thompson
Details | Splinter Review

Description Robert Staudinger 2012-01-19 07:48:44 UTC
From the tests/ directory I'm running

./client-pong remote.service.name
listening...

./client-ping local.service.name remote.service.name

And nothing ever happens. Reminder to self, more info to follow.
Comment 1 Robert Staudinger 2012-01-20 01:35:35 UTC
mission-control log when the "client-pong" test app starts, what stands out is "salut/local_ytstenut/automatic_account not Valid"

---

(process:16658): tp-glib/proxy-DEBUG: noc_idle_context_invoke: NameOwnerChanged(:1.1251,  -> :1.1251)
(process:16658): tp-glib/proxy-DEBUG: noc_idle_context_invoke: NameOwnerChanged(:1.1251,  -> :1.1251)
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.AccountManager
(process:16658): mcd-DEBUG: get_valid_accounts: called
(process:16658): mcd-DEBUG: get_invalid_accounts: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
** (process:16658): DEBUG: account_manager_hold (line:260): Adding hold reference for :1.1251
(process:16658): tp-glib/proxy-DEBUG: tp_dbus_daemon_watch_name_owner: Adding match rule type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0=':1.1251'
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_constructor: 0x87cf840: request 0x878fb80 represents core features on TpAccount
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_borrow_interface_by_id: 0x87cf840: org.freedesktop.Telepathy.Account DBusGProxy is 0x87aca90
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_borrow_interface_by_id: 0x87cf840: org.freedesktop.DBus.Properties DBusGProxy is 0x879e950
** (process:16658): DEBUG: account_manager_set_presence (line:215): Requesting that account presence be changed to: 2 (available)
(process:16658): tp-glib/proxy-DEBUG: _tp_dbus_daemon_get_name_owner_idle: GetNameOwner(:1.1251) -> :1.1251
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for salut/local_ytstenut/automatic_account
(process:16658): mcd-DEBUG: get_mcddbusprop: org.freedesktop.Telepathy.Account, RequestedPresence
(process:16658): mcd-DEBUG: set_requested_presence: called for salut/local_ytstenut/automatic_account
(process:16658): mcd-DEBUG: set_requested_presence: setting requested presence: 2, available, 
(process:16658): mcd-DEBUG: mcd_account_changed_property: called: RequestedPresence
(process:16658): mcd-DEBUG: mcd_account_changed_property: First changed property
(process:16658): mcd-DEBUG: mcd_account_request_presence_int: Requested presence: 2 available 
(process:16658): mcd-DEBUG: mcd_account_request_presence_int: salut/local_ytstenut/automatic_account not Valid
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/romeo_40montague_2eorg0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/t3s7a_40test_2ecollabora_2eco_2euk0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/r0b5t4_40jabber_2eorg0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/ytstenut3_40test_2ecollabora_2eco_2euk0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/ytstenut1_40test_2ecollabora_2eco_2euk0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/robert_2estaudinger_40gmail_2ecom0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/ytstenut2_40test_2ecollabora_2eco_2euk0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/robsta_40otcchat_2eorg0
(process:16658): tp-glib/accounts-DEBUG: _tp_account_got_all_cb: Got whole set of properties for /org/freedesktop/Telepathy/Account/salut/local_ytstenut/automatic_account
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_poll_features: 0x87cf840: request 0x878fb80 prepared
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_prepare_request_finish: 0x878fb80
** (process:16658): DEBUG: on_account_request_presence_ready (line:188): Account presence was changed
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for gabble/jabber/lady_2dgaga_40test_2ecollabora_2eco_2euk0
(process:16658): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:16658): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:16658): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:16658): mcd-DEBUG: get_connect_automatically: called for salut/local_ytstenut/automatic_account
(process:16658): mcd-DEBUG: emit_property_changed: called
(process:16658): mcd-DEBUG: _mcd_client_registry_found_name: Registering client org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0
(process:16658): mcd-DEBUG: mcd_client_proxy_constructed: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0
(process:16658): tp-glib/proxy-DEBUG: tp_dbus_daemon_watch_name_owner: Adding match rule type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0'
(process:16658): tp-glib/proxy-DEBUG: noc_idle_context_invoke: NameOwnerChanged(org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0,  -> :1.1251)
(process:16658): mcd-DEBUG: mcd_client_proxy_introspect: No .client file for org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0. Ask on D-Bus.
(process:16658): tp-glib/proxy-DEBUG: tp_proxy_borrow_interface_by_id: 0x8775570: org.freedesktop.DBus.Properties DBusGProxy is 0x87c3338
(process:16658): tp-glib/proxy-DEBUG: noc_idle_context_invoke: NameOwnerChanged(org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0,  -> :1.1251)
(process:16658): tp-glib/proxy-DEBUG: _tp_dbus_daemon_get_name_owner_idle: GetNameOwner(org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0) -> :1.1251
(process:16658): mcd-DEBUG: _mcd_client_proxy_add_interfaces: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0: org.freedesktop.Telepathy.Client.Handler
(process:16658): mcd-DEBUG: _mcd_client_proxy_get_interfaces_cb: Client org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0
(process:16658): mcd-DEBUG: _mcd_client_proxy_get_interfaces_cb: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0 is a Handler
(process:16658): mcd-DEBUG: _mcd_client_proxy_handler_get_all_cb: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0 has 1 HandlerChannelFilter entries
(process:16658): mcd-DEBUG: _mcd_client_proxy_handler_get_all_cb: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0 has BypassApproval=F
(process:16658): mcd-DEBUG: _mcd_client_proxy_handler_get_all_cb: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0 has BypassObservers=F
(process:16658): mcd-DEBUG: mcd_client_registry_ready_cb: org.freedesktop.Telepathy.Client.Ytsenut.Client.remote.service.name._3a1_2e1251.n0
Comment 2 Robert Staudinger 2012-01-20 01:37:07 UTC
$ mc-tool show salut/local_ytstenut/automatic_account

     Account: salut/local_ytstenut/automatic_account
Display Name: Last Name
     Enabled: enabled
       Valid: false
        Icon: im-local-ytstenut
    Connects: only when requested
     Service: local-ytstenut

Presences:
   Automatic: available (2) ""
     Current: offline (1) ""
   Requested: offline (1) ""
    Changing: no

      (string) last-name = Last Name
      (string) first-name = First Name
Comment 3 Siraj Razick 2012-01-30 08:26:20 UTC
I'll take a look at it. so assigning it to my self.
Comment 4 Alvaro Soliverez 2012-02-15 06:44:58 UTC
Robert,
can you please post both missioncontrol.log and salut-testing.log?
I want to confirm I did reproduce the same error
Comment 5 Robert Staudinger 2012-02-16 02:32:09 UTC
This bug changed behaviour, now MC crashes immediately before anything happens in salut. MC also crashes on 
  $ mc-tool show salut/local_ytstenut/automatic_account


(process:11293): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.AccountManager
(process:11293): mcd-DEBUG: get_valid_accounts: called
(process:11293): mcd-DEBUG: get_invalid_accounts: called
(process:11293): mcd-DEBUG: mcd_dbus_get_interfaces: called
** (process:11293): DEBUG: account_manager_hold (line:260): Adding hold reference for :1.2575
(process:11293): tp-glib/proxy-DEBUG: tp_dbus_daemon_watch_name_owner: Adding match rule type='signal',sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0=':1.2575'
(process:11293): tp-glib/proxy-DEBUG: tp_proxy_constructor: 0x80a4808: request 0x80b3330 represents core features on TpAccount
(process:11293): tp-glib/proxy-DEBUG: tp_proxy_borrow_interface_by_id: 0x80a4808: org.freedesktop.Telepathy.Account DBusGProxy is 0x80b2e58
(process:11293): tp-glib/proxy-DEBUG: tp_proxy_borrow_interface_by_id: 0x80a4808: org.freedesktop.DBus.Properties DBusGProxy is 0x80a2d68
** (process:11293): DEBUG: account_manager_set_presence (line:215): Requesting that account presence be changed to: 2 (available)
(process:11293): tp-glib/proxy-DEBUG: _tp_dbus_daemon_get_name_owner_idle: GetNameOwner(:1.2575) -> :1.2575
(process:11293): mcd-DEBUG: dbusprop_get_all: org.freedesktop.Telepathy.Account
(process:11293): mcd-DEBUG: mcd_dbus_get_interfaces: called
(process:11293): mcd-DEBUG: mcd_dbus_get_interfaces: skipping inactive optional iface org.freedesktop.Telepathy.Account.Interface.ExternalPasswordStorage.DRAFT
(process:11293): mcd-DEBUG: _mcd_account_dup_parameters: called
(process:11293): mcd-DEBUG: _mcd_account_dup_parameters: unable to get protocol for local-ytstenut account salut/local_ytstenut/automatic_account
(process:11293): mcd-DEBUG: get_connect_automatically: called for salut/local_ytstenut/automatic_account

Program received signal SIGSEGV, Segmentation fault.
0x4360c91d in g_hash_table_foreach () from /lib/libglib-2.0.so.0
Missing separate debuginfos, use: debuginfo-install GConf2-3.2.3-1.fc16.i686 NetworkManager-glib-0.9.2-1.fc16.i686 dbus-libs-1.4.10-3.fc16.i686 dconf-0.10.0-1.fc16.i686 glib2-2.30.2-1.fc16.i686 glibc-2.14.90-24.fc16.4.i686 libffi-3.0.10-1.fc16.i686 libgcc-4.6.2-1.fc16.i686 libgcrypt-1.5.0-2.fc16.i686 libgnome-keyring-3.2.0-1.fc16.i686 libgpg-error-1.10-1.fc16.i686 libgudev1-173-3.fc16.i686 libselinux-2.1.6-5.fc16.i686 libudev-173-3.fc16.i686 libuuid-2.20.1-2.2.fc16.i686 nspr-4.8.9-2.fc16.i686 nss-3.13.1-11.fc16.i686 nss-util-3.13.1-3.fc16.i686 telepathy-glib-0.16.4-1.fc16.i686 upower-0.9.15-1.fc16.i686 zlib-1.2.5-6.fc16.i686
(gdb) bt
#0  0x4360c91d in g_hash_table_foreach () from /lib/libglib-2.0.so.0
#1  0x43a4e237 in hashtable_iterator (hash_type=134553912, instance=0x0, 
    iterator=0x43a49a10 <marshal_map_entry>, user_data=0xbfffe8b4)
    at dbus-gvalue-utils.c:608
#2  0x43a4c115 in dbus_g_type_map_value_iterate (value=0x807df18, iterator=
    0x43a49a10 <marshal_map_entry>, user_data=0xbfffe8b4)
    at dbus-gtype-specialized.c:912
#3  0x43a48aa1 in marshal_map (iter=0xbfffe928, value=0x807df18)
    at dbus-gvalue.c:1701
#4  0x43a498c5 in _dbus_gvalue_marshal (iter=0xbfffe928, value=0x807df18)
    at dbus-gvalue.c:1964
#5  0x43a49c34 in marshal_variant (iter=0xbfffe9b8, value=0xbfffea2c)
    at dbus-gvalue.c:1785
#6  0x43a498c5 in _dbus_gvalue_marshal (iter=0xbfffe9b8, value=0xbfffea2c)
    at dbus-gvalue.c:1964
#7  0x43a49a9c in marshal_map_entry (data=0xbfffeb44, value=0xbfffea2c, key=
    0xbfffea18) at dbus-gvalue.c:1636
#8  marshal_map_entry (key=0xbfffea18, value=0xbfffea2c, data=0xbfffeb44)
    at dbus-gvalue.c:1617
#9  0x43a4dd0f in hashtable_foreach_with_values (key=0x49c5fad9, value=
    0x807df18, user_data=0xbfffeaa0) at dbus-gvalue-utils.c:586
#10 0x4360c952 in g_hash_table_foreach () from /lib/libglib-2.0.so.0
#11 0x43a4e237 in hashtable_iterator (hash_type=134553912, instance=0x80b2c18, 
---Type <return> to continue, or q <return> to quit---
    iterator=0x43a49a10 <marshal_map_entry>, user_data=0xbfffeb44)
    at dbus-gvalue-utils.c:608
#12 0x43a4c115 in dbus_g_type_map_value_iterate (value=0xbfffec4c, iterator=
    0x43a49a10 <marshal_map_entry>, user_data=0xbfffeb44)
    at dbus-gtype-specialized.c:912
#13 0x43a48aa1 in marshal_map (iter=0xbfffec14, value=0xbfffec4c)
    at dbus-gvalue.c:1701
#14 0x43a498c5 in _dbus_gvalue_marshal (iter=0xbfffec14, value=0xbfffec4c)
    at dbus-gvalue.c:1964
#15 0x43a412a1 in dbus_g_method_return (context=0x80b5a60)
    at dbus-gobject.c:2946
#16 0x49c3bbe4 in tp_svc_dbus_properties_return_from_get_all (
    out_Properties=<optimized out>, context=<optimized out>)
    at /usr/include/telepathy-1.0/telepathy-glib/_gen/tp-svc-generic.h:96
#17 get_all_iter (data=0x80a4520) at mcd-dbusprop.c:332
#18 dbusprop_get_all (self=0x807be78, interface_name=
    0x80b9818 "org.freedesktop.Telepathy.Account", context=0x80b5a60)
    at mcd-dbusprop.c:442
#19 0x45b33cae in ?? () from /usr/lib/libtelepathy-glib.so.0
#20 0x45b1f762 in ?? () from /usr/lib/libtelepathy-glib.so.0
#21 0x43a3fcf5 in invoke_object_method (message=0x80bb868, connection=
    0x8057128, method=0x45bb5a78, object_info=<optimized out>, object=
    0x807be78) at dbus-gobject.c:1720
---Type <return> to continue, or q <return> to quit---
#22 object_registration_message (connection=0x8057128, message=0x80bb868, 
    user_data=0x8072150) at dbus-gobject.c:1940
#23 0x4451e429 in ?? () from /lib/libdbus-1.so.3
#24 0x4450de67 in dbus_connection_dispatch () from /lib/libdbus-1.so.3
#25 0x43a3bdce in message_queue_dispatch (source=0x8059b98, callback=0, 
    user_data=0x0) at dbus-gmain.c:101
#26 0x4361e62f in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#27 0x4361ed70 in ?? () from /lib/libglib-2.0.so.0
#28 0x4361f3a7 in g_main_loop_run () from /lib/libglib-2.0.so.0
#29 0x49c55aff in mcd_service_run (self=0x805dc18) at mcd-service.c:193
#30 0x08048a38 in main (argc=1, argv=0xbffff2b4) at mc-server.c:78
(gdb)
Comment 6 Will Thompson 2012-02-21 02:04:37 UTC
(In reply to comment #1)
> mission-control log when the "client-pong" test app starts, what stands out is
> "salut/local_ytstenut/automatic_account not Valid"

This is, I believe, just a function of Salut not being fully introspected when MC loads this account. I have the same thing in the MC debug output locally, but the account becomes valid once Salut is introspected (and client-pong + client-ping work fine).
Comment 7 Will Thompson 2012-02-21 03:01:44 UTC
So, per discussion on IRC:

• I've found the crash in MC, which is triggered by trying to look up the Parameters property for an account whose CM or protocol is unavailable. Patch to follow. I'm reassigning the bug accordingly.
• With yts-plugins fixed to actually compile the Salut plugin <http://cgit.freedesktop.org/ytstenut/ytstenut-plugins/commit/?id=19eac2d>, and with Salut master (with the new plugin API) launched pointing at that plugin, and with salut.manager deleted, all before launching MC, then everything works for everyone. Hooray.
Comment 8 Will Thompson 2012-02-21 03:04:24 UTC
Created attachment 57382 [details] [review]
Account: don't crash on Get('Parameters') if _dup_parameters fails

If the connection manager is not installed, or is installed but doesn't
have the protocol for the account, then _mcd_account_dup_parameters()
returns %NULL. (As the comment I've added says, I think this is
ridiculous—it's fall-out from MC not storing the types of parameters.)

As a result, Get('Parameters') or GetAll() would crash, because
dbus-glib would try to serialize a NULL GHashTable and blow up. (See
<https://bugs.freedesktop.org/show_bug.cgi?id=44939>.) So with this
patch, we handle NULL as "no parameters" for the sake of D-Bus
properties. (Because this situation should only arise if the account is
invalid, we also warn if _dup_parameters() returns NULL for valid
accounts.)
Comment 9 Simon McVittie 2012-02-21 05:33:50 UTC
Comment on attachment 57382 [details] [review]
Account: don't crash on Get('Parameters') if _dup_parameters fails

Review of attachment 57382 [details] [review]:
-----------------------------------------------------------------

Ship it.
Comment 10 Will Thompson 2012-02-21 07:09:35 UTC
(In reply to comment #9)
> Comment on attachment 57382 [details] [review] [review]
> Account: don't crash on Get('Parameters') if _dup_parameters fails
> 
> Review of attachment 57382 [details] [review] [review]:
> -----------------------------------------------------------------
> 
> Ship it.

Merged to 5.10 and master. Will be in 5.10.2 if that ever happens, and 5.11.0.
Comment 11 Simon McVittie 2013-08-28 13:35:48 UTC
*** Bug 45118 has been marked as a duplicate of this bug. ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.