Bug 11900

Summary: Font backend is locking multithreaded application
Product: cairo Reporter: Eduardo <ecarranza>
Component: freetype font backendAssignee: Behdad Esfahbod <freedesktop>
Status: RESOLVED INVALID QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: critical    
Priority: high CC: david
Version: 1.3.16   
Hardware: PA-RISC (HP)   
OS: HP-UX   
Whiteboard:
i915 platform: i915 features:

Description Eduardo 2007-08-08 10:12:34 UTC
We are using cairo 1.3.16 as the backend for a graphing engine in a multithreaded server product. We have been running into a recurrent problem where several threads get stuck because they are getting locked on the cairo engine. I am including the call stack. I know these issues are difficult to reproduce but we have the core loaded in one of our machines and we can give access to the appropriate engineer. We have a product release coming and we will appreciate your help on this. 

The call stack is the following 

#0  0x9fffffffeec2ac70:0 in __ksleep+0x30 () from /usr/lib/hpux64/libc.so.1
#1  0x9fffffffef7cb670:0 in __sleep_1x1+0x2b0 () from /usr/lib/hpux64/libpthread.so.1
#2  0x9fffffffef7c7d70:0 in __mxn_sleep+0x20f0 () from /usr/lib/hpux64/libpthread.so.1
#3  0x9fffffffef745ec0:0 in <unknown_procedure> + 0x4b0 () from /usr/lib/hpux64/libpthread.so.1
#4  0x9fffffffef74b180:0 in pthread_mutex_lock+0x140 () from /usr/lib/hpux64/libpthread.so.1
warning: No unwind information found.
 Skipping this library /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libM8icudata.so.

#5  0x9fffffffe269c0c0:0 in _cairo_scaled_font_map_lock+0x70 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#6  0x9fffffffe269d550:0 in cairo_scaled_font_create+0xa0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#7  0x9fffffffe2681460:0 in _cairo_gstate_ensure_scaled_font+0x180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#8  0x9fffffffe2681550:0 in _cairo_gstate_get_font_extents+0x40 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#9  0x9fffffffe2666350:0 in cairo_font_extents+0xa0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#10 0x9fffffffe3035840:0 in DevBmc_SetFont+0x810 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#11 0x9fffffffe2ebd4a0:0 in SetFont+0xf0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#12 0x9fffffffe30364d0:0 in DevBmc_Get2DTextSize+0x100 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#13 0x9fffffffe2ebdf20:0 in Get2DTextSize+0x130 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#14 0x9fffffffe2f3f690:0 in Get2DTextSizeVirtual+0xf0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#15 0x9fffffffe2cbdfe0:0 in PlaceDefaultElements+0x4c30 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#16 0x9fffffffe5a29e10:0 in ChartCtrl::PlaceDefaultElements+0x930 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libM8Chart.so
#17 0x9fffffffe85deb70:0 in MGraph::GraphGenImpl::PopulateImageMap (this=0x600000001c474cc0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6819
#18 0x9fffffffe85544f0:0 in MGraph::GraphGenImpl::SaveImageMapToXML (this=0x600000001c474cc0, ipXMLContext=0x600000001c464670, pParent=0x600000001c47bea0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6835
#19 0x9fffffffe6ea36e0:0 in CDSSReportInstance::hSaveGraphInfoToXMLDOM+0x2600 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#20 0x9fffffffe739dd60:0 in CDSSReportInstance::hSaveViewToXMLDOM+0x2f0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#21 0x9fffffffe734ddb0:0 in CDSSReportInstance::SaveToXMLDOMwCSS+0x26db0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#22 0x9fffffffe7326c70:0 in CDSSReportInstance::SaveToXMLDOM+0x80 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#23 0x9fffffffeaa501f0:0 in MsiWorkingSet::GetReportXML+0x2400 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#24 0x9fffffffeaaab100:0 in MsiWorkingSet::GetInBoxMsgResultH+0x3e50 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#25 0x9fffffffec88e4a0:0 in MSICommandUtilityXML::XMLGetResult (this=0x600000001ca16178, pProcCtxt=0x6000000015f77e30, pXMLDoc=0x600000001ccbe0e0, pNode=0x6000000009735580, iCalledFromEx=true) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICmdUtilXMLReportExec.cpp:909
#26 0x9fffffffeca83870:0 in MSICommandUtilityXML::ProcessXMLCommand (this=0x600000001ca16178, pProcCtxt=0x6000000015f77e30, pXMLDoc=0x600000001ccbe0e0, pNode=0x600000000ed9fdf0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:213
#27 0x9fffffffeca80550:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x600000001ca16178, pProcCtxt=0x6000000015f77e30, pXMLDoc=0x600000001ccbe0e0, pNode=0x6000000009730e90) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:95
#28 0x9fffffffeca80070:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x600000001ca16178, pProcCtxt=0x6000000015f77e30, pXMLDoc=0x600000001ccbe0e0, pNode=0x600000000ed9c470) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:83
#29 0x9fffffffecdf6a40:0 in XMLRequest::Execute (this=0x600000001ca16100) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCommandsAll/XMLRequest/XMLRequest.cpp:171
#30 0x9fffffffec7407e0:0 in MSIDSSCommand::Process (this=0x600000001ca16100) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/CommandBase/MSIDSSCommand.cpp:127
#31 0x9fffffffeaeca1d0:0 in MSICommandQTask::Run (this=0x6000000002d33e40) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdPU/MSICommandQTask.cpp:284
#32 0x9fffffffee1da160:0 in MSIThreadPoolTask::Run (this=0x6000000000ee9f50) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThreadPool.cpp:1315
#33 0x9fffffffee18e540:0 in MSIThread::Run (this=0x6000000002f1ce60) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThread.cpp:413
#34 0x9fffffffef3ece40:0 in MSynch::RunnableProxyImpl::Run (this=0x6000000002f5a3a0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/../../Defines/RunnableProxyImpl.h:93
#35 0x9fffffffef3b1040:0 in MSynch::ThreadImpl::ThreadFunction (ipThreadImpl=0x6000000002f5a3c0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/ThreadImpl.cpp:54
#36 0x9fffffffef71ba90:0 in __pthread_bound_body+0x170 () from /usr/lib/hpux64/libpthread.so.1



#0  0x9fffffffeec2ac70:0 in __ksleep+0x30 () from /usr/lib/hpux64/libc.so.1
#1  0x9fffffffef7cb670:0 in __sleep_1x1+0x2b0 () from /usr/lib/hpux64/libpthread.so.1
#2  0x9fffffffef7c7d70:0 in __mxn_sleep+0x20f0 () from /usr/lib/hpux64/libpthread.so.1
#3  0x9fffffffef745ec0:0 in <unknown_procedure> + 0x4b0 () from /usr/lib/hpux64/libpthread.so.1
#4  0x9fffffffef74b180:0 in pthread_mutex_lock+0x140 () from /usr/lib/hpux64/libpthread.so.1
#5  0x9fffffffe26cf890:0 in cairo_freetype_state_lock+0x70 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#6  0x9fffffffe26d88c0:0 in _cairo_freetype_font_face_scaled_font_create_+0x210 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#7  0x9fffffffe26da3e0:0 in _cairo_fontconfig_scaled_font_create_toy+0x560 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#8  0x9fffffffe2679140:0 in _cairo_toy_font_face_scaled_font_create+0xd0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#9  0x9fffffffe269d920:0 in cairo_scaled_font_create+0x470 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#10 0x9fffffffe2681460:0 in _cairo_gstate_ensure_scaled_font+0x180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#11 0x9fffffffe2681550:0 in _cairo_gstate_get_font_extents+0x40 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#12 0x9fffffffe2666350:0 in cairo_font_extents+0xa0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#13 0x9fffffffe3035840:0 in DevBmc_SetFont+0x810 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#14 0x9fffffffe2ebd4a0:0 in SetFont+0xf0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#15 0x9fffffffe30364d0:0 in DevBmc_Get2DTextSize+0x100 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#16 0x9fffffffe2ebdf20:0 in Get2DTextSize+0x130 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#17 0x9fffffffe2f3f690:0 in Get2DTextSizeVirtual+0xf0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#18 0x9fffffffe2cbdfe0:0 in PlaceDefaultElements+0x4c30 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#19 0x9fffffffe5a29e10:0 in ChartCtrl::PlaceDefaultElements+0x930 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libM8Chart.so
#20 0x9fffffffe85deb70:0 in MGraph::GraphGenImpl::PopulateImageMap (this=0x6000000008b5be10) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6819
#21 0x9fffffffe85544f0:0 in MGraph::GraphGenImpl::SaveImageMapToXML (this=0x6000000008b5be10, ipXMLContext=0x6000000019adac90, pParent=0x60000000195ccd00) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6835
#22 0x9fffffffe6ea36e0:0 in CDSSReportInstance::hSaveGraphInfoToXMLDOM+0x2600 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#23 0x9fffffffe739dd60:0 in CDSSReportInstance::hSaveViewToXMLDOM+0x2f0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#24 0x9fffffffe734bba0:0 in CDSSReportInstance::SaveToXMLDOMwCSS+0x24ba0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#25 0x9fffffffe7de9a10:0 in CDSSRWGridXMLFormatter::SaveRIToXMLDOM+0xba0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#26 0x9fffffffd8a9d2f0:0 in CDSSDocumentInstance::hIterateContentToXML+0x17ac0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#27 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#28 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#29 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#30 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#31 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#32 0x9fffffffd8a889b0:0 in CDSSDocumentInstance::hIterateContentToXML+0x3180 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#33 0x9fffffffd89d6c10:0 in CDSSDocumentInstance::hSaveDataToXML+0x1d80 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#34 0x9fffffffd8939110:0 in CDSSDocumentInstance::SaveToXMLDOM+0xff50 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHDocSrv.so
#35 0x9fffffffea889ce0:0 in CDSSServerMessage::GetDocXml+0xfc0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#36 0x9fffffffea888490:0 in CDSSServerMessage::GetDocRslt+0x6e0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#37 0x9fffffffeaa9fe40:0 in MsiWorkingSet::GetDocMsgRslt+0x640 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#38 0x9fffffffeaaa44c0:0 in MsiWorkingSet::GetInBoxMsgResult+0x1350 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#39 0x9fffffffeaaa2df0:0 in MsiWorkingSet::GetInBoxMsgResult+0x300 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#40 0x9fffffffec88d850:0 in MSICommandUtilityXML::XMLGetResult (this=0x6000000009d7cd78, pProcCtxt=0x60000000158e4170, pXMLDoc=0x600000000b5f16e0, pNode=0x600000000b4a7ce0, iCalledFromEx=true) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICmdUtilXMLReportExec.cpp:876
#41 0x9fffffffeca83870:0 in MSICommandUtilityXML::ProcessXMLCommand (this=0x6000000009d7cd78, pProcCtxt=0x60000000158e4170, pXMLDoc=0x600000000b5f16e0, pNode=0x600000000b4a6a70) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:213
#42 0x9fffffffeca80550:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x6000000009d7cd78, pProcCtxt=0x60000000158e4170, pXMLDoc=0x600000000b5f16e0, pNode=0x600000000b4a68e0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:95
#43 0x9fffffffeca80070:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x6000000009d7cd78, pProcCtxt=0x60000000158e4170, pXMLDoc=0x600000000b5f16e0, pNode=0x600000000b4a7d80) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:83
#44 0x9fffffffecdf6a40:0 in XMLRequest::Execute (this=0x6000000009d7cd00) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCommandsAll/XMLRequest/XMLRequest.cpp:171
#45 0x9fffffffec7407e0:0 in MSIDSSCommand::Process (this=0x6000000009d7cd00) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/CommandBase/MSIDSSCommand.cpp:127
#46 0x9fffffffeaeca1d0:0 in MSICommandQTask::Run (this=0x6000000002d33480) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdPU/MSICommandQTask.cpp:284
#47 0x9fffffffee1da160:0 in MSIThreadPoolTask::Run (this=0x6000000000eec1a0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThreadPool.cpp:1315
#48 0x9fffffffee18e540:0 in MSIThread::Run (this=0x6000000002f1e450) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThread.cpp:413
#49 0x9fffffffef3ece40:0 in MSynch::RunnableProxyImpl::Run (this=0x6000000002f5ad40) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/../../Defines/RunnableProxyImpl.h:93
#50 0x9fffffffef3b1040:0 in MSynch::ThreadImpl::ThreadFunction (ipThreadImpl=0x6000000002f5ad60) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/ThreadImpl.cpp:54
#51 0x9fffffffef71ba90:0 in __pthread_bound_body+0x170 () from /usr/lib/hpux64/libpthread.so.1



0  0x9fffffffeec2ac70:0 in __ksleep+0x30 () from /usr/lib/hpux64/libc.so.1
#1  0x9fffffffef7cb670:0 in __sleep_1x1+0x2b0 () from /usr/lib/hpux64/libpthread.so.1
#2  0x9fffffffef7c7d70:0 in __mxn_sleep+0x20f0 () from /usr/lib/hpux64/libpthread.so.1
#3  0x9fffffffef745ec0:0 in <unknown_procedure> + 0x4b0 () from /usr/lib/hpux64/libpthread.so.1
#4  0x9fffffffef74b180:0 in pthread_mutex_lock+0x140 () from /usr/lib/hpux64/libpthread.so.1
#5  0x9fffffffe269e6c0:0 in _cairo_scaled_font_text_to_glyphs+0x140 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#6  0x9fffffffe2681750:0 in _cairo_gstate_text_to_glyphs+0x150 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#7  0x9fffffffe2667220:0 in cairo_text_extents+0x1e0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
#8  0x9fffffffe30367b0:0 in DevBmc_Get2DTextSize+0x3e0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#9  0x9fffffffe2ebdf20:0 in Get2DTextSize+0x130 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#10 0x9fffffffe2f3f690:0 in Get2DTextSizeVirtual+0xf0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#11 0x9fffffffe2cbdfe0:0 in PlaceDefaultElements+0x4c30 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libpgunix.so
#12 0x9fffffffe5a29e10:0 in ChartCtrl::PlaceDefaultElements+0x930 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libM8Chart.so
#13 0x9fffffffe85deb70:0 in MGraph::GraphGenImpl::PopulateImageMap (this=0x6000000010cffe50) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6819
#14 0x9fffffffe85544f0:0 in MGraph::GraphGenImpl::SaveImageMapToXML (this=0x6000000010cffe50, ipXMLContext=0x6000000011373210, pParent=0x6000000010cebea0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MsiGraph/PrivateSource/GraphGenImpl.cpp:6835
#15 0x9fffffffe6ea36e0:0 in CDSSReportInstance::hSaveGraphInfoToXMLDOM+0x2600 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#16 0x9fffffffe739dd60:0 in CDSSReportInstance::hSaveViewToXMLDOM+0x2f0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#17 0x9fffffffe734ddb0:0 in CDSSReportInstance::SaveToXMLDOMwCSS+0x26db0 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#18 0x9fffffffe7326c70:0 in CDSSReportInstance::SaveToXMLDOM+0x80 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMHRPTSRV.so
#19 0x9fffffffeaa501f0:0 in MsiWorkingSet::GetReportXML+0x2400 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#20 0x9fffffffeaaab100:0 in MsiWorkingSet::GetInBoxMsgResultH+0x3e50 () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libMJSvr.so
#21 0x9fffffffec88e4a0:0 in MSICommandUtilityXML::XMLGetResult (this=0x600000000f562cf8, pProcCtxt=0x6000000011d0fc10, pXMLDoc=0x6000000011230640, pNode=0x6000000010146200, iCalledFromEx=true) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICmdUtilXMLReportExec.cpp:909
#22 0x9fffffffeca83870:0 in MSICommandUtilityXML::ProcessXMLCommand (this=0x600000000f562cf8, pProcCtxt=0x6000000011d0fc10, pXMLDoc=0x6000000011230640, pNode=0x6000000010147150) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:213
#23 0x9fffffffeca80550:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x600000000f562cf8, pProcCtxt=0x6000000011d0fc10, pXMLDoc=0x6000000011230640, pNode=0x6000000010146c50) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:95
#24 0x9fffffffeca80070:0 in MSICommandUtilityXML::ProcessXMLStatement (this=0x600000000f562cf8, pProcCtxt=0x6000000011d0fc10, pXMLDoc=0x6000000011230640, pNode=0x6000000010145df0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/MSICommandUtilityXML.cpp:83
#25 0x9fffffffecdf6a40:0 in XMLRequest::Execute (this=0x600000000f562c80) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCommandsAll/XMLRequest/XMLRequest.cpp:171
#26 0x9fffffffec7407e0:0 in MSIDSSCommand::Process (this=0x600000000f562c80) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdServices/CommandBase/MSIDSSCommand.cpp:127
#27 0x9fffffffeaeca1d0:0 in MSICommandQTask::Run (this=0x6000000002d33640) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/DSSCmdPU/MSICommandQTask.cpp:284
#28 0x9fffffffee1da160:0 in MSIThreadPoolTask::Run (this=0x6000000000eec2f0) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThreadPool.cpp:1315
#29 0x9fffffffee18e540:0 in MSIThread::Run (this=0x6000000002f1e060) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Kernel/SourceCode/MSIThread/MSIThread.cpp:413
#30 0x9fffffffef3ece40:0 in MSynch::RunnableProxyImpl::Run (this=0x6000000002f5ab60) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/../../Defines/RunnableProxyImpl.h:93
#31 0x9fffffffef3b1040:0 in MSynch::ThreadImpl::ThreadFunction (ipThreadImpl=0x6000000002f5ab80) at /home/Mbuilder/views/Mbuilder_vega_dbg_view/Common/Synch/Synch/PrivateSource/ThreadImpl.cpp:54
#32 0x9fffffffef71ba90:0 in __pthread_bound_body+0x170 () from /usr/lib/hpux64/libpthread.so.1
---
Comment 1 Carl Worth 2007-08-08 10:40:52 UTC
(In reply to comment #0)
> We are using cairo 1.3.16 as the backend for a graphing engine in a
> multithreaded server product.

First, I'm curious as to how you ended up depending on 1.3.16, which
is an unstable snapshot of in-progress cairo development. See the
message here, for example where cairo-1.3.16 is made available:

	http://cairographics.org/snapshots

I'd strongly recommend you instead base work on actual stable releases
of cairo, (which have been through *much* more testing, etc.), and are
made available here:

	http://cairographics.org/releases

(Distinguishing snapshots and releases is really easy as snapshots
will always have an odd minor number in the release (as in 1.3) while
releases will have an even number (as in 1.4).)

That said, 1.3.16 was very late in the 1.3 process and in a quick
check, I don't see any obvious locking-related changes in the log from
1.3.16 to 1.4.0. By the same token, I see no risk from moving to
1.3.16 to 1.4.0 as well, so there's no advantage that I can see of
using 1.3.16, (and it will get you funny looks from cairo maintainers
when you submit bugs).

Meanwhile, it doesn't look like you're running cairo 1.3.16
either. You said:

> The call stack is the following 
...
> #5  0x9fffffffe26cf890:0 in cairo_freetype_state_lock+0x70 () from
> /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
> #6  0x9fffffffe26d88c0:0 in _cairo_freetype_font_face_scaled_font_create_+0x210
> () from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13
> #7  0x9fffffffe26da3e0:0 in _cairo_fontconfig_scaled_font_create_toy+0x560 ()
> from /build/8.1.206.150/DEBUG/BIN/HP-UX/lib/libcairo.so.13

The above 3 functions do not exist in cairo 1.3.16, (nor in any
official cairo release nor snapshot). I'm guessing you've manually
applied David Turner's proposed rewrite of cairo's freetype backend?

That's still an experimental patch the the cairo maintainers are
planning to review, test, and hopefully integrate during the current
1.5 development in preparation for a cairo 1.6 release in September or
so.

So I guess my questions are: Have you tested your application with a
recent stable cairo release? Say 1.4.10 ? Or even 1.4.0 ? Does it
work? Are there bugs? Did you test this previously and hit bugs that
prompted you to go looking for David's patches? Did you report those
bugs?

David, is there any comment you would like to make on this bug?

-Carl
Comment 2 Eduardo 2007-08-08 10:58:09 UTC
(In reply to comment #1)

We got that particular cairo version from our graphing engine vendor. We had been dealing with a lot of assertions so we wanted to minimize the changes. 

You are correct, we applied some patches to our version. Before applying the patches we deadlocked our server in a matter of minutes. The patches seemed to work fine so we did not see any reason to change the Cairo backend to 1.4 but now that we have been running more stress tests with new functionality, we are getting these new deadlocks. 

I guess we could give it a try and update our cairo libraries to 1.4 but based on what you are telling me, we would still need to apply the patches as they are not in any release, correct? 

Eduardo
Comment 3 Eduardo 2007-08-08 13:17:58 UTC
By the way, one of the reasons we would be hesitant to change our current version is that the timeframe for our release is very close (a month) so if we changed the library, we would need to re-test everything and we do not really know what we are going to get. We simply do not have enough time so for this time, we were hoping to be able to just workaround this problem and then we can plan to upgrade to a stable release for the next version of our product. 

If you can give us any pointers as to what we could do to fix this in our own, we will certainly do that. Thanks again
Comment 4 Behdad Esfahbod 2008-09-15 15:47:15 UTC
Too old and obsolete .

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.