[jcifs] Re: Deadlock in SmbTree.treeConnect()

Ingo Rockel irockel at pironet-ndh.com
Thu Apr 24 11:44:51 GMT 2008


Hi,

thanks for the insight on this issue.

regards,

	Ingo

Michael B Allen schrieb:
> On Wed, 23 Apr 2008 20:48:58 +0200
> Ronny Schuetz <Usenet.r96 at gishpuppy.com> wrote:
> 
>>> Sure, in theory it can happen with fewer threads. Just as it can with
>>> your extra locks. It just doesn't seem to happen in practice.
>> The reason for the extra locks is to avoid the deadlocks, as the 
>> deadlocks just occur due to the different order of the objects being 
>> synchronized on. I don't think that you'll see the deadlocks anymore if 
>> all locks would be obtained in the same order always
> 
> Several people have made that claim. And after looking at their code I
> could always find a hole.
> 
>> , which is right now 
>> enforced by the setupDiscoLock and working well. But I agree with you, 
>> it is not the best solution.
>>
>> Please believe me, I've seen the deadlocks in practice :(
> 
> Ok, let me qualify that with "good" practice.
> 
> But yes, using 10 threads or 100 it's a bug and it should be fixed. But
> there's a right way to fix it and adding more locks isn't the right way.
> 
>>> Incedentally, if you look at the throughput of pulling files from the
>>> same server with 10 threads vs 2 or 3 I think you'll find there's no
>>> difference. Or, if there is a difference I would not be surprised to
>>> find that 10 threads is actually slower than using 2 or 3.
>>>
>>> Multiplexing is a feature of JCIFS. Right now, if you push it, it
>>> will break.
>> We're pulling/pushing files from/to different shares on sometimes the 
>> same server. We could of course synchronize these attempts to lower the 
>> number of concurrently processed files per server, but it is of course 
>> easier and better to rely on the library than implementing workarounds 
>> into our application.
> 
> Absolutely agreed. The library should be able to handle any number of
> threads. It needs to be fixed but unfortunately I don't don't have the
> luxury of doing much for free or Free anymore.
> 
> Mike
> 

-- 
PIRONET NDH AG
Dipl. Inf. Ingo Rockel - Produktentwicklung
Maarweg 149-161, 50825 Koeln
Tel.: +49 (0)221-770-1788 / Fax: +49 (0)221-770-2025
mailto:irockel at pironet-ndh.com - http://www.pironet-ndh.com

PIRONET NDH AG, Sitz Koeln, HRB 26734, AG Koeln
Vorsitzender des Aufsichtsrats: Klaus Wiegandt
Vorstand: Hans-Werner Scherer (Vorsitz), Ulf Adebahr, Felix Höger


More information about the jcifs mailing list