On 2/8/07, Tim Ellison <[EMAIL PROTECTED]> wrote:

Elena Semukhina wrote:
> On 1/30/07, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
>>
>> I have a comment, that I'll bring out to the dev list -
>>
>> Is there any problem with some other thread adding the entry for
>> currentURL while the  if (jf==null) block is doing it's work? That's
>> one difference I can see between sync-ing the block, vs just syncing
>> the map.
>>
>> I don't know if it matters, though.
>
>
> This remark is quite relevant. Each thread which gets jf == null for
some
> URL does the same job on openning connection, getting jar file and
putting
> it to a map. Block synchronization ensures that this job is done once
for
> each jar file.

In general we would allow the concurrent update of a cache, but in this
case it sounds like the cost of a cache miss is very high, so that it
may be worth synchronizing.

> Moreover, I ran the classloader.StressLoader test on an unpatched build
and
> see stable hang on a Windows 2CPUx4core machine. Threads are deadlocked
> while doing the same job somewhere in
>
org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.findJarFile().
>
> The patch resolves the issue.

Does that imply that there is a synchronization problem 'lower down'?


I'm not sure that we have a "lower" synchronization problem here. The
deadlock happens somewhere in internal classes when many threads try to find
the same file while it needs to be found once. Synchronization on an upper
level helps avoiding this.

Thanks,
Elena

Regards,
Tim

> Mikhail, could you please add some more comments to
> https://issues.apache.org/jira/browse/HARMONY-2982?
>
> Elena
>
>
> geir
>>
>> On Jan 30, 2007, at 7:48 AM, Mikhail Markov wrote:
>>
>> > Elena, thanks for the patch!
>> > I've reviewed it and posted the comment to this JIRA.
>> >
>> > Regards,
>> > Mikhail
>> >
>> >
>> > On 1/30/07, Elena Semukhina <[EMAIL PROTECTED]> wrote:
>> >>
>> >> The DRLVM smoke test classloader.StressLoader fails intermittently.
>> >> Investigation revealed that java.net.URLClassLoader implementation
>> >> does
>> >> not
>> >> take care of synchronizing on access to its IdentityHashMap field. I
>> >> suggested a patch to fix the issue at
>> >> https://issues.apache.org/jira/browse/HARMONY-2982.
>> >>
>> >> Could anyone please take a look and review the patch?
>> >>
>> >> --
>> >> Thanks,
>> >> Elena
>> >>
>> >>
>>
>>
>
>

Reply via email to