Mark Phippard <markp@softlanding.com> writes:
> Philip Martin <philip@codematters.co.uk> wrote on 11/02/2005 02:42:04 PM:
>
>> Do the crashes happen near the start of the operations?
>
> Yes, for certain. Although in the case of checkout, sometimes it seems
> like I receive 1 file successfully. I haven't really looked at the WC too
> closely, but I see a message in my Eclipse console right before it
> crashes.
So it probably is an initialisation problem, rather than memory
corruption.
>> As I pointed out earlier, the on-the-fly static initialisation in
>> JNIUtil::JNIInit() looks dodgy to me. Could you arrange for JNIInit
>> to be called, and for the call to return, by a single thread before
>> any other calls to JNIInit?
>
> In Subclipse we talk to the Java code, so this is all invisible to us. I
> can say that Subclipse constructs the SVNClientSynchronized object
> frequently. It doesn't just construct it one time and then hang on to it
> until you close Eclipse.
JNIInit appears to attempt to do some once-only initialisation (that's
once per application) using static variables but the code looks very
dodgy. I don't do Java at all, and I've barely looked at the javahl
code, but I suspect that if you can arrange for a single thread to
call JNIInit, and allow it to complete, before any other thread gets a
chance to race then the problem might go away. I don't know what that
would involve in Java, perhaps it would be sufficient to construct and
discard a temporary SVNClientSynchronized object. Do it from the
debugger if necessary.
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Nov 2 21:16:31 2005