Issue 116583 - comphelper/qa/complex/comphelper failure
Summary: comphelper/qa/complex/comphelper failure
Status: CONFIRMED
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: DEV300m98
Hardware: All All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-24 10:49 UTC by Stephan Bergmann
Modified: 2017-05-20 10:47 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Stephan Bergmann 2011-01-24 10:49:46 UTC
At least on DEV300_m98 based CWS sb138, unxmacxi non-pro, executing
comphelper/qa/complex/comphelper once failed at 

2: 1) testEnumerations(complex.comphelper.Map)
2: com.sun.star.lang.DisposedException
2: 	at
com.sun.star.lib.uno.environments.remote.JobQueue.removeJob(JobQueue.java:214)
2: 	at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:334)
2: 	at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:307)
2: 	at
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:91)
2: 	at
com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:642)
2: 	at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151)
2: 	at
com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:133)
2: 	at $Proxy11.put(Unknown Source)
2: 	at complex.comphelper.Map.testEnumerations(Map.java:493)

with soffice.bin crashing at

#8  0x916af2bb in _sigtramp ()
#9  0xffffffff in ?? ()
#10 0x0040a196 in comphelper::EnumerableMap::put ()
#11 0x0436cd22 in (anonymous namespace)::callVirtualMethod ()
#12 0x0436d0f0 in (anonymous namespace)::cpp_call ()
#13 0x0436d93f in bridges::cpp_uno::shared::unoInterfaceProxyDispatch ()
#14 0x18ea1bbc in binaryurp::IncomingRequest::execute_throw ()
#15 0x18ea2b07 in binaryurp::IncomingRequest::execute ()
#16 0x18ea5c19 in request ()
#17 0x00741658 in cppu_threadpool::JobQueue::enter ()
#18 0x00741e73 in cppu_threadpool::ORequestThread::run ()
#19 0x007421e8 in cppu_requestThreadWorker ()
#20 0x001ff23c in osl_thread_start_Impl ()
#21 0x91674155 in _pthread_start ()
#22 0x91674012 in thread_start ()

This looks like comphelper/source/container/enumerablemap.cxx has multithreading
issues:  In the Map.testEnumerations Test, local variables
enumerateKeys/Values/All are first assigned to non-isolated MapEnumerations,
then to isolated ones, so non-isolated MapEnumeration instances can be released
now, with arbitrary timing.  Releasing a non-isolated MapEnumeration invokes
lcl_revokeMapModificationListener on a shared MapData::m_aModListeners.  The
following map.put("additional", "value") leads to a call to
lcl_notifyMapDataListeners_nothrow, apparently iterating over the very
MapData::m_aModListeners instance from which elements are removed simultaneously.
Comment 1 Frank Schönheit 2011-01-31 08:40:56 UTC
targeting to 3.x
Comment 2 Marcus 2017-05-20 10:47:37 UTC
Reset assigne to the default "issues@openoffice.apache.org".