[
https://issues.redhat.com/browse/JGRP-2423?page=com.atlassian.jira.plugin...
]
Max Shaposhnyk commented on JGRP-2423:
--------------------------------------
I have tried thal locally, adding output as follows:
{code:java}
public void addToPendingReleaseRequests(ClientLock cl) {
if(cl != null) {
String
tmp=pending_release_reqs.stream().map(ClientLock::toString).collect(Collectors.joining(",
"));
log.info(">>>>>>%s: Pending unlock requests:
%s", local_addr, tmp);
log.info(">>>>>>%s: New Clientlock:
%s",local_addr, cl.toString());
pending_release_reqs.add(cl);
}
}
{code}
And saw that none of the locks which are already in `pending_release_reqs` are null,
neither new lock also not null and their adress fields also not nulls. So it seems quite
strange for me. Probably some multithreading issue or something.
NPE during unlock operation
---------------------------
Key: JGRP-2423
URL:
https://issues.redhat.com/browse/JGRP-2423
Project: JGroups
Issue Type: Bug
Affects Versions: 4.1.8
Reporter: Max Shaposhnyk
Assignee: Bela Ban
Priority: Major
Fix For: 4.1.9
The following NPE's are appearing in the che.openshift.io production server logs
causing the multiple threads to blocking and break down some fuctionality.
ATM we're unable to clearly reproduce issue on local installations (it happens very
rarely on local, but quite frequently on prod server)
{noformat}
java.lang.NullPointerException: null
at org.jgroups.util.Owner.compareTo(Owner.java:59)
at org.jgroups.protocols.Locking$ClientLock.compareTo(Locking.java:1142)
at org.jgroups.protocols.Locking$ClientLock.compareTo(Locking.java:942)
at java.util.concurrent.ConcurrentSkipListMap.cpr(ConcurrentSkipListMap.java:655)
at java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:835)
at
java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1979)
at java.util.concurrent.ConcurrentSkipListSet.add(ConcurrentSkipListSet.java:241)
at
org.jgroups.protocols.Locking$ClientLockTable.addToPendingReleaseRequests(Locking.java:1323)
at org.jgroups.protocols.Locking$ClientLock._unlock(Locking.java:1070)
at org.jgroups.protocols.Locking$ClientLock.unlock(Locking.java:996)
at org.jgroups.protocols.Locking.down(Locking.java:176)
at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:928)
at org.jgroups.JChannel.down(JChannel.java:627)
at org.jgroups.blocks.locking.LockService$LockImpl.unlock(LockService.java:167)
at
org.eclipse.che.multiuser.api.distributed.lock.JGroupsWorkspaceLockService$UnlockerImpl.unlock(JGroupsWorkspaceLockService.java:73)
at org.eclipse.che.commons.lang.concurrent.Unlocker.close(Unlocker.java:38)
at
org.eclipse.che.api.workspace.server.WorkspaceRuntimes.$closeResource(WorkspaceRuntimes.java:314)
{noformat}
additional links:
[1]
https://github.com/eclipse/che/issues/15231
[2]
https://issues.redhat.com/browse/JGRP-2299
[3]
https://issues.redhat.com/browse/JGRP-2364
[4]
https://github.com/eclipse/che/blob/master/assembly/assembly-wsmaster-war...
--
This message was sent by Atlassian Jira
(v7.13.8#713008)