Apache OpenOffice (AOO) Bugzilla – Issue 111148
forms/qa/unoapi forms.OImageControlModel::com::sun::star::beans::XMultiPropertySet deadlock
Last modified: 2017-05-20 10:22:46 UTC
At least on DEV300_m77-based CWS sb120 (mainly making changes to the testing framework), executing the forms/qa/unoapi tests at least under unxsoli4 non-pro once deadlocked at the below point with the attached stacks.txt. This might be related to other UnoControl-related deadlocks, see issue 109939 and issue 111006. 5: checking: [forms.OImageControlModel::com::sun::star::beans::XMultiPropertySet] is iface: [com.sun.star.beans.XMultiPropertySet] testcode: [ifc.beans._XMultiPropertySet] 5: LOG> Execute: getPropertySetInfo() 5: Method getPropertySetInfo() finished with state OK 5: LOG> getPropertySetInfo(): PASSED.OK 5: 5: LOG> Execute: setPropertyValues() 5: LOG> starting required method: getPropertyValues() 5: LOG> Execute: getPropertyValues() 5: LOG> starting required method: getPropertySetInfo() 5: Method getPropertyValues() finished with state OK 5: LOG> getPropertyValues(): PASSED.OK 5: 5: LOG> Changing all properties 5: Method setPropertyValues() finished with state OK 5: LOG> setPropertyValues(): PASSED.OK 5: 5: LOG> Execute: addPropertiesChangeListener() 5: LOG> starting required method: getPropertyValues() 5: Trying to change property ContextWritingModeLOG> ... done 5: Trying to change property DataFieldLOG> ... done 5: Trying to change property DefaultControlLOG> ... done 5: Trying to change property EnableVisibleLOG> ... done 5: Trying to change property EnabledLOG> ... done 5: Trying to change property GraphicLOG> ... done 5: Trying to change property HelpTextLOG> ... done 5: Trying to change property HelpURLLOG> ... done 5: Trying to change property ImageURLLOG> ... done 5: Trying to change property InputRequiredLOG> ... done 5: Trying to change property NameLOG> ... done 5: Trying to change property NativeWidgetLookLOG> ... done 5: Trying to change property PrintableLOG> ... done 5: Trying to change property ReadOnlyLOG> ... done 5: Trying to change property ScaleImageLOG> ... done 5: Trying to change property ScaleMode
Created attachment 69106 [details] deadlocking stacks
worked around for now by disabling the affected tests in forms/qa/unoapi/knownissues.xcl, see <http://hg.services.openoffice.org/cws/sb120/rev/cd4fe48f097d>; please revert when fixing this issue
@fs: please have a look
targeting
also affects forms.OImageControlModel::com::sun::star::beans::XPropertySet with what looks like virtually the same deadlocking stacks, disabled for now as <http://hg.services.openoffice.org/cws/sb120/rev/df79310e87c2>
Once more, the root cause here seems to be that an implementation of setFastPropertyValue_NoBroadcast calls into another method of |this| which does notifications to external components. Those notifications are done with the component's mutex locked (since setFastPropertyValue_NoBroadcast is called with that locked mutex), which then later on leads to deadlocks. Fixing this requires to postpone the call into |this|' method to a point in time where the mutex is not locked anymore. The (relatively new) IEventNotificationHook-mechanism of OPropertySetHelper (a distant base class of the UnoControlImageControlModel) might work for this, as it allows catching OPropertySetHelper's property change notifications at a time where the mutex is not locked anymore.
have a hard time reproducing the issue ... from looking at the stack, I think I know what's going on, and I think I can fix it, but if 10 subsequent tests don't exhibit the behavior, QA will not be able to verify the issue :-\
fixed in CWS dba34a find more information about this CWS, like when it is available in the master builds, in EIS, the Environment Information System: http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=DEV300/dba34a
targeting to 3.4, since the fix is part of a CWS which aims for this release
developer issue, verified myself