I hope this is the right place to discuss this.

I'm in the process of using C# writing a web service to perform document conversions (there are a few reasons why I can't just use JodConverter). I'm starting multiple instances of OpenOffice and I'm able to carry out multiple conversions in parallel - most of the time. Unfortunately I'm hitting an access violation inside one of the UNO worker threads which, without symbols, I'm not able to debug very far. The environment is Windows 7 x64 (all my code is 32bit) using OpenOffice.org 3.2.1.

(28c4.2a78): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000001 ebx=00000000 ecx=0cddd77c edx=00000001 esi=0cddd77c edi=0cddd77c eip=0a848d87 esp=0e3af824 ebp=0e3af838 iopl=0 nv up ei pl nz na po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files (x86)\OpenOffice.org 3\URE\bin\urp_uno.dll -
0a848d87 8b4838 mov ecx,dword ptr [eax+38h] ds:002b:00000039=????????
0:036> kP
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
0e3af838 0a847e9d urp_uno!uno_initEnvironment+0x65a9
0e3af930 0a841ef3 urp_uno!uno_initEnvironment+0x56bf
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files (x86)\OpenOffice.org 3\URE\bin\sal3.dll -
0e3af940 09053a38 urp_uno!component_canUnload+0x20d
0e3af94c 6ebb3433 sal3!osl_getGlobalMutex+0x1c
0e3af984 6ebb34c7 MSVCR90!_callthreadstartex(void)+0x1b [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 348]
0e3af990 75f13677 MSVCR90!_threadstartex(
void * ptd = 0x08fdb690)+0x69 [f:\dd\vctools\crt_bld\self_x86\crt\src\threadex.c @ 326]
0e3af99c 771d9d42 KERNEL32!BaseThreadInitThunk+0xe
0e3af9dc 771d9d15 ntdll!__RtlUserThreadStart+0x70
0e3af9f4 00000000 ntdll!_RtlUserThreadStart+0x1b

In this instance I've got 8 soffice.bin processes running, and the test has run through 40+ documents 12 times before hitting the issue. Also if I reconfigure to run only a single soffice.bin process I don't hit the problem (or at least, not in a reasonable timeframe). As a result it looks like a race condition of some kind within the urp_uno worker thread.

I suspect the issue relates to XBridge.getInstance function because whenever it occurs there is a call stack like this on one of the other threads: 0cddda30 09e738bb <Module>.cli_uno.Bridge.call_uno(cli_uno.Bridge*, _uno_Interface*, _typelib_TypeDescription*, _typelib_TypeDescriptionReference*, Int32, _typelib_MethodParameter*, System.Object[], System.Type[], System.Object ByRef) 0cdddb3c 09e72a20 cli_uno.UnoInterfaceProxy.Invoke(System.Runtime.Remoting.Messaging.IMessage) 0cdddc8c 5c69a25e System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(System.Runtime.Remoting.Proxies.MessageData ByRef, Int32) 0cdddf1c 5de12356 [TPMethodFrame: 0cdddf1c] unoidl.com.sun.star.bridge.XBridge.getInstance(System.String) 0cdddf2c 09e722ad NodConverter.OpenOfficeConverter.Channel.Start(Int32) [C:\Users\njt\Projects\NodConverter\NodConverter.OpenOfficeConverter\Channel.cs @ 107]

In my code soffice.bin instances are started and stopped and different times, so there were multiple calls to loadComponentFromURL being made at the same time as this crash (though on different instances of soffice.bin).

I'd be very grateful for any help sorting this out, and of course I can provide more information (including a minidump if you want) as requested.



To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org

Reply via email to