Summary: | [bug] Clipboard crash | ||
---|---|---|---|
Product: | Wayland | Reporter: | Scott Moreau <oreaus> |
Component: | weston | Assignee: | Wayland bug list <wayland-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | structures in memory in the moment of crash. Note the notify() incorrect function pointer. |
Description
Scott Moreau
2012-06-13 17:40:58 UTC
Created attachment 63001 [details]
structures in memory in the moment of crash. Note the notify() incorrect function pointer.
Function call log: [03:14:51.900] clipboard_set_selection() [03:14:51.900] clipboard_source_create() [03:14:51.902] clipboard_source_data() [03:14:51.902] clipboard_source_data() [03:14:53.336] libwayland: disconnect from client 0x82ba9c0 [03:14:53.336] clipboard_set_selection() [03:14:53.336] clipboard_set_selection() [03:14:58.975] clipboard_set_selection() [03:14:58.975] clipboard_source_unref() Inside signal, there is listener list. this listener list contains several items with corresponding notify() functions. The first notify() function points to destroy_offer_data_source() The second notify() func. points to 0x82c0b00. See log: [17:19:44.882] libwayland: disconnect from client 0x82c0b00 [17:19:44.883] clipboard_copy(clipboard=0x82b24b8,seat=0x828fc38) [17:19:44.883] clipboard_copy(clipboard=0x82b24b8,seat=0x828fc38) It's clear that this points to client that has been destroyed. Now we must somehow also remove this notify(). Too bad that there seems to be no way for removing notify from wl_signal() We must maybe remove it inside the two clipboard_copy() calls that follow the client disconnect. That function clipboard_copy() is called two times for an unknown reason. Ok this is now fixed since data-device: Fix list corruption when the source goes away c806dde7e61f4d06564bd3acf74dbba6cfa328c6 |
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.